nuget的小Tips
1.nuget常用命令
nuget spec -a bin\Debug\DllName.dll -f //根据dll生成.nuspec文件,这样会生成无用的默认标签,比如licenseUrl、tags等
cd [ProjectDir]
nuget pack //建议根据项目生成nupkg,并从中解压出nuspec文件,这样生成的内容最精简
nuget pack DllName.nuspec -Build -Prop Configuration=Release //根据nuspec打包,但Build无效,不会生成项目
nuget pack [ProjectName].csproj -Build -Prop Configuration=Release //根据csproj打包,会自动Build,自动根据*.nuspec修改元数据,自动根据*.packages修改Dependency
nuget push [ProjectName].*.nupkg [api-key] -S [PrivateNugetUrl]
2.添加pdb
需要添加pdb方便调试的话,可以在解压出来的.nuspec中添加自定义<files>节,如下:
<?xml version="1.0"?>
<package >
<metadata>
<id>TestNuget</id>
...
</metadata>
<files>
<!--<file src="bin\Debug\TestNuget.dll" target="lib\net45" />-->
<file src="bin\Debug\TestNuget.pdb" target="lib\net45" />
</files>
</package>
注意<files>节是在metadata的外面,dll文件默认就会打包,不需要重复添加。
3.vs里自动发布
当然要在vs里能一键发布才方便,最简单的方法是在外部工具里加个bat:
nuget pack %~1 -Build -Prop Configuration=Debug -o %~3
nuget push %~3\%~2.*.nupkg [api-key] -S [PrivateNugetUrl]
del %~3\%~2.*.nupkg /q
然后在工具的参数里输入$(ProjectDir)$(ProjectFileName) $(TargetName) $(ProjectDir)bin
分别作为1、2、3号参数。这里有3个小坑:
- $(ProjectDir)居然会输出2个"\\",导致nuget报某些文件找不到,拼接之后的输出目录是正确的,无语了。
- 不支持选中多个项目发布,因为宏参数里没有
$(SelectedProjects)
之类的东东,DTE.ActiveSolutionProjects
倒是可以,但是只能在插件里写,暂时没有想到好办法,知道的同学可以分享一下。 - Debug和Release的区别,这一点其实不能算坑。Debug:不优化代码、调试信息=full;Release:优化、调试信息=pdb-only。不论代码是否优化,都可以从vs直接F5启动调试,但如果要附加调试(Attach to process),就只能选Debug。关于full vs. pdb-only的区别,请参见这里。
nuget的小Tips的更多相关文章
- HTML meta锚点跳转 小tips
小tips meta锚点跳转 http://www.zhangxinxu.com/wordpress/2015/03/meta-http-equiv-refresh-content/
- Windows7驱动调试小Tips
v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...
- 你不知道的JavaScript--Item17 循环与prototype最后的几点小tips
1.优先使用数组而不是Object类型来表示有顺序的集合 ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 但是在使用for..in循环对Object中的 ...
- 小tips:JS之浅拷贝与深拷贝
浅拷贝: function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } return c; } 深拷贝: functio ...
- keras搭建深度学习模型的一些小tips
定义模型两种方法: 1.sequential 类仅用于层的线性堆叠,这是目前最常用的网络架构 2.函数式API,用于层组成的有向无环图,让你可以构建任意形式的架构 from keras import ...
- 申请MVP奖励时的小Tips
大家新年好,今天MSPrecious为大家带来一些申请MVP奖励时的小Tips. 本文分为三个部分 MVP是什么 如何申请MVP 申请MVP需要注意的事项 MVP是什么? 我想,点进来看这篇文章的 ...
- 整理一些《纸书科学计算器》的小Tips
本文最开始是在2016年的文章 Win10应用<纸书科学计算器>更新啦! 发表之后撰写的,当时那篇文章收到了不少人点赞,应用在国内市场的日下载量也突然上涨,让我感到受宠若惊,这里要感谢Wp ...
- 最近工作的一点小tips
最近工作比较忙,但也积累了一些小tips,比较杂,不成系统,也并不很深入,就开一篇笼统的先记录一下,以后再深入挖掘. 1.-webkit-tap-highlight-color -webkit-tap ...
- Unity3D性能优化小tips——把this.transform缓存缓存起来
Unity3D开发时中有一个小tips,这在官方的文档里其实有提及的,但不那么显眼,这里小说一下: 在MonoBehaviour进行编程时,我们经常会用this.transform, this.gam ...
随机推荐
- 使用myeclipse建立maven项目(重要)
maven是管理项目的,myeclipse是编写代码的.第一次写项目都要配置好多东西,很麻烦,now 来看看怎样新建一个maven项目. 工具/原料 myeclipse maven 方法/步骤 ...
- Python学习笔记10—几个名词概念
循环(loop),指的是在满足条件的情况下,重复执行同一段代码.比如,while 语句. 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项.比如,for 语句. 递归(recursio ...
- Linux crontab 定时任务
http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html 19. crontab 定时任务 通过crontab 命令,我们 ...
- Linux系统负载排查
参考 http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html 在Linux系统中,我们一般使用uptime命 ...
- Memcached使用入门
转:http://www.linuxidc.com/Linux/2011-12/49516.htm http://blog.csdn.net/wxwzy738/article/details/2370 ...
- 对List里的对象元素进行排序
public class Student { private int studentId; private String studentName; private int age; public St ...
- vim Project
VIM是Linux和Unix下常用的文本编辑工具,在编写代码和阅读代码中经常使用. 但VIM进行代码项目管理时,没有IDE集成开发工具方便,现在提供一个VIM插件Project,可以对代码项目进行简单 ...
- maven和jdk版本不匹配
解决方法:http://blog.csdn.net/mafan121/article/details/51944346
- (转)ConcurrentHashMap解析
原文地址:http://www.ibm.com/developerworks/cn/java/java-lo-concurrenthashmap/ ConcurrentHashMap 的结构分析 为了 ...
- 优之星S900平板电脑root方法
优之星S900root方法: 尝试百度一键root安卓的apk版本root失败. 电脑上下载百度一键root的Windows版本,平板设置→开发者选项→允许USB调试√,保持唤醒状态√,安全设置→允许 ...