用Nuget部署程序包
用Nuget部署程序包
Nuget是.NET程序包管理工具(类似linux下的npm等),程序员可直接用简单的命令行(或VS)下载包。好处:
(1)避免类库版本不一致带来的问题。GitHub是管理源代码的,这个是管理生成的类库/包的。
(2)可自动处理类库依赖:
(3)可指定下载历史版本: install-package name –version 1.0.2
(4)可部署私有包服务器: https://docs.microsoft.com/en-us/nuget/hosting-packages/overview
1. 注册账号
可用微软账户登录注册
2. 生成ApiKey

(1) 这个key最多只能用一年。超出了怎么办?不知道有没有续期措施。
(2) Glob pattern:匹配模式,用户搜索时用的?
3. 发布包方案一:使用命令行
(1) 去官网下载Nuget.exe:
https://www.nuget.org/downloads
VS 2017已经内置了,但不知道怎么在VS内部运行nuget命令
(2) 在项目目录下运行命令:
nuget setApiKey xxxxxxxxx-5a3c-4a67-b969-3cda4f074341
nuget spec, 生成并编辑 .nuspec 文件(是包的配置信息)
nuget pack xxx.csproj, 生成 .nupkg 文件(包)
nuget push xxx.1.0.x.nupkg, 发布
4. 发布包方案二:使用NuGetPackageExplorer
参考:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer
(1)安装并运行:Microsoft Store > NuGet Package Explorer
(2)新建包 > 添加文件夹/文件

可添加的目录类别包括:
|
build |
输出到bin目录 |
|
content |
原样拷贝 |
|
lib |
添加到引用 |
|
src |
源码拷贝 |
|
tools |
? |
(3)发布,填写入你的key

5. 安装测试
在vs>工具>Nuget包管理器>管理解决方案的Nuget程序包>浏览:

或者直接在程序包管理器控制台中用命令行
Install-package packageName

部署后自动将引用、资源、配置等自动发布到新程序。

注意,包发布后有时延。
6. 其它
(1) 指定依赖的.NET类库版本

(2) 限制可下载的版本

(3) 引用类库

