Я пытаюсь опубликовать sh новый проект консольного приложения в стиле SDK. net и сталкиваюсь с проблемой публикации проекта, использующего Microsoft. NET .Sdk (пожалуйста, платите внимание, это не Microsoft. NET .Sdk.Web, который отлично работает).
Что я сделал:
- Я добавил Microsoft. NET .Sdk.Publi sh "в список SDK проекта:
<Project Sdk="Microsoft.NET.Sdk;Microsoft.NET.Sdk.Publish">
Вот весь мой проект project.csproj, который вроде как супер просто:
<Project Sdk="Microsoft.NET.Sdk;Microsoft.NET.Sdk.Publish">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<OutputType>Exe</OutputType>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CsvHelper">
<Version>12.1.2</Version>
</PackageReference>
</ItemGroup>
</Project>
Я использую следующую команду для публикации:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" MySolution.sln -maxCpuCount:1 -nodeReuse:True -target:Build -property:Configuration=Release -property:DeployOnBuild=true -property:PublishProfileFullPath="C:\Profiles\Publish.pubxml" -restore /bl
Она создает папку, которую я указал как publishUrl в моем профиле публикации, но эта папка пуста. Из того, что я вижу в двоичном журнале, цель FileSystemPubli sh просто пропущена, потому что ей нечего копировать.
Единственный способ смягчить эту проблему, который я нашел, - это добавить:
<_PublishProjectType>AspNetCore</_PublishProjectType>
В мой проект, а затем он работает хорошо, но это довольно сложно, потому что консольное приложение не имеет ничего общего с AspNetCore и раскрывает некоторые внутренние компоненты SDK.
Любые идеи о том, как решить эту проблему, не полагаясь на внутренности SDK?