首页 > 代码库 > 怎样从自己用Nexus构建的Nuget仓库发布或下载dll
怎样从自己用Nexus构建的Nuget仓库发布或下载dll
目的:怎样从自己用Nexus构建的Nuget仓库发布或下载dll
实现:
我们前面已经讲过用Docker来运行Nexus构建Maven仓库,这次我们将通过Nexus构建的Nuget仓库来发布和下载我们的dll,所以之前的关于Nexus的搭建就不在此描述了!
其实Nexus默认已经有了Nuget的仓库,我们只需要设置好相应权限给相关人员即可,例如:
接下来主要说明我们怎样发布我们的dll,或一些第三方的dll到我们的仓库中去,下面我们以发布一个第三方的dll到仓库后在下载来说明:
1、获取Nuget API Key
我们如果需要发布dll到Nexus的Nuget仓库的话,一个是需要管理员授予权限,另外一个是要查看Nuget API Key,如果自己没权限,可以找管理员,例如:
2、下载nuget.exe
将下载的nuget.exe文件放到需要打包的路径,或者将nuget.exe的存放路径添加到path中去,反正就是要能正常运行nuget.exe
3、创建.nuspec文件
我们可以通过cmd,先当前目录切换到你需要打包的目录,另外打包目录需要创建lib文件夹,如果有framework版本的,我们还可以在lib下创建类似net45的文件夹,
即:"打包路径/lib/net45",我们在"打包路径/lib/net45"下放入需要打包的dll,如果有相关xml也可放入,例如:
这些准备好后,我们切回到打包路径,运行如下命名(后面的TIBCO.EMS替换为你需要发布的dll的ID):
nuget spec TIBCO.EMS
如果运行正常,应该会生成TIBCO.EMS.nuspec文件(相应的dll ID名.nuspec),例如:
4、修改TIBCO.EMS.nuspec(TIBCO.EMS替换为你需要发布的dll的ID)
因为上面生成的.nuspec文件只是个模板,我们需要针对我们自己的具体情况来调整,例如调整为:
<?xml version="1.0"?> <package > <metadata> <id>TIBCO.EMS</id> <version>8.3.0</version> <authors>AngusYang</authors> <owners>Esquel</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>TIBCO EMS DLL V8.3.0</description> <releaseNotes>TIBCO EMS DLL V8.3.0</releaseNotes> <copyright>Copyright 2017</copyright> <tags>TIBCO EMS</tags> <dependencies> </dependencies> </metadata> </package>
当然,如果有依赖的话,需要添加依赖的dll ID和版本等信息!例如我另外一个自己dll的配置信息:
<?xml version="1.0"?> <package > <metadata> <id>CommonWebServiceLibrary</id> <version>1.0.0</version> <authors>AngusYang</authors> <owners>Esquel</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Esquel Common WebService Library for TIBCO ESB</description> <releaseNotes>Release first version to Nexus Server.</releaseNotes> <copyright>Copyright 2017</copyright> <tags>Esquel ESB</tags> <dependencies> <group targetFramework=".NETFramework4.5"> <dependency id="log4net" version="2.0.5" /> <dependency id="TIBCO.EMS" version="8.3.0" /> </group> </dependencies> </metadata> </package>
5、创建.nupkg文件
但我们修改好我们的.nuspec文件后,我们将运行如下命名进行打包,例如:
nuget pack TIBCO.EMS.nuspec
如果运行正常,应该会在打包目录生成.nupkg文件,例如:
6、发布
当我们成功打包后,我们就可以执行我们的发布命令了,例如:
nuget.exe push -Source http://[mynexusserver:port]/repository/nuget-hosted/ -ApiKey [第一步获取的NugetAPIKey] TIBCO.EMS.8.3.0.nupkg
将[]以及里面的内容替换为你相应的内容即可,如果运行成功,应该可以在仓库中能够找到,例如:
发布在此已基本完成,接下来讲VS来下载安装:
7、设置Package Manager Settings
选择Tools-->NuGet Package Manager-->Package Manager Settings进行设置,如果没有NuGet Package Manager可以通过Tools-->Extensions and Updates来查找安装一个,例如:
点击后增加一个自己的package soureces,地址为自己的Nexus服务器及端口,创建好后勾选上,取消掉默认的仓库,因为Nexus里面已经配置了该仓库,这样可以统一从Nexus来获取:
8、获取安装自己需要的dll
我们点击项目运行Manage NuGet Packages来搜索我们自己上传的TIBCO.EMS,如果能够找到,说明配置成功,我们点击安装即可!
怎样从自己用Nexus构建的Nuget仓库发布或下载dll