Azure devops VSTS Visual Studio生成任务不是增量的;不断重建

Azure devops VSTS Visual Studio生成任务不是增量的;不断重建,azure-devops,azure-pipelines,azure-pipelines-build-task,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,VSTS msbuild任务似乎一直在执行CoreCompile,尽管Clean选项被禁用,并且源文件未被触及(源获取中未发生任何更改) 然而,当我在本地或直接在生成计算机上运行msbuild时,它的行为与预期的一样——所有未修改的项目都不会重新生成CoreCompile未运行csc.exe我发现这是因为MSBuild生成并以静默方式注入到编译中的“TargetFrameworkMoniker”文件被写入临时目录,即运行System.IO.Path.GetTempPath()时得到的文件 然而,

VSTS msbuild任务似乎一直在执行
CoreCompile
,尽管
Clean
选项被禁用,并且源文件未被触及(源获取中未发生任何更改)


然而,当我在本地或直接在生成计算机上运行
msbuild
时,它的行为与预期的一样——所有未修改的项目都不会重新生成
CoreCompile
未运行
csc.exe
我发现这是因为MSBuild生成并以静默方式注入到编译中的“TargetFrameworkMoniker”文件被写入临时目录,即运行
System.IO.Path.GetTempPath()
时得到的文件

然而,VSTS代理指定他们自己的临时目录(
\u temp
),并且似乎在每次构建之后都会清除它。这似乎是一个好的行为——应该由MSBuild来修复它(IMO)

如果您的项目使用混合框架,则可能无法快速修复此问题,即添加此MSBuild选项:

/p:TargetFrameworkMonikerAssemblyAttributesPath=$(Build.Repository.LocalPath)\temp.moniker.cs
或者,您可以通过以下方式禁用文件生成:

/p:GenerateTargetFrameworkAttribute=False