首页 > 代码库 > 怎样从自己用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