我的公司有TFS 2013.
我有一个使用C#6.0功能的项目.
我的团队无法直接访问构建服务器.VS2015尚未安装在那里,但管理服务器的人正在寻找安装2015构建工具.
与此同时,我已经安装了Microsoft.Net.Compilers NuGet包,如C#6.0 TFS Builds的答案和其他几个问题所述.
解决方案中的一些项目已经安装了它:( Asp.Net MVC 5项目和Web API项目.)
构建解决方案时,TFS将包中的Rosyln编译器用于某些项目,将默认编译器用于其他项目.
这两个Web项目从不使用Roslyn编译器.还有3个其他库,一个控制台应用程序,以及包含单元/集成测试的手工项目.除了一个项目(其中一个库)的行为不同,取决于它所在的构建,所有项目在他们使用的编译器中看起来是一致的
我在这里错过了什么?为什么TFS可以将包编译器用于某些项目而不用于其他项目?
构建错误的采样:使用名称:
SomeController.cs (53): The name 'nameof' does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
静态使用:
RedactedTests.cs (5): Identifier expected; 'static' is a keyword
RedactedTests.cs (5): Expected class, delegate, enum, interface, or struct
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
表达身体财产: …