2017-09-23 93 views

回答

2

PackageReference可以打上PrivateAssets="All"以確保它在打包時不會成爲消費庫的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是建立要額外包括到.nupkg文件,而不是爲引用的項目發佈一個額外的NuGet包一個DLL的項目。

指定不同的NuGet包比較困難。它需要使用它手動創建一個.nuspec文件來打包一個NuGet包。您可以在https://github.com/dasMulli/nuget-include-p2p-example/tree/master/LibA - LibA.csproj設置爲使用LibA.nuspec時看到一個示例,如何調用dotnet pack

相關問題