zoukankan      html  css  js  c++  java
  • NuGet的简单科普

    1:搭建自己的NuGet服务器

    新建一网站项目,然后打开 程序包管理器控制台 ,使用 “Install-Package NuGet.Server -Version 2.2.2”命令

    2:发布自己的Package

    下载NuGet.exe,并把它放到系统变量中

    2.1 创建nuspec文件

    进入项目目录,按下Shift并单击鼠标右键,选择在此处打开命令窗口

    使用 nuget spec 命令,创建nuspec文件

    文件部分可替换参数解释如下

      关于程序集版本号的设置 默认是 [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")]

    可将AssemblyFileVersion注释掉,AssemblyVersion 可设置为1.0.* 生成的版本号将会类似于1.0.6109.25317,后面的2个数字是必然递增的

    2.2 nuspec的依赖

    2.2.1资源依赖

    将依赖的资源文件的生成操作设置为内容

    2.2.2 类库依赖

    我所谓的类库依赖是指,我们有2个程序集,名字分别是Data,Data.SqlServer,我们针对这个项目不想发布2个包,那么问题在与如何在一个Package中,添加多个类库文件?

    此种情况需要添加files节点

    此设置是将src指定的文件放到target目录,target相当于生成的package压缩包的根目录,类库依赖的示例:

    <file src=".in eleasedata.dll" target="lib et40" /> net40 代表 .net framework 版本

    2.2.3 Package依赖

    我自己将解决方案Package的依赖分为两种

    引用通过NuGet引用,发布包时,依赖也是使用NuGet的版本

    此种方式对于包的管理来说,比较方便,直接发布即可,但是在调试的时候,稍微繁琐一些(是可以调试的)

    引用通过项目引用,发布包时,依赖使用NuGet的版本

    此种方式对于调试,比较方便,但是在发布包的时候,需要手动指定依赖的包版本,做法如下:

    2.2.4 生成包

    使用 nuget.exe pack %ProjectName%.csproj -o %PackagesDir% -sym -Prop Configuration=Release

    ProjectName 项目名字,非解决方案名字

    PackagesDir Package保存地址,没有则当前目录

    友情提示:建议生成包时,先编译下,编译命令 C:WindowsMicrosoft.NETFrameworkv4.0.30319msbuild.exe /p:Configuration=Release %ProjectName%.csproj

    2.2.5 上传包

    2.2.4 生成的包会有2个,分别如上图。

    如果你希望客户端引用你的包,在发生问题时可以自行调试,则将symbols.nupkg重命名把symbols.去掉上传。此方式客户端是有你项目的源码,只是没有项目文件

    如果你不希望客户端直接看到你的源码,则直接将文件名中间不带symbols的上传即可

    文件上传至自己的搭建的项目下的.Packages目录就完成上传了

    3:包的引用和管理

    打开Visual Studio,选项 工具->库程序包管理器->程序包管理器设置。选择程序包源,点击“+”号,输入名字和项目地址(http://domain/nuget)

    选择自己的项目,右键管理NuGet程序包,点击联机,选择你刚输入的名字,就可以看到你上传的Package包,点击安装即可

    管理NuGet程序包中,除联机之外,还有已安装的包(可删除包引用)和更新(可更新包引用)

    添加引用之后,自动创建的packages.config文件很重要,很重要,很重要

    4:调试

    打开解决方案所在的目录,找到packages文件夹,打开对应包的文件夹,进入src目录,即是程序的源代码文件

  • 相关阅读:
    如何只用5分钟完成数据 列表、创建页面
    从零开始搭建一个PaaS平台
    C# 多线程猜想
    使用Golang + lua实现一个值班机器人
    如何使用Golang实现一个API网关
    记一次Windb死锁排查
    怎样在PaaS平台上搭建一个会自动关闭的会议室
    JS Object To C# ASP.Net ModelBind
    重写了一遍授权思路
    授权详细设计
  • 原文地址:https://www.cnblogs.com/lwein/p/5897082.html
Copyright © 2011-2022 走看看