Nuget帮助说明
目 录
第一章配置说明3
1.1Nuget简介3
1.2安装Nuget3
1.2.1创建一个Web应用程序3
1.2.2下载第三方公布的包或制作包5
1.2.2.1下载第三方公布的包5
1.2.2.2通过工具制作包7
1.2.3VS中操作使用包命令8
1.3创建Nuget包并发布到服务器8
1.4在Vs开发环境中配置Nuget包更新地址9
1.5安装和更新Nuget包9
1.6参考资料10
NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通过NuGet来安装一些Visual Studio的插件等
更新程序包
在《软件工程的事实和谬误》(Addison-Wesley Professional,2002 年)一书中,Robert L. Glass 说:“维护工作通常约占软件成本的 40-80%(平均是 60%)。 因此,维护可能是软件生命周期中最重要的阶段。”
(1) 用在Vs开发环境中使用Nuget管理工具,安装“NuGet.Server”库
(2) PM> Install-Package nuget.server
(3) 发布安装好NuGet.Server库的Web站点,部署至服务器上
NuGet有个命令行工具:NuGet.exe请设置机器的PATH环境变量,将NuGet.exe的路径添加到PATH中。方便调用
Nuget命令:
第一步: nuget spec 生成包的描述文件,可调整 (可省略)
nuspec是NuGet将项目打包成nupkg的输入文件,可以通过nuget spec命令产生。在命令提示符下,进入xxx.csproj类库文件所在目录,然后执行,会生成xxx.nuspec文件
第二步:产生类库包 nuget pack xxxx.csproj
在类库的AssemblyInfo.cs文件中,将相关信息填写完整,特别是对应的版本号
执行完后,生成文件:xxx.nupkg
NuGet会使用默认的项目配置所产生的程序集进行打包。如果项目默认是Debug,而你需要用Release打包,则使用下面的命令:
nuget pack xxx.csproj -Prop Configuration=Release
-IncludeReferencedProjects
发布包到服务器上的方式:
1、 将打包好的文件放在(复制)公司内部Nuget服务器的 Packages 文件夹下
2、 通过工具:NuGet Package Explorer
官网:http://npe.codeplex.com/
3、 通过命令: nuget push
nuget push E:\xxxx\log4net.2.0.3.nupkg -s http://192.168.1.5:100/ –a 1
这里的-a等同(-ApiKey xx) 值在服务上的配置文件中配置:
这里可以下载有公布的包( xxx. Nupkg ),然后可以传到内网包服务器上
这个工具也可以制作需要发布的包
这里可以编辑类库包的信息和添加类库、程序集的引用解释下几个比较重要的字段
Id:用于定位类库包的唯一标示,如在命令行下执行 Install-Package MyPackage 这里的MyPackage就是包包的Id值
Version:类库的版本号,这里建议和程序集的真实版本号保持一致,以免发生混淆
Dependencies:此类库依赖的程序集,根据实际情况添加依赖类库的Id和版本号,若无留空即可,这里需要注意下填写的依赖类库需要在NuGet服务器上能找到,否则无法完成自动引用添加
Framework assemblies:依赖的Framework 程序集,根据实际需要选择即可,一般无需设置
除以上四项以外其他属性根据实际情况修改即可,若自己用不修改也中,不过为了使用方便还是建议把类库描述(Description)填写下
Get-Package | 获取当前项目已经安装的类库 |
Install-Package | 安装指定类库,命令格式如下:Install-Package 类库ID,如Install-Package Newtonsoft.Json 这里需要注意的是类库的ID是唯一的,指向命令后会自动搜索指定类库源里指定ID类库,若找到则自动下载并添加引用,找不到则会出现找不到类库的提示 |
Uninstall-Package | 卸载指定类库,命令格式如下:Uninstall-Package 类库ID,如Uninstall-Package Newtonsoft.Json |
Update-Package | 更新指定类库,命令格式如下:Update-Package 类库ID,如Update-Package Newtonsoft.Json
此命令尝试将每个程序包都更新到最新版本。 因此,如果您有 1.0 版本的程序包,而 1.1 和 2.0 版本在该程序包源中可用,则该命令将此程序包更新至最新的 2.0 版本。 |
Update-Package -Safe | 如果任何程序包包含重大改变,这会是一项非常重大的操作。 在多数情况下,您仅希望将各程序包更新至最新的修补程序版本。 这叫“安全”更新,前提是具有较大内部版本号或修订号(但具有相同的主版本号和次版本号)的程序包能够向后兼容。 仅添加 Safe 标记以执行安全更新,例如:Update-Package xxxx -Safe 在这种情况下,如果您安装了 1.0.0 版本的程序包,而 1.0.1 和 1.1 版本在该程序包源中可用,则该程序包将安全地升级至 1.0.1 而非 1.1。 Update-Package 命令还提供更精细的控制,例如,将程序包更新至特定版本而非最新版本。 |
NuGet可以使用NuGet.exe在命令行下进行类库打包,也可以使用图形化界面进行打包
(1) 使用Nuget命令打包并发布
在项目下建一个批处理文件,按图方式进行处理,需要发布时,手动点击执行后就可发布到服务器上。
创建程序包。在项目文件和 NuSpec 文件所在目录中,运行以下命令以创建程序包:
nuget pack ProjectName.csproj
如果同一个目录中只有一个项目文件,则在运行命令时可以省略项目文件名称。
如果尚未编译项目,可先用 Build 标记编译项目,然后压缩它。 这将在运行 pack 命令之前编译项目:
nuget pack ProjectName.csproj –Build
将项目里引用项目一起打包:
nuget pack South.Service.csproj -Build -IncludeReferencedProjects
-IncludeReferencedProjects 参数,将打包项目时,将项目引用一起打包,未加参数时,默认是不包含引用项目
此命令将生成名为 ProjectName.{version}. nupkg 的文件,其中,{version} 的值与 AssemblyVersionAttribute 中指定的值相同。 例如,如果版本是 1.0.0,您的程序包将命名为 ProjectName.1.0.0. nupkg。 您可以在操作后使用 Package Explorer 检查程序包,以确保创建正确。
为了方便开发人员安装您的程序包,请考虑使用 Symbols 标记创建带调试器符号的程序包:
nuget pack ProjectName.csproj -Build -Symbols
除了主程序包之外,此命令还创建符号程序包。 这使安装您的程序包的其他人在调试其应用程序时能够单步执行程序包代码。
(2) 用到 NuGet Package Explorer
http://nuget.codeplex.com/releases/59864/clickOnce/NuGetPackageExplorer.application
组件官网:http://npe.codeplex.com/
这里的源就是自己搭建的nuget内网服务器站点
安装和更新包有2种方式:
1、 通过在项目上右键打开包管理工具
2、 通过包管理控制台
(1) 官方文档
http://docs.nuget.org/
Nuget公布包地址
http://www.nuget.org/packages
(2) 超详细图解:自己架设NuGet服务器
http://diaosbook.com/Post/2012/12/15/setup-private-nuget-server
(3) NuGet学习笔记(2) 使用图形化界面打包自己的类库
http://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477607.html
(4) NuGet学习笔记(3) 搭建属于自己的NuGet服务器
http://www.cnblogs.com/lzrabbit/archive/2012/05/01/2477873.html
(5) 使用NuGet发布自己的类库包(Library Package)
http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html
(6) 使用 NuGet 管理项目库
http://msdn.microsoft.com/zh-cn/magazine/hh647106.aspx
http://www.netfoucs.com/article/hxtan/100384.html
C:\Users\wxq>nuget pack -help |
usage: NuGet pack <nuspec | project> [选项] |
基于指定的 nuspec 或项目文件创建 NuGet 程序包。指定用于创建程序包的 nuspec 或项目文件的位置。 |
options: |
-OutputDirectory 为创建的 NuGet 程序包文件指定目录。如果未指定,则使用当前目录。 |
-BasePath nuspec 文件中定义的文件的基本路径。 |
-Verbose 显示程序包生成的详细输出。 |
-Version 覆盖 nuspec 文件中的版本号。 |
-Exclude + 指定创建程序包时要排除的一个或多个通配符模式。 |
-Symbols 确定是否应创建包含源和符号的程序包。当使用 nuspec 指定时,创建常规 NuG |
et 程序包文件和相应的符号程序包。 |
-Tool 确定项目的输出文件是否应在工具文件夹中。 |
-Build 确定是否应在生成程序包之前生成项目。 |
-NoDefaultExcludes 防止默认排除 NuGet 程序包文件以及以点开头的文件和文件夹(例如 .svn)。 |
-NoPackageAnalysis 指定命令在生成程序包后,是否不应运行程序包分析。 |
-ExcludeEmptyDirectories 防止在生成程序包时包含空目录。 |
-IncludeReferencedProjects 包括作为依赖项或作为程序包的一部分的引用项目。 |
-Properties + 在创建程序包时,可以指定以分号 ";" 分隔的属性列表。 |
-MinClientVersion 设置创建的程序包的 minClientVersion 属性。 |
-Help (?) help |
-Verbosity 在输出中显示以下数量的详细信息: normal、quiet、detailed。 |
-NonInteractive 不提示用户进行输入或确认。 |
有关详细信息,请访问 http://docs.nuget.org/docs/reference/command-line-reference |
Update-Package命令相关参数说明:
Parameter | Type | Description |
-Id | string | Specifies the Id of the package to be updated. |
-ProjectName | string | Specifies the name of the project in which packages should be updated. |
-Version | SemanticVersion* | Specifies the new target version of the package as a result of the update. |
-Source | string | Specifies where to look for package updates, overriding the package sources that are specified in the Options dialog. This value can be either a url to a remote repository or a path to a local repository or the name of a package source specified in the Options dialog. |
-IgnoreDependencies | Switch parameter | If set, NuGet will ignore dependency packages and only update the main package. |
-Safe | Switch parameter | If set, NuGet will only update to a new version that has the same major and minor versions as the previous package. For example, if the old version is 1.2.0, NuGet will accept the update package with version of 1.2.1 or 1.2.9999 but it will not accept 1.3.0. |
-IncludePrerelease | Switch parameter | If set, NuGet will consider prerelease packages as candidates for updates. |
-Reinstall | Switch parameter | If set, instead of updating the package to the latest version, NuGet will uninstall the package and reinstall the same version. This is useful when, for example, you‘ve updated the target framework of your project, e.g. from .NET 4.0 to .NET 4.5, and you want to reference .NET 4.5-specific assemblies in the package. You can‘t set this parameter together with the -Version parameter. |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。