我的公司有TFS 2013.
我有一个使用C#6.0功能的项目
我的团队无法直接访问构建服务器。 VS2015尚未安装在那里,但管理服务器的人正在寻找安装2015构建工具。
与此同时,我已经安装了C# 6.0 TFS Builds的答案中提到的Microsoft.Net.Compilers NuGet包以及其他几个问题。
解决方案中的某些项目已经安装了它: (Asp.Net MVC 5项目和Web API项目。)
构建解决方案时,TFS将软件包中的Rosyln编译器用于某些项目,将默认编译器用于其他项目。
这两个Web项目从不使用Roslyn编译器。 还有3个其他库,一个控制台应用程序,以及包含单元/集成测试的手工项目。 除了一个项目(其中一个库)的行为不同,取决于它所在的构建,所有项目在使用的编译器中看起来都是一致的
我在这里缺少什么?为什么TFS可以将包编译器用于某些项目而不用于其他项目?
构建错误的采样: 使用nameof:
SomeController.cs (53): The name 'nameof' does not exist in the current context
静态使用:
RedactedTests.cs (5): Identifier expected; 'static' is a keyword
RedactedTests.cs (5): Expected class, delegate, enum, interface, or struct
null合并运算符:
InterestingClassName.cs (40): Invalid expression term '.'
InterestingClassName.cs (40): Syntax error, ':' expected
InterestingClassName.cs (40): Invalid expression term '.'
InterestingClassName.cs (40): Syntax error, ':' expected
表达身体性质:
MyClass.cs (11): ; expected
MyClass.cs (11): Method must have a return type
MyClass.cs (11): Type expected
答案 0 :(得分:0)
如果解决方案是使用目标版本,也许使用.sln文件的版本,请注意这一点。
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
你能尝试改变吗?