如何使用MSBuild/TFS2008强制非桌面生成?
场景: 我有一个TFS构建(TFS2008),它有几个目标覆盖:buildNumberOverferridTarget、AfterGet、BeforeComileConfiguration、AfterCompileConfiguration、AfterCompile、AfterDropBuild和AfterEndToEndIteration。一切正常 但现在我将所有CI移植到Jenkins服务器。我使用MSBuild插件使用以下参数调用TFSBuild.proj: /文件记录器 /fileLoggerParameters:LogFile=TFSBuild\u DesktopBuild.log;创造;编码=UTF-8;冗长=正常 /冗长:正常 问题描述: 我的问题是只执行了一些自定义任务:编译前配置、编译后配置、编译后 正如您所看到的,我需要执行buildnumberroverridetarget、AfterGet、AfterDropBuild和afterendtoendition 似乎只执行编译任务和与之相关的自定义任务。从TFS触发的生成被视为非桌面生成,而从Jenkins触发的生成被视为桌面生成 我迄今为止一直在尝试的。 如果从本地.cmd文件运行构建,同样的行为也会发生。因此,我认为IsDesktopBuild属性存在问题。进一步阅读这篇文章给了我阅读的线索 “仅执行编译和测试(如果已启用) 。因此,我尝试自己添加属性以强制DesktopBuild: /文件记录器 /fileLoggerParameters:LogFile=TFSBuild\u DesktopBuild.log;创造;编码=UTF-8;冗长=正常 /详细性:正常/property:IsDesktopBuild=true 但行为是相同的,只执行任务:编译前配置、编译后配置、编译后 所以我的问题是双重的:如何使用MSBuild/TFS2008强制非桌面生成?,msbuild,jenkins,msbuild-task,Msbuild,Jenkins,Msbuild Task,场景: 我有一个TFS构建(TFS2008),它有几个目标覆盖:buildNumberOverferridTarget、AfterGet、BeforeComileConfiguration、AfterCompileConfiguration、AfterCompile、AfterDropBuild和AfterEndToEndIteration。一切正常 但现在我将所有CI移植到Jenkins服务器。我使用MSBuild插件使用以下参数调用TFSBuild.proj: /文件记录器 /fileLog
你不应该试图强制桌面构建。事实上,您应该朝相反的方向前进——强制非桌面构建 桌面版本是默认版本。这意味着,默认情况下IsDesktopBuild=true。所以没有必要显式地设置它 当TFS Build执行生成时,它将false传递给IsDesktopBuild 要让Jenkins运行与TFS Build相同的任务,您应该让它将false传递给IsDesktopBuild。而不是: /fileLogger/fileLoggerParameters:LogFile=TFSBuild\u DesktopBuild.log;创造;编码=UTF-8;详细性=正常/详细性:正常/属性:IsDesktopBuild=true 应将IsDesktopBuild设置为false: /fileLogger/fileLoggerParameters:LogFile=TFSBuild\u DesktopBuild.log;创造;编码=UTF-8;详细性=正常/详细性:正常/属性:IsDesktopBuild=false
为什么只是明确地指定您想要的目标? /t:buildnumberroverridetarget;后继;编译前配置;编译后的配置等
除了您提到的参数之外?那么,我如何强制执行这些要执行的任务(BuildNumberOverrideTarget、AfterGet、AfterDropBuild和AfterEndToEndEndEndEndEndDieration)?/property:IsDesktopBuild=false如果您放置/property:IsDesktopBuild=false目标(BuildNumberOverrideTarget、AfterGet、AfterDropBuild和AfterEndToEndEndEndEndEndEndEndEndEndEndEndDieration)不要执行。。。