我的博客
个人资料:
AlanThinker
AlanThinker@stk.me

使用NuGet发布自己的类库包

软件开发 发表时间:2016-07-03 更新时间:2017-04-12

* 下载NuGet.exe

https://dist.nuget.org/index.html

* 产生并修改nuspec

 nuget spec 
用notepad打开DaxnetNugetTest.nuspec文件,把需要替换的信息替换掉,不需要的tag全部删掉,注意里面的$xxx$宏,这些就是引用了AssemblyInfo.cs中的设置值,在编译产生package的时候,会使用AssemblyInfo.cs中的相应值进行替换。完成编辑后,我们的nuspec文件如下:
 
<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>
    <projectUrl>http://apworks.org</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes>First release</releaseNotes>
    <copyright>Copyright 2013</copyright>
  </metadata>
</package>

* 生产类库包:

1. 从 nuspec 以及相应的 ddl文件 创建包.
nuget pack "ATestPackage.nuspec" -Verbosity detailed

或者:
2. 从 csproj 创建包
nuget pack DaxnetNugetTest.csproj -Verbosity detailed -Properties Configuration=Release -OutputDirectory dir1 

*复制到本地的source目录.

#复制到本地源目录.
#注意, *通配符不能再双引号内.
cp -f "$tempDir/Npgsql2/"*.nupkg "$nugetPath"
checkIfActionError "出错! $LINENO"
#删除本地的全局缓存. 注意, 如果sln目录下面有package目录, 也需要清空package目录.
rm -rf "C:\Users\Alan\.nuget\packages\AlanThinker.Npgsql2"
checkIfActionError "出错! $LINENO"
IP Address: 43.129.217.254