是的。如您所知,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
然后它应该创建一个准备上传到 NuGet.org的MyPackage.1.0.0.nupkg文件。
这是 Nuspec 格式的文档:http: //docs.nuget.org/Create/Nuspec-Reference