在我的项目中,我正在运行一个外部工具来更新一些二进制文件。这些文件作为“内容”包含在项目中。
目前,该工具已设置为在C#项目属性的“预构建事件”期间运行。不幸的是,仅当项目已过期时才执行此事件,这不是我所需要的。
我一直在我的项目中始终使用“rebuild”而不是“build”来解决此问题,但这既繁琐又缓慢。
无论项目是否是最新的,我都需要始终执行此工具。实际上,甚至在MSBuild甚至没有确定项目是否最新之前,因为该工具都会修改项目中包含的某些文件,因此会影响最新的检查结果。
有适当的方法吗?
请您参考如下方法:
这是解决方案。在项目文件中定义此属性:
<PropertyGroup>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
</PropertyGroup>
然后,无论项目是否最新,PreBuildStep都会每次执行。
似乎Visual Studio绕过了MSBuild的常规最新检查,并使用了某种更快的自定义检查,但具有破坏自定义生成目标的副作用。