Azure Devops发布管道无法采用最新的C#版本

时间:2018-09-18 14:05:21

标签: azure-devops

我有一个控制台应用程序,该应用程序具有异步调用,例如main方法的签名看起来像这样

static async Task MainAsync(string[] args)
{

}

我能够在本地计算机上编译该构建。但是我有一个VSTS(DevOps Azure)CI / CD管道,我在那台机器上使用自定义的托管代理,一旦CI执行,它就会在那提供错误

## [错误] CSC(0,0):错误CS5001:程序不包含适用于入口点的静态“主”方法

3 个答案:

答案 0 :(得分:0)

您可以尝试在发布模式下构建本地代码,看看是否遇到相同的问题。

确保将C#7.1添加到任何CPU并释放属性组。

  • 右键单击您的项目,单击“属性”

  • 单击“构建”(如果尚未选择)

  • 将配置更改为所有配置

  • 单击高级...

  • 更改语言版本

有关更多详细信息,请参见github中的此问题。

https://github.com/dotnet/roslyn/issues/21783

答案 1 :(得分:0)

我通过强制用户代理使用VS2017使它起作用。 单击阶段1,然后将其更改为以下内容: HostedVS2017

这迫使用户代理使用具有最新版本C#的2017而不是2015(对我来说是2015)。

答案 2 :(得分:0)

https://www.visualstudiogeeks.com/azure/devops/using-latest-version-of-csharp-with-dotnetcore

管道中的

在Visual Studio构建中 添加到MSBuild参数

  

/ property:langversion = latest

编辑c#项目并添加

  

<LangVersion>latest</LangVersion>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PackageAction>BuildDefault</PackageAction>
    <LangVersion>latest</LangVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PackageAction>BuildDefault</PackageAction>
    <LangVersion>latest</LangVersion>
  </PropertyGroup>
相关问题