2017-03-27 99 views
7

我们使用TFS 2015作为构建服务器,以便与xaml构建定义进行持续集成。 TfvcTemplate12.xaml是我们正在使用的构建过程模板。当视觉工作室2015年就出来了,我们通过设置参数的MSBuild更新了构建模板TFS 2015构建模板无法构建C#7功能

/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) 
+0

以此为你应该开始转换到新的编译系统的标志。 –

回答

1

由于许多所提建议的答复中,使用默认的XAML构建过程中的一个模板使用的MSBuild V15是根本无需手动修改模板本身可能。

我能够通过修改DefaultTemplate.11.1.xaml和寻找的MSBuild活动成功地得到这个工作。在那里,您需要手动将ToolPath属性设置为安装了MSBuild v15的文件名。

ToolPath="C:\Program Files (x86)\Visual Studio\2017\<more path>\msbuid.exe" 

我可以保证这将用于建设项目。虽然不太确定执行测试用例。其他人提到,它不会工作,但我没有亲自尝试过。

由于写了这个问题,我已经开始从XAML构建迁移到新的构建系统,该构建系统在构建过程中提供了更多的自定义,实际上,如果您阅读文档,使用/理解起来会更简单。

https://docs.microsoft.com/en-us/vsts/build-release/

3

MSBuild V14.0不知道v15.0是什么。

您需要安装Visual Studio 2017 build tools

+1

我已经安装了VS 2017 Build工具。在C#编译器罗丝琳当属现在的Visual Studio安装,我已经安装了构建服务器的一部分。但是,这似乎没有什么区别。难道是因为Team Foundation Server 2015未来会识别更新的语言吗? – darrunategui

+0

这就是VS 2017构建工具的用途。在构建中使用msbuild.exe和csc.exe的路径是什么? –

+0

我检查了构建的日志文件,我可以看到它使用了MS构建的“MSBuild自动检测:使用msbuild版本'14.0'从'C:\ Program Files(x86)\ MSBuild \ 14.0 \本。“这对我来说没有意义,因为我手动指定在msbuild参数中使用v15.0。 – darrunategui

1

我发现了一个类似的问题,我试图在TFS 2013上构建VS 2017项目,最后我解决了这个问题。

解决方案是使用旧的生成过程模板(XAML),如TFS 2012的默认生成模板,将模板中的ToolPath设置为指向TFS 2013上的MsBuild.exe的路径。我认为此解决方案应该也可以工作TFS 2015年

+0

ToolPath在哪里? – StingyJack