仅当输出路径更改时,MSBuild重新编译项目

时间:2017-06-06 12:08:30

标签: compilation msbuild target

我们有两个项目A和B. B参考A.我们为MSBuild创建了两个目标来编译,其中差异仅在输出路径中(它是分离文件,而不是项目csproj' s)。两个项目的Immidiate文件夹都是标准的我的意思是 obj 文件夹。

我们运行第一个目标(命令行中的MSBuild和/ t开关) - 一切都编译好了。我们没有改变cs中的任何内容,但是我们更改了输出路径并进行了编译。在这种情况下,A不会重新编译,但B完全重新编译。因此,在输出路径中,我们使用相同版本的A,但B版本不同。

你知道为什么要重新编译B项目吗?

修改

经过一些研究后,看起来MSBuild将输出路径作为缓存哈希的一部分(此文件:obj \ Debug \ CoreCompileInputs.cache)。

我们这样称呼MSBuild:

msbuild mysolution.sln /p:OutputPath=c:\mydir

和csprojs是标准的VS2017 csproj。

0 个答案:

没有答案