這是當前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此解決方案的信息源於此。