你的位置:首页 > ASP.net教程

[ASP.net教程]一个技术汪的开源梦 —— 基于 .Net Core 的组件 Nuget 包制作 发布


微软的 ASP.Net Core 强化了 Nuget 的使用,所有的 .Net Core 组件均有 Nuget 管理,所以有必要探讨一下 .Net Core 组件制作 Nuget 包和发布。

之前 .Net Framework 程序集打包 Nuget 有以下方法:

1. 使用命令  nuget pack  详见博客园的一篇博文 《用命令行工具创建 Nuget 程序包》;

2. 使用 NuGet Package Explorer;

3. vs 插件 NuBuild Project System。

这其中第 3 种方法是最好用的,可以直接在 vs 中制作 Nuget 包,然后用方法 2 校验生成的 Nuget 包对不对或者微调发布,亦可以用 nuget 命令进行包的推送。

下面说 .Net Core 组件的打包

微软既然所有的 .Net Core 组件均有 Nuget 去管理,那它肯定会出一个打包工具或者命令,没错下面就开始说一下  dotnet pack  命令。

想必大家之前肯定用过 dotnet 相关的命令,那今天说一下它的打包命令 dotnet pack 这里的打包就是打成 nuget 包。

包生成

  执行命令 dotnet pack --help 看一下有啥子参数。

  

  -h 不用说了就是查看帮助;

  -o 指定生成的nuget包要输出到那个目录下;

  --no-build 打包时不要编译项目;

  -b 项目编译时的临时输入目录;

  -c 配置使用 Debug 模式还是 Release 模式(默认为 Debug);

  -version-suffix 如果 project.json 中的项目版本以 * 结尾,这个参数可以指定参数将 * 替换掉;

  -s 指定是否仅供内部 nuget 使用。

以下是简单示例:

1. project.json 文件目录下执行命令: dotnet pack -c Release -o Nugets 

2. 非 project.json 文件目录下执行命令:

 dotnet pack -c Release -o Nugets src\Wlitsoft.Framework.Common.Abstractions\project.json 

打包后会生成两个文件

    Wlitsoft.Framework.Common.Abstractions.0.1.1-Beta.nupkg

    Wlitsoft.Framework.Common.Abstractions.0.1.1-Beta.symbols.nupkg

第一个文件是 Nuget 包文件,第二个是包括源码的 Nuget 包文件。

命名规则为:项目文件夹名称 + 版本号(project.json 内指定的 version),没有搞明白怎么修改默认的命名生成规则。

注意:版本号后缀带 - xxx 标示预发行版本。

包检查

包已经生成成功了那咱用 NuGet Package Explorer 打开看眼生成的对不对,当然亦可用压缩文件软件将 nupkg 文件打开查看 nuget 包的描述文件。

 

包上传

如果是开源项目的话,包可以上传到 Nuget 官方服务器,如果是公司内部私有项目的话那就上传到内部是私有 Nuget 服务器或者文件共享服务器中(Nuget 源支持文件共享源)。

1. 在 Nuget 官网上传。

2. 使用 Nuget 命令上传

    该方法需要提交生成一个 key ,然后使用命令向 Nuget 服务器推送包。

 

校验上传结果

打开 vs 的 Nuget 查询看有没有上传的包。

 

最后热烈庆祝 Visual Studio 出 Mac 版本了,但有一个文件不支持 VS 2015 最新的 xproj 项目文件,只支持 csproj 。。。。