TFS 2015 构建模板无法构建 C#7 功能
TFS 2015 build template cannot build C#7 features
我们使用 TFS 2015 作为构建服务器,以便与 xaml 构建定义持续集成。 TfvcTemplate12.xaml 是我们正在使用的构建过程模板。当 visual studio 2015 发布时,我们通过将 MSBuild 参数设置为
更新了构建模板
/p:VisualStudioVersion=14.0
执行此操作后,构建服务器能够成功构建具有 C# 6 功能的项目。现在 Visual Studio 2017 已与 C# 7 一起发布,我想我可以简单地在构建服务器上安装 visual studio 2017 并更新 MSBuild 参数以使用 v15.0。这似乎不起作用,构建代理仍然使用 MSBuild v14.0,它无法编译 C# 7 中的新功能。在进一步的尝试中,我尝试将工具版本设置为 15.0
/tv:15.0
但这也没有用。构建失败并显示一条非常通用的错误消息,没有任何有用的信息可以帮助我解决这个问题。有人让这个工作吗?
Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException)
Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
MSBuild V14.0 不知道 v15.0 是什么。
无法识别 xaml 版本中的 15.0。支持的前进方式是真正使用新的构建代理基础结构。
您可以 select 最新 Visual Studio 选项。请参考:https://www.visualstudio.com/en-us/docs/build/steps/build/visual-studio-build
我发现了一个类似的问题,我尝试在 TFS 2013 上构建 VS 2017 项目,最后我解决了这个问题。
解决方案是像TFS 2012的默认构建模板一样使用旧的构建过程模板(XAML),将模板中的ToolPath设置为指向TFS上MsBuild.exe的路径2013. 我认为这个解决方案也应该适用于 TFS 2015.
正如提到的许多建议答案一样,如果不手动修改模板本身,使用默认 XAML 构建过程模板之一来使用 MSBuild v15 是根本不可能的。
我能够通过修改 DefaultTemplate.11.1.xaml 并寻找 MSBuild activity 来成功实现此功能。在那里,您需要手动将工具路径 属性 设置为安装 MSBuild v15 的文件名。
ToolPath="C:\Program Files (x86)\Visual Studio17\<more path>\msbuid.exe"
我可以保证这将适用于构建项目。虽然不太确定执行测试用例。其他人提到它不会起作用,但我自己还没有真正尝试过。
自从写了这个问题后,我就开始从 XAML 构建迁移到新的构建系统,它在构建过程中提供了更多的自定义,实际上比 use/understand 要简单得多,如果你阅读文档。
我们使用 TFS 2015 作为构建服务器,以便与 xaml 构建定义持续集成。 TfvcTemplate12.xaml 是我们正在使用的构建过程模板。当 visual studio 2015 发布时,我们通过将 MSBuild 参数设置为
更新了构建模板/p:VisualStudioVersion=14.0
执行此操作后,构建服务器能够成功构建具有 C# 6 功能的项目。现在 Visual Studio 2017 已与 C# 7 一起发布,我想我可以简单地在构建服务器上安装 visual studio 2017 并更新 MSBuild 参数以使用 v15.0。这似乎不起作用,构建代理仍然使用 MSBuild v14.0,它无法编译 C# 7 中的新功能。在进一步的尝试中,我尝试将工具版本设置为 15.0
/tv:15.0
但这也没有用。构建失败并显示一条非常通用的错误消息,没有任何有用的信息可以帮助我解决这个问题。有人让这个工作吗?
Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException)
Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
MSBuild V14.0 不知道 v15.0 是什么。
无法识别 xaml 版本中的 15.0。支持的前进方式是真正使用新的构建代理基础结构。
您可以 select 最新 Visual Studio 选项。请参考:https://www.visualstudio.com/en-us/docs/build/steps/build/visual-studio-build
我发现了一个类似的问题,我尝试在 TFS 2013 上构建 VS 2017 项目,最后我解决了这个问题。
解决方案是像TFS 2012的默认构建模板一样使用旧的构建过程模板(XAML),将模板中的ToolPath设置为指向TFS上MsBuild.exe的路径2013. 我认为这个解决方案也应该适用于 TFS 2015.
正如提到的许多建议答案一样,如果不手动修改模板本身,使用默认 XAML 构建过程模板之一来使用 MSBuild v15 是根本不可能的。
我能够通过修改 DefaultTemplate.11.1.xaml 并寻找 MSBuild activity 来成功实现此功能。在那里,您需要手动将工具路径 属性 设置为安装 MSBuild v15 的文件名。
ToolPath="C:\Program Files (x86)\Visual Studio17\<more path>\msbuid.exe"
我可以保证这将适用于构建项目。虽然不太确定执行测试用例。其他人提到它不会起作用,但我自己还没有真正尝试过。
自从写了这个问题后,我就开始从 XAML 构建迁移到新的构建系统,它在构建过程中提供了更多的自定义,实际上比 use/understand 要简单得多,如果你阅读文档。