是的。如您所知,NuGet可以直接從.csproj文件創建一個包。這基本上是「自動」模式。這很簡單,但也有侷限性。
您還可以創建一個.nuspec文件,該文件允許您明確說明如何構建包。這可以包括多個程序集,依賴項,目標不同的框架等。
首先在解決方案的根目錄下創建一個名爲nuspec的文件夾。
在nuspec文件夾中打開命令行。
類型:nuget spec MyPackage
< =使用任何你的包ID應該是
這將創建一個MyPackage.nuspec文件。編輯這個文件。你會在那裏看到一堆樣板代碼。適當地更新值。
注意:一旦開始使用明確的.nuspec文件,您將不得不維護這些值(如版本號),因爲它們將不再從.csproj文件中提取。
您需要添加的主要部分是<files/>
部分。還要確保包含您的項目所需的依賴關係。
下面是一個示例。nuspec文件:
<?xml version="1.0"?>
<package >
<metadata>
<id>MyPackage</id>
<version>1.0.0</version>
<authors>Author Names</authors>
<owners>Owner Names</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>MyPackage description</description>
<releaseNotes>Initial version.</releaseNotes>
<copyright>Copyright 2015</copyright>
<!-- add dependencies here
<dependencies>
<dependency id="SomePackage.Id" />
</dependencies>
-->
</metadata>
<files>
<file src="..\ProjectA\bin\Debug\ProjectA.dll" target="lib\net45" />
<file src="..\ProjectB\bin\Debug\ProjectB.dll" target="lib\net45" />
</files>
</package>
請注意文件部分如何引用您希望包含在包中的實際程序集。
編輯.nuspec文件後,您需要創建包。
在命令行中輸入:nuget pack MyPackage.nuspec
應該再創建一個MyPackage.1.0.0.nupkg文件準備上傳到NuGet.org。
以下是Nuspec格式的文檔:http://docs.nuget.org/Create/Nuspec-Reference