@ZevSpitz: я отредактировал ответ. Теперь он включает возможность удалить условие.

я есть проект, который я пытаюсь построить. Он использует функции C # 7.1, я могу запустить его через Visual Studio, но когда я пытаюсь опубликовать, чтобы получить .exe, я получаю ошибку

Agent.cs(8,30): error CS8107: Feature 'async main' is not available in C# 7. 
Please use language version 7.1 or greater. [C:\Users\stuarts\Documents\Visual 
Studio 2017\Projects\Agent\Agent\Agent.csproj]
CSC : error CS5001: Program does not contain a static 'Main' method suitable 
for an entry point [C:\Users\stuarts\Documents\Visual Studio 
2017\Projects\Agent\Agent\Agent.csproj]

Csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <IsPackable>false</IsPackable>
    <NetStandardImplicitPackageVersion>1.6.1</NetStandardImplicitPackageVersion>
    <RuntimeFrameworkVersion>2.0.0-*</RuntimeFrameworkVersion>
    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
    <ApplicationIcon />
    <StartupObject />
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <LangVersion>7.1</LangVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="RabbitMQ.Client" Version="5.0.1" />
  </ItemGroup>

</Project>

Я строю с

dotnet publish -c Release -r win10-x64 Agent.csproj

Опять же, все это работает при отладке в VS. Почему извлечение простого .exe из шаблона проекта ConsoleApplication так неловко!

Ответы на вопрос(1)

Решение Вопроса

Ваша проблема в том, что в разделе ...

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <LangVersion>7.1</LangVersion>
</PropertyGroup>

... вы указываете использовать C # 7.1 в конфигурации отладки.

Тем не менее, с ...

dotnet publish -c Release -r win10-x64 Agent.csproj

... вы компилируете в конфигурации релиза.

Вам также нужно настроить C # 7.1 в Release. Вы также можете полностью удалить условие, которое устанавливает языковую версию для любой конфигурации.

 Monsignor06 февр. 2018 г., 21:18
@ZevSpitz Вы правы, нет абсолютно никаких оснований для указания условия.
 Sefe07 сент. 2017 г., 09:47
@Stuart: мое удовольствие.
 Zev Spitz26 янв. 2018 г., 10:04
@Stuart Есть ли какая-то особая причина для установки этого отдельно для Debug и для Release? Это также может быть установлено в первомPropertyGroup раздел для всех конфигураций.
 Sefe07 февр. 2018 г., 10:23
@ZevSpitz: я отредактировал ответ. Теперь он включает возможность удалить условие.
 Stuart07 сент. 2017 г., 09:45
Спасибо тебе за это!

Ваш ответ на вопрос