温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Nuget帮助说明

发布时间:2020-08-01 00:52:20 来源:网络 阅读:1174 作者:开始51CTO 栏目:开发技术

 

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.4Vs开发环境中配置Nuget包更新地址9

1.5安装和更新Nuget9

1.6参考资料10

 

第一章 
配置说明

一.1 Nuget简介

 NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通过NuGet来安装一些Visual Studio的插件等

 

更新程序包

在《软件工程的事实和谬误》(Addison-Wesley Professional2002 年)一书中,Robert L. Glass 说:“维护工作通常约占软件成本的 40-80%(平均是 60%)。 因此,维护可能是软件生命周期中最重要的阶段。”

一.2 安装本地Nuget Server服务器

一.3 创建一个Web应用程序

(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文件中,将相关信息填写完整,特别是对应的版本号
Nuget帮助说明

执行完后,生成文件:xxx.nupkg  

NuGet会使用默认的项目配置所产生的程序集进行打包。如果项目默认是Debug,而你需要用Release打包,则使用下面的命令:

nuget pack xxx.csproj -Prop Configuration=Release

 

-IncludeReferencedProjects

 

发布包到服务器上的方式:

1、 将打包好的文件放在(复制)公司内部Nuget服务器的 Packages 文件夹下

2、 通过工具:NuGet Package Explorer

官网:http://npe.codeplex.com/

Nuget帮助说明 

 

3、 通过命令: nuget push

nuget push E:\xxxx\log4net.2.0.3.nupkg -s http://192.168.1.5:100/ –a 1

这里的-a等同(-ApiKey xx) 值在服务上的配置文件中配置:


 Nuget帮助说明

一.4 下载第三方公布的包或制作包

一.5 下载第三方公布的包

Nuget帮助说明 

Nuget帮助说明 

这里可以下载有公布的包( xxx. Nupkg ),然后可以传到内网包服务器上

这个工具也可以制作需要发布的包

 

一.6 通过工具制作包

Nuget帮助说明 

这里可以编辑类库包的信息和添加类库、程序集的引用解释下几个比较重要的字段

Id:用于定位类库包的唯一标示,如在命令行下执行 Install-Package MyPackage 这里的MyPackage就是包包的Id值

Version:类库的版本号,这里建议和程序集的真实版本号保持一致,以免发生混淆

Dependencies:此类库依赖的程序集,根据实际情况添加依赖类库的Id和版本号,若无留空即可,这里需要注意下填写的依赖类库需要在NuGet服务器上能找到,否则无法完成自动引用添加

Framework assemblies:依赖的Framework 程序集,根据实际需要选择即可,一般无需设置

  除以上四项以外其他属性根据实际情况修改即可,若自己用不修改也中,不过为了使用方便还是建议把类库描述(Description)填写下

 

一.7 VS中操作使用包命令



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帮助说明 

 

一.8 创建Nuget包并发布到服务器

NuGet可以使用NuGet.exe在命令行下进行类库打包,也可以使用图形化界面进行打包

(1) 使用Nuget命令打包并发布

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/

 

 

 

 

一.9 Vs开发环境中配置Nuget包更新地址

Nuget帮助说明 

这里的源就是自己搭建的nuget内网服务器站点

一.10 安装和更新Nuget包

安装和更新包有2种方式:

1、 通过在项目上右键打开包管理工具

Nuget帮助说明 

Nuget帮助说明 

2、 通过包管理控制台

Nuget帮助说明 

 

一.11 参考资料

(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.

 

 


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI