我有一个控制台应用程序,该应用程序具有异步调用,例如main方法的签名看起来像这样
static async Task MainAsync(string[] args)
{
}
我能够在本地计算机上编译该构建。但是我有一个VSTS(DevOps Azure)CI / CD管道,我在那台机器上使用自定义的托管代理,一旦CI执行,它就会在那提供错误
## [错误] CSC(0,0):错误CS5001:程序不包含适用于入口点的静态“主”方法
答案 0 :(得分:0)
您可以尝试在发布模式下构建本地代码,看看是否遇到相同的问题。
确保将C#7.1添加到任何CPU并释放属性组。
右键单击您的项目,单击“属性”
单击“构建”(如果尚未选择)
将配置更改为所有配置
单击高级...
更改语言版本
有关更多详细信息,请参见github中的此问题。
答案 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>