这是当前1.0.*
模具的限制。在即将推出的版本1.1.*
和2.0.*
版本的“.NET SDK”中,这将自动完成,所有<Reference>
元素都作为框架程序集添加到生成的NuGet包(除非它们标记为Pack="false"
)。这些变化也将成为VS 2017 15.3的一部分(在撰写本文时尚未发布)。请注意,我正在讨论这些工具(安装了SDK的dotnet --version
)版本,而不是.NET Core运行时版本。
有一种方法可以使用包目标的当前预览包,覆盖SDK提供的预览包 - 请注意,这是一种非常冒险的方式,应该在使用新的1.1或2.0工具后将其删除。
<Project>
<PropertyGroup>
<NuGetBuildTasksPackTargets>junk-value-to-avoid-conflicts</NuGetBuildTasksPackTargets>
</PropertyGroup>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<!-- All your project's other content here -->
<ItemGroup>
<PackageReference Include="NuGet.Build.Tasks.Pack" Version="4.3.0-preview1-4045" PrivateAssets="All" />
</ItemGroup>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
</Project>
另请参阅related GitHub issue on the NuGet repo此解决方案的信息源于此。