【问题标题】:Azure Devops Release pipeline unable to take latest C# versionAzure Devops Release 管道无法采用最新的 C# 版本
【发布时间】:2018-09-18 14:05:20
【问题描述】:

我有一个控制台应用程序,它具有异步调用,例如main 方法的签名是这样的

static async Task MainAsync(string[] args)
{

}

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

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

【问题讨论】:

标签: azure-devops azure-pipelines


【解决方案1】:

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

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

【讨论】:

  • 这是为我做的。各个站点上的各种线程都在说“设置 langver 属性”,但这些都不起作用。这做到了!谢谢!!!!
【解决方案2】:

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

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

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

  • 如果尚未选择,请单击构建

  • 将配置更改为所有配置

  • 点击高级...

  • 更改语言版本

请参阅 github 中的此问题以获取更多详细信息。

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

【讨论】:

    【解决方案3】:

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

    在管道中 在视觉工作室构建 添加到 MSBuild 参数

    /property:langversion=最新

    编辑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>
    

    【讨论】:

      猜你喜欢
      • 2020-07-28
      • 2020-02-02
      • 2021-03-23
      • 2019-06-20
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多