(4) 修改.config文件
在Content目录下包含app.config.transform 或 web.config.transform 文件。
https://docs.microsoft.com/zh-cn/nuget/create-packages/source-and-config-file-transformations
(5) 新增文件
在Content目录下放置代码文件,并附加.pp扩展名。如:
content\Model\ContosoData.cs.pp
代码中可用$token$放置一些变量(https://msdn.microsoft.com/library/vslangproj.projectproperties_properties.aspx)
namespace $rootnamespace$.Models
{
public struct CategoryInfo
{
public string categoryid;
public string description;
public string htmlUrl;
public string rssUrl;
public string title;
}
}
(6) 部署到 bin 目录下
(7) 部署自己的Nuget服务器
https://github.com/NuGet/NuGetGallery#build-and-run-the-gallery-in-arbitrary-number-easy-steps
https://docs.microsoft.com/zh-cn/nuget/hosting-packages/nuget-server
用Nuget部署程序包的更多相关文章
- nuget push 程序包到nuget服务器时报错 406 (Not Acceptable)
1.在window服务器上部署nuget服务器时,发布包时出现请求报错 406 (Not Acceptable) 验证用户名.密码正确的情况下,还是出现上面错误.后面跟踪服务器日志,发现window\ ...
- Visual Studio 连接不上NuGet 官方程序包源的解决办法
修改dns 即可
- NuGet管理和还原程序包
在很多开源的程序下载下来不能使用,一般都是平台X86 和X64没有修改,还一个就是程序缺少资源包文件.用Nuget还原即可: 一般建议先修改好平台,然后用NuGet还原程序包.
- NuGet -- 使用控制台管理程序包
为什么要使用控制台管理程序包而不使用程序包管理窗口?原因大家都懂,生活压力这么大,一切都只是为了装一波.开个玩笑,当然不只是此原因,在有些情况下,有些操作使用程序包管理窗口不能达到目的,只能使用控制台 ...
- .Net Core 在Linux服务器下部署程序--(4). 前端ReactWeb应用部署
确认第二步中的软件已经安装完成 Nodejs前端Web服务器 Zip与UnZip压缩包软禁 nrm前端包源管理器 PM2前端Web程序守护进程 创建部署文件夹 如果已经执行过( 3. 租户平台后端程序 ...
- Nuget,程序员的功能包
导读:随着信息技术的发展,资源的共享已经成为一种文化.对于程序设计来说,我们在编写软件的时候,总有那么一些公共使用的东西,或者说需啊哟使用到别人可能已经做得很好的东西.这个时候,再去重写,并不是一个明 ...
- 用命令行工具创建 NuGet 程序包
NuGet.exe 下载地址 本文翻译自: https://docs.nuget.org/Create/Creating-and-Publishing-a-Package https://docs.n ...
- 这台计算机上缺少此项目引用的 NuGet 程序包-缺少的文件是 ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props
异常处理汇总-开发工具 http://www.cnblogs.com/dunitian/p/4522988.html 协助开发里面总有几个是极简爱好者,但是呢删了不该删的就会影响项目开发,下面看下完 ...
- NuGet程序包安装SQLite后完全抽离出SQLite之入门介绍及注意事项,你真的懂了吗?
前言 近几天的几篇文章讲的内容非前面内容如系列的讲解,这几天文章都是我在项目中遇到的问题以及重新学习的知识,所以和大家分享一下,关于SQLite的文章多如牛毛,但是有些大多已经过时,为什么说过时,之前 ...
随机推荐
- js以键值对的方式获取URL的参数
在前端日常的开发中,大多数时候我们只需用js获取到url中的参数即可,这个实现起来也很方便如: function getQueryString(value) { const reg = new Reg ...
- HTML入门9
这一篇着眼于HTML里的音频和视频标签及相关处理: 传统技术不能再web中使用音频和视频,一致使用Flash后来因为一些HTML/CSS特性,安全问题,慢慢退出.在HTML5提出后,新特性<vi ...
- kafka安装与测试
基于linux-Centos7.0环境先进行测试学习 Producer即生产者,向Kafka集群发送消息,在发送消息之前,会对消息进行分类,即Topic, Topic即主题,通过对消息指定主题可以将消 ...
- javascript的数组之pop()
pop()方法从数组中删除最后一个元素,并返回该元素的值.此方法更改数组的长度. let a = [1, 2, 3]; a.length; a.pop(); console.log(a); // [1 ...
- Spark 实现wordcount
配置完spark之后,使用spark实现wordcount,这一部分完全参考<深入理解Spark:核心思想与源码分析> 依然使用hadoop wordcountTest的那几个txt文件 ...
- freemarker知识点
一----------------------------freemarker 如果变量不存在或者未NULL时应给默认值,否则报错 ${username!} 默认值空字符串 ${usernam ...
- php中数组直接用加号相加array+array
php中数组功能非常强大,甚至也可以直接通过+相加来合并数组. A数组 $a = ['a', 'b']; B数组 $b = ['c', 'd', 'e']; A+B结果 Array ( [0] =&g ...
- [strongswan] strongswan是如何实现与xfrm之间的trap机制的
目录 strongswan与xfrm之间的trap机制 0. 1. 前言 2. 描述 2.1 none 2.2 trap 3. 实验与过程 3.1 trap实验 3.2 none实验 4 背景知识 5 ...
- 安装Nginx到linux服务器(Ubuntu)详解
先去下载一个nginx放到服务器. 然后解压(可参考前面安装tomcat)编译(./configure --prefix=/usr/local/nginx/server/ && mak ...
- vue加载流程
首先加载main.js,main.js中new一个vue实例,这个实例中会有一个id="app"映射到app.vue,启动时候首页映射到index.html,其中<div i ...