我正在尝试发布新的SDK样式的.net核心控制台应用程序项目,并且在发布使用“ Microsoft.NET.Sdk”的项目时遇到问题(请注意,它不是Microsoft.NET .Sdk.Web,效果很好)。
我做了什么:
<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的文件夹,但是此文件夹为空。 从二进制日志中可以看到,FileSystemPublish目标被跳过了,因为它没有要复制的内容。
减轻我发现的此问题的唯一方法是添加:
<_PublishProjectType>AspNetCore</_PublishProjectType>
对我的项目来说,它运行良好,但这有点棘手,因为控制台应用程序与AspNetCore无关,并且公开了一些SDK的内部组件。
关于不依靠SDK内部原理如何解决它的任何想法?