通过命令行
官方说明,可以参考:creating-and-publishing-a-package
如果你希望可以使用图形界面的方式,请参考这篇文章
打包dll
使用如下的命令:
nuget spec MyAssembly.dll
会生成MyAssessmbly.nuspec文件,与GUI方式中选择Edit Metadata生成的xml文件一致。
打开*.nuspec文件,可以看到结构如下的文件
<?xml version="1.0"?>
<package >
<metadata>
<id>StoShared.NHibernate.dll</id>
<version>1.0.0</version>
<authors>rentu</authors>
<owners>rentu</owners>
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package description</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>Tag1 Tag2</tags>
<dependencies>
<dependency id="SampleDependency" version="1.0" />
</dependencies>
</metadata>
</package>
根据需要,修改相应的配置属性,修改完成后,使用下面的命令进行打包
nuget pack MyAssembly.nuspec
注意,dll需要放到lib文件夹下,才会在install package后被自动添加引用。在lib文件夹下建立类似net40文件夹,可以保证package在.net 4.0上运行。
打包项目
在项目的根文件夹下(包含csproj的文件夹下,使用如下的命令)
nuget spec
会生成*.nuspec文件
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
</package>
其中的一些通配符,会在我们打包的时候,根据项目的配置文件自动替换,替换规则如下表所示。
Token | Source |
$id$ | The Assembly name |
$version$ | The assembly version as specified in the assembly’sAssemblyVersionAttribute (orAssemblyInformationalVersionAttribute if present). |
$author$ | The company as specified in the AssemblyCompanyAttribute. |
$description$ | The description as specified in the AssemblyDescriptionAttribute. |
默认情况下,打包package只会包含编译生成的dll文件和lib文件夹下的文件,可以通过下面的配置添加其他需要的文件。
<files> <filesrc="..\..\SomeRoot\**\*.*" target=""/> </files>
编辑好后,通过下面的命令进行打包
nuget pack MyProject.csproj
可以有以下的参数:
nuget pack A.csproj -IncludeReferencedProjects 打包时包含引用的项目nuget pack MyProject.csproj -Prop Configuration=Release 打包release的dll
最新博客地址:http://blog.turenlong.com/