[英]Visual Studio 2017 Nuget pack exclude Project reference as another nuget reference, add assembly instead
當我們在visual studio 2017中創建一個nuget包時,默認情況下它會將項目引用添加為另一個nuget引用。 我們如何在創建包時禁用它,而是:
可以使用PrivateAssets="All"
標記PackageReference
,以確保它在打包時不會作為使用庫的NuGet依賴關系。 然后,使用庫可以使用自定義目標將文件添加到構建的nuget包。 csproj
文件的完整示例如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);IncludeP2PAssets</TargetsForTfmSpecificBuildOutput>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\testprivatelib\testprivatelib.csproj" PrivateAssets="All" />
</ItemGroup>
<Target Name="IncludeP2PAssets">
<ItemGroup>
<BuildOutputInPackage Include="$(OutputPath)\testprivatelib.dll" />
</ItemGroup>
</Target>
</Project>
其中testprivatelib.csproj
是一個構建DLL的項目,您希望將其另外包含到.nupkg
文件中,而不是為該引用的項目發布額外的NuGet包。
指定不同的NuGet包更加困難。 它需要手動創建一個.nuspec
文件來使用它來打包NuGet包。 你可以看到一個例子,如何這可以在完成https://github.com/dasMulli/nuget-include-p2p-example/tree/master/LibA -在LibA.csproj
被設置為使用LibA.nuspec
時dotnet pack
叫做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.