簡體   English   中英

在nuget包中包含引用的項目

[英]Include referenced project in nuget package

我有3個項目的解決方案(使用netstandard1.4)。 項目A包含共享代碼。 項目B是服務器端庫,項目C是客戶端庫。 項目B和C包括項目A作為項目參考。

現在我想將項目B和項目C發布為nuget包。

問題是項目B和C的nuget包不包含項目A的代碼/ dll。看起來項目B和C希望項目A也作為nuget包。

如何將項目B和C打包為獨立的nuget包? 我不想將項目A發布為nuget包。

如何將項目B和C打包為獨立的nuget包? 我不想將項目A發布為nuget包。

由於您使用的是.NET Standard 1.4 ,因此無法使用“ dotnet pack ”直接方式來包含項目引用。 因為dotnet pack只打包項目而不打包P2P引用,所以你可以從文件dotnet-pack獲取詳細信息,以及GitHub上的問題

打包項目的NuGet依賴項將添加到.nuspec文件中,因此在安裝軟件包時可以正確解析它們。 項目到項目的引用不會打包在項目中。 目前,如果您具有項目到項目的依賴關系,則每個項目必須有一個包。

如果要打包項目B和C包含項目A中的代碼/ dll,可以使用NuGet.exe通過將項目引用程序集添加到.nuspec文件來創建程序包B和C:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>TestProjectB</id>
    <version>1.0.0</version>
    <authors>Tester</authors>
    <owners>Tester</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package description</description>
    <releaseNotes>Test sample for netstandard package.</releaseNotes>
    <copyright>Copyright 2017</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>
<files>
    <file src="bin\Debug\netstandard1.4\TestProjectB.dll" target="lib\netstandard1.4\TestProjectB.dll" />
    <file src="bin\Debug\netstandard1.4\TestProjectA.dll" target="lib\netstandard1.4\TestProjectA.dll" />
</files>
</package>

在這種情況下,您可以將項目B和C打包為獨立的nuget包,不需要將項目A作為nuget包發布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM