更新构建控制器/代理以构建c# 6 /.. NET 4.6应用程序
本文关键字:构建 NET 应用程序 控制器 代理 更新 | 更新日期: 2023-09-27 18:04:48
场景如下:
我们在公司网络中使用Visual Studio Online和本地构建服务器,并使用TFS 2013来构建门禁签入和发布后的解决方案。
现在我们从Visual Studio 2013升级到Visual Studio 2015 Enterprise,并升级到新的。net版本。我们非常渴望使用c# 6的新特性,但在第一次签入之后,我们经历了构建失败。
(抱歉这里没有图片,因为我缺乏声誉)
异常消息:MSBuild错误1已结束此构建。你可以找到有关此错误原因的更具体信息见上文消息。(类型BuildProcessTerminateException)异常堆栈跟踪:System.Activities.Statements.Throw.Execute (CodeActivityContext上下文)System.Activities.CodeActivity.InternalExecute (ActivityInstance实例,ActivityExecutor, executor, BookmarkManager在System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody (ActivityExecutorBookmarkManager, BookmarkManager, Location, resultLocation)ApplicationManager.cs(33,0)意外字符'$'ApplicationManager.cs (33,0);将
似乎构建代理不理解新语法,仍然用旧版本编译。
我所做的是为了修复它:
-
在本地构建服务器上安装Visual Studio 2015(仍然安装旧版本的Visual Studio 2013)
-
重新启动构建控制器
-
按照下面的步骤操作:https://stackoverflow.com/a/28327275/4919063
基本上是安装Visual Studio 2015和新的Microsoft Build Tools
- 这里的步骤非常有希望:
我用其中一个模板创建了一个新的构建定义
通过web访问为Visual Studio Online创建一个新的代理池。下载
ConfigureAgent。Ps1并在构建服务器上执行它以创建一个新的
代理。但是我不知道如何利用新创建的代理。
我的问题是:如何更新构建代理以在
中运行而不失败?关于新的。net版本?
我怀疑你还在运行2013 Build代理吗?在这种情况下,打开构建过程模板并查找"Run Msbuild for project"任务。将ToolPath属性设置为安装v14 MsBuild的位置。默认值:
C:'Program Files (x86)'MSBuild'14.0'Bin
这应该允许你使用c# 6的语法元素。
通过删除Roslyn nuget包来删除这篇文章中的步骤,nuget包不再需要了,因为Visual Studio 2015是RTM。VS2013不再支持相同的包。
你下载的新的TFS 2015构建代理不能与TFS 2013对话,TFS 2015 XAML构建代理也不能。只要你的服务器运行的是TFS 2013,你就只能使用TFS Build 2010到2013。
当连接到VSO时,您应该能够使用新的2015构建代理。但是您需要使用Web界面创建一个新的构建定义。您不能将现有的XAML构建定义与新的构建代理一起使用。
您还可以安装TFS 2015 XAML代理。要安装它,请在构建服务器上安装TFS 2015,并只运行配置XAML构建代理的步骤。这将从机器上删除TFS 2013构建服务器。
我不能设置工具路径属性,因为"运行Msbuild项目"被一个更抽象的"运行Msbuild "-活动在我使用的"TfvcTemplate.12.xaml"取代。我想它是随TFS 2013 Update 4一起来的。
我在BuildMachine上安装了VS 2015 .
我通过添加/tv:14.0参数作为MSBuild参数(在Build-Definition'Process'2.Build'5中)来改变构建。先进' MSBuild参数)
这对我有用。参见mason的回答