您的位置:首页 > 其它

Nuget更新

2016-08-28 22:08 155 查看
        在ITOO项目中经常会引用一些接口,由于整个ITOO是一个云平台,下面有不同的系统的组成,为了引用的方便,只需要把.dll文件直接发布到Nuget上即可实现不同系统之间的引用。发布后需求是会变化的,面临的问题就是版本的更新,更新虽然容易,如不注意还是会令人头疼一阵子

什么是NuGet?

        定义:是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便。

项目中的理解:自己定义一个接口或几个接口,每个接口中都有相应的方法,这些接口供自己的系统调用或者其他系统调用,前提是将这些自己写的接口打包发布到Nuget上,这样在引用中联机查找即可,方便了开发人员的引用,更新和删除.dll与文件

更新NuGet包?

         常规做法如下:

         1.下载NuGet.exe(点击下载),将下载完的NuGe.exe放到将要更新的包的文件夹里,如我要更新ITOO.AuthorityBackUser.Contracts




         2.编辑Assembly类中的版本号





         3.打开管理员命令提示符的窗口,将路径定位到当前文件夹下(同NuGet.exe所放的文件夹)





          4.输入命令 nuget pack 文件名.nuspec,Pack出一个nuspec文件,然后编辑该文件进行编辑





         5.在输入一条命令nuget  push 文件名.nupkg,等待出现下图中的提示就成功了





意外收获

          相对于发布来说,更新简单很多,但稍不加留意就会令人头大,之后便是收获了

        (1)Assembly类(更新步骤中第二步提到)

          在C#里Assembly类表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言运行时(Common Language Runtime )应用程序构造块,Assembly包含来程序的名称,版本号,自我描述,文件关联关系和文件位置等信息【在项目中有一个Assembly.cs类文件存储着程序集的信息】

        (2)Nuget四个常用命令

          setAPIKey:Saves an API key for a given server URL. When no URL is provided API key is saved for the NuGet gallery.(设置APIKey值,相当于一把钥匙,发布时需要用到的)

          pack:Greates a NuGet package based on the specified nuspec or project file (用nuspec文件pack出一个nupkg文件)

          push:Pushes a package to the server and optionally publishes it.(最后的发布)

          spec:Generates a nuspec for a new package. If this command is run in the same folder as a project file<.csproj .vbproj .fsproj>,it will create a tokenized nuspec file(创建一个nuspec文件)

         (3)问题集锦

            1)一是发布后才会更新,如果是本机发布本机更新便不会存在找不到API Key值,如果只是单纯的更新,首先第一步便是Nuget  setAPI key这样才能进入这个Nuget进行配置

            2)当需要Nuget pack  nuspec文件时发现没有找到也不能进一步编辑,这时我们打开Nuget命令会发现spec,里面说明了用scproj文件进行创建(如果没有指引或看命令的习惯这一步是彻底蒙了)

            3)步骤四中所框起来的是必填项目,不然会进行报错,一直会提醒not  find  。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息