Microsoft.NET.Sdk.Publish不会将文件复制到发布目录

时间:2020-07-13 13:36:04

标签: .net .net-core msbuild dotnet-sdk

我正在尝试发布新的SDK样式的.net核心控制台应用程序项目,并且在发布使用“ Microsoft.NET.Sdk”的项目时遇到问题(请注意,它不是Microsoft.NET .Sdk.Web,效果很好)。

我做了什么:

  1. 我已将“ Microsoft.NET.Sdk.Publish”添加到项目的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>
  1. 我使用下一个发布命令:
"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的文件夹,但是此文件夹为空。 从二进制日志中可以看到,FileSystemPublish目标被跳过了,因为它没有要复制的内容。

减轻我发现的此问题的唯一方法是添加:

<_PublishProjectType>AspNetCore</_PublishProjectType>

对我的项目来说,它运行良好,但这有点棘手,因为控制台应用程序与AspNetCore无关,并且公开了一些SDK的内部组件。

关于不依靠SDK内部原理如何解决它的任何想法?

0 个答案:

没有答案
相关问题