小编Mr.*_*dor的帖子

即使安装了Microsoft.Net.Compilers,C#6.0构建也会在TFS Build上失败

我的公司有TFS 2013.
我有一个使用C#6.0功能的项目.
我的团队无法直接访问构建服务器.VS2015尚未安装在那里,但管理服务器的人正在寻找安装2015构建工具.

与此同时,我已经安装了Microsoft.Net.Compilers NuGet包,如C#6.0 TFS Builds的答案和其他几个问题所述.

解决方案中的一些项目已经安装了它:( Asp.Net MVC 5项目和Web API项目.)

构建解决方案时,TFS将包中的Rosyln编译器用于某些项目,将默认编译器用于其他项目.

  • 我删除并重新添加了包.
  • 我试过在包的版本1.0.0,1.1.0和1.3.2之间切换.
  • 我并排打开.csproj文件以寻找细微差别.
  • 我已经从相同的项目中创建了多个解决方案和多个构建定义,以查看某些组合是否导致了问题.
    • 其中一个项目总是在构建一部分时使用默认编译器构建,并在构建为另一个构建时使用Roslyn编译器构建.

这两个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)

表达身体财产: …

tfs c#-6.0

11
推荐指数
1
解决办法
1048
查看次数

标签 统计

c#-6.0 ×1

tfs ×1