0
當我們在visual studio 2017中創建nuget包時,它默認將項目引用添加爲另一個nuget引用。 我們如何可以禁用在創建包,而是:Visual Studio 2017 Nuget pack將項目引用作爲另一個nuget引用排除,但添加程序集
- 選擇了不同的包名
- 包括項目的DLL,而不是在創建包
當我們在visual studio 2017中創建nuget包時,它默認將項目引用添加爲另一個nuget引用。 我們如何可以禁用在創建包,而是:Visual Studio 2017 Nuget pack將項目引用作爲另一個nuget引用排除,但添加程序集
的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
。