Microsoft. NET .Sdk.Publi sh не копирует файлы в каталог publi sh - PullRequest
1 голос
/ 13 июля 2020

Я пытаюсь опубликовать sh новый проект консольного приложения в стиле SDK. net и сталкиваюсь с проблемой публикации проекта, использующего Microsoft. NET .Sdk (пожалуйста, платите внимание, это не Microsoft. NET .Sdk.Web, который отлично работает).

Что я сделал:

  1. Я добавил 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?

...