一个技术汪的开源梦 —— 基于 .Net Core 的组件 Nuget 包制作 & 发布
2016-11-20 12:20
639 查看
一个技术汪的开源梦 —— 目录
微软的 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 。。。。
一个技术汪的开源梦 —— 目录
微软的 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 。。。。
一个技术汪的开源梦 —— 目录
相关文章推荐
- 基于 .Net Core 的组件 Nuget 包制作 & 发布
- 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之 Http 请求客户端
- 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之序列化
- 一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之目录结构
- 原创:发布一个基于TokyoTyrant的C#客户端开源项目
- 一个基于DDD的开源项目,各种技术!
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
- 一起谈.NET技术,发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
- 组件实现【技术分享】发布本人所属 Java 与 C++ 开源项目
- 开源一个基于SQLAlchemy左右值存储的树组件
- 一个技术汪的开源梦 —— 公共组件缓存之分布式缓存 Redis 实现篇
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
- 发布一个开源项目,基于thinkphp框架搭建的一个简单框架
- 发布一个基于TokyoTyrant的C#客户端开源项目
- 原创:发布一个基于TokyoTyrant的C#客户端开源项目
- 发布一个基于TokyoTyrant的C#客户端开源项目
- 发布一个O/R M组件(开源)
- 技术展示篇: 终于掌握了Torque游戏引擎的DTS和DSQ的制作,太高兴了(my success in DTS & DSQ)