- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在处理的 C++ 项目(我将其从 VS2008 转换为 VS2010)过去使用多个 vcbuild .rules 文件来指定自定义构建规则。这些 .rules 文件对于 CustomBuildRule 节点有一个特定的“AdditionalDependencies”属性,它指定了一个文件列表,在计算目标是否需要重建时应该考虑这些文件。这些“AdditionalDependencies”在 VS2010 转换期间被忠实地转移到相应的 .props 文件中。
与自定义构建规则关联的 .targets 文件确实将这些 AdditionalDependencies
添加到 Target
节点的 Inputs
属性中。这可确保在依赖项中列出的任何文件不存在的情况下执行目标,但如果其中一个依赖项比目标的输出更新,则目标不会执行。它在逻辑上也不完全正确,因为并非所有文件实际上都是输入,其中一些文件引用了可能在目标构建期间使用的可执行文件。因此,它们可能会被 checkin 版本控制并将存在,但文件的较新版本需要触发受影响目标的重建。
MSDN documentation for the Target节点显示一个 Condition
属性,它应该可以很好地满足我的要求,但此属性支持的条件似乎没有通过已经执行的“存在”测试。
我可以使用一个条件来比较两个文件的时间戳(或者理想情况下,AdditionalDependencies
中当前列出的文件的时间戳与目标的输出文件的时间戳),从而允许我触发类似 make 的“如果这些依赖项已过期,则重建此目标”?
最佳答案
请仔细查看目标 Output
属性:
“MSBuild 可以将输入文件的时间戳与输出文件的时间戳进行比较,并确定是跳过、构建还是部分重建目标。在下面的示例中,如果@(CSFile ) 项目列表比 hello.exe 文件更新,MSBuild 将运行目标;否则将被跳过:"
<Target Name="Build"
Inputs="@(CSFile)"
Outputs="hello.exe">
<Csc
Sources="@(CSFile)"
OutputAssembly="hello.exe"/>
</Target>
有关使用 MSBuild 进行增量构建的原始文章和更多信息,请参见 here .
关于c++ - 如何使自定义 MSBuild 目标的执行依赖于文件的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147012/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!