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的更多相关文章

  1. HTML meta锚点跳转 小tips

    小tips meta锚点跳转 http://www.zhangxinxu.com/wordpress/2015/03/meta-http-equiv-refresh-content/

  2. Windows7驱动调试小Tips

    v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...

  3. 你不知道的JavaScript--Item17 循环与prototype最后的几点小tips

    1.优先使用数组而不是Object类型来表示有顺序的集合 ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 但是在使用for..in循环对Object中的 ...

  4. 小tips:JS之浅拷贝与深拷贝

    浅拷贝: function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } return c; } 深拷贝: functio ...

  5. keras搭建深度学习模型的一些小tips

    定义模型两种方法:  1.sequential 类仅用于层的线性堆叠,这是目前最常用的网络架构 2.函数式API,用于层组成的有向无环图,让你可以构建任意形式的架构 from keras import ...

  6. 申请MVP奖励时的小Tips

    大家新年好,今天MSPrecious为大家带来一些申请MVP奖励时的小Tips.   本文分为三个部分 MVP是什么 如何申请MVP 申请MVP需要注意的事项 MVP是什么? 我想,点进来看这篇文章的 ...

  7. 整理一些《纸书科学计算器》的小Tips

    本文最开始是在2016年的文章 Win10应用<纸书科学计算器>更新啦! 发表之后撰写的,当时那篇文章收到了不少人点赞,应用在国内市场的日下载量也突然上涨,让我感到受宠若惊,这里要感谢Wp ...

  8. 最近工作的一点小tips

    最近工作比较忙,但也积累了一些小tips,比较杂,不成系统,也并不很深入,就开一篇笼统的先记录一下,以后再深入挖掘. 1.-webkit-tap-highlight-color -webkit-tap ...

  9. Unity3D性能优化小tips——把this.transform缓存缓存起来

    Unity3D开发时中有一个小tips,这在官方的文档里其实有提及的,但不那么显眼,这里小说一下: 在MonoBehaviour进行编程时,我们经常会用this.transform, this.gam ...

随机推荐

  1. 使用myeclipse建立maven项目(重要)

    maven是管理项目的,myeclipse是编写代码的.第一次写项目都要配置好多东西,很麻烦,now 来看看怎样新建一个maven项目. 工具/原料   myeclipse maven 方法/步骤   ...

  2. Python学习笔记10—几个名词概念

    循环(loop),指的是在满足条件的情况下,重复执行同一段代码.比如,while 语句. 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项.比如,for 语句. 递归(recursio ...

  3. Linux crontab 定时任务

    http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html 19. crontab 定时任务 通过crontab 命令,我们 ...

  4. Linux系统负载排查

    参考  http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html 在Linux系统中,我们一般使用uptime命 ...

  5. Memcached使用入门

    转:http://www.linuxidc.com/Linux/2011-12/49516.htm http://blog.csdn.net/wxwzy738/article/details/2370 ...

  6. 对List里的对象元素进行排序

    public class Student { private int studentId; private String studentName; private int age; public St ...

  7. vim Project

    VIM是Linux和Unix下常用的文本编辑工具,在编写代码和阅读代码中经常使用. 但VIM进行代码项目管理时,没有IDE集成开发工具方便,现在提供一个VIM插件Project,可以对代码项目进行简单 ...

  8. maven和jdk版本不匹配

    解决方法:http://blog.csdn.net/mafan121/article/details/51944346

  9. (转)ConcurrentHashMap解析

    原文地址:http://www.ibm.com/developerworks/cn/java/java-lo-concurrenthashmap/ ConcurrentHashMap 的结构分析 为了 ...

  10. 优之星S900平板电脑root方法

    优之星S900root方法: 尝试百度一键root安卓的apk版本root失败. 电脑上下载百度一键root的Windows版本,平板设置→开发者选项→允许USB调试√,保持唤醒状态√,安全设置→允许 ...