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. Linux crontab 定时任务

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

  2. C++——string类和标准模板库

    一.string类 1.构造函数 string实际上是basic_string<char>的一个typedef,同时省略了与内存管理相关的参数.size_type是一个依赖于实现的整型,是 ...

  3. Android版本升级同时Sqlite数据库的升级及之前数据的保留

    http://www.cnblogs.com/wang340/archive/2013/05/06/3063135.html http://www.eoeandroid.com/forum.php?m ...

  4. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  5. Mvc4_MvcPager 概述

    MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...

  6. commonJS — 日期操作(for Date)

    for Date github: https://github.com/laixiangran/commonJS/blob/master/src/forDate.js 代码 /** * Created ...

  7. er6855的工作经验

    1 VIEWS里面的关系要搞清楚 里面的内容类型要理清 不要相信别人做好的事情 不要相信看到的结果 2 git rm -rf之后需要git commit提交到.git文件中正式生效 不然可能就是中间打 ...

  8. mac app icon 设置

    mac app icon 设置 1:目前 mac app 所需要的icon 图标尺寸 icon_16x16.png 16px icon_16x16@2x.png 32px icon_32x32.png ...

  9. Android屏幕适配原理

    几个概念: 1) 屏幕密度(dpi) :dot per inch,即每英寸像素数. ldpi(120),mdpi(160),hdpi(240),xhdpi(320) 计算方法: 以480x854,4. ...

  10. linux笔记:用户管理命令和用户组管理命令

    用户管理命令 命令名称:useradd功能:添加用户(添加完后不能立即使用,必须用passwd修改用户密码后才能使用)用法:useradd [选项] 用户名选项参数:-u 手工指定用户的UID-d 手 ...