参考网址:https://www.visualstudio.com/en-us/docs/build/steps/package/nuget-packager

https://docs.nuget.org/Create/Creating-and-Publishing-a-Package

https://docs.nuget.org/Create/NuSpec-Reference

TFS实现方式有两种:一是可以通过单个工程,二是通过自定义.nuspect file 可以创建更为复杂的package.

第一步,创建一个nuspec文件(基于XML的文件类型,可以用来创建nuget package)

  对于单个程序集来说

nuget spec MyAssembly.dll 
nuget pack MyAssembly.nuspec

  对于一个简单的package, 可以从工程文件创建

nuget spec

这会创建一个nuspec file,根据文件中metadata打包。
     以下是比较重要的node:

Token             Source
$id$ The Assembly name
$version$ The assembly version as specified in the assembly’s AssemblyVersionAttribute (or AssemblyInformationalVersionAttribute if present).
$author$ The company as specified in the AssemblyCompanyAttribute.

  第二步,如果想要插入文件(不太清楚content还是output? ),需要一下节点。只有以下节点才可以被放到package中。

<files>
<file src="..\..\SomeRoot\**\*.*" target="" /> <!--**是递归,*是本文件夹-->
</files>

  创建依赖项的节点

    <dependencies>
<dependency id="SampleDependency" version="1.0" />
</dependencies>

  第三步,当文件准备好了,执行以下命令,可以打包成package

nuget pack MyProject.csproj

如果项目依赖其它工程,使用以下命令
假设,a引用b, c项目,并且b项目引用d,e项目. 当执行以下命令,这个package会包含B,C,D,E的文件(程序集?)

nuget pack A.csproj -IncludeReferencedProjects

note:如果c项目中包含nuspec文件,那么包含关系会变为依赖关系。
  

  最后,如果需要改配置模式从debug到 release

nuget pack MyProject.csproj -Prop Configuration=Release

PS: -Symbol 标签可以让别人debug package中的内容。

如何用TFS build definition添加自动建立nuget package 步骤的更多相关文章

  1. TFS Build Definition And Auto Deploy

    一台build machine上一般只有一个build service[对应一个build controller]来serve一个team project collection,但又workaroun ...

  2. TFS Build Definition

    1.  TFS Build 简介 在团队项目开发中,编译常常是一个很困难的事情! 可能你会反问编译有什么难的?不就是右键,然后点击 Build/Rebuild, 或者直接按 F5 么?这都不会,真不知 ...

  3. 创建TFS团队项目时自动建立代码库的文件夹结构

    很多客户都跟我提过一个这样的需求,即需要在创建团队TFS项目时,自动创建起源代码库的文档结构,例如类似下列结构的文件夹: <teamProject>   |- DEVELOPMENT   ...

  4. TFS Build做Web应用持续集成发布的一个技巧

    由于面向接口编程的关系,许多实现往往是动态注入运行,在一个项目中直接引用实现dll编译是不合理的.通常我们会在Post Build Event中添加一些xcopy命令将运行时才需要的dll复制到输出目 ...

  5. LINUX安装SVN+添加自动同步+远程下载最新代码

    LINUX安装SVN+添加自动同步+远程下载最新代码---------------------1. 新建一个用户:svnroot ,以下操作非特别说明皆为root用户操作--------------- ...

  6. TFS build server搭建,搭建自动化构建服务器

    TFS build 服务器的搭建主要步骤如下: 一:环境准备: 新建一台build服务器 安装Visual Studio.主要目的是: a. 生成Build脚本所需要的build命令:b.与TFS组合 ...

  7. Xcode: Run Script 的运用, 使build打包后自动+1

    背景: 每次打包都要build+1处理,比较麻烦,使用 Run Script 的运用使build打包后自动+1 0. 使用xcode 添加run Script 然后就可以添加Run Script了 1 ...

  8. TF42064: The build number already exists for build definition error in TFS2010

    In TFS2008, deleting a build removes it from the database itself. If you delete a build called Build ...

  9. sqlite使用dbexpress时数据库不存在自动建立数据库

    在发布使用delphi dbexpress编写的基于SQLITE的程序时,需要在运行时判断某个数据库是否存在,如果不存在,则自动建立. 方法有2,其中之一是判断数据库文件是否存在,如果不存在,则创建一 ...

随机推荐

  1. 【OpenGL】第一个窗口

    包含头文件: #include <GL/glew.h> // GLFW #include <GLFW/glfw3.h> 初始化与配置GLFW: glfwInit(); //初始 ...

  2. 【C++】Mandelbrot集绘制(生成ppm文件)

    曼德勃罗特集是人类有史以来做出的最奇异,最瑰丽的几何图形.曾被称为"上帝的指纹". 这个点集均出自公式:Zn+1=(Zn)^2+C.(此处Z.C均为复数)所有使得该公式无限迭代后的 ...

  3. 基本数据类型(dict)

    05. 基本数据类型(dict)内容:1. 字典的简单介绍2. 字典增删改查和其他操作3. 字典的嵌套⼀. 字典的简单介绍字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对 ...

  4. Linux服务器安装配置Nginx服务器

      Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务 ...

  5. Python3 round() 函数

    Python3 round() 函数  Python3 数字 描述 round() 方法返回浮点数x的四舍五入值. 语法 以下是 round() 方法的语法: round( x [, n] ) 参数 ...

  6. WebForm从客户端中检测到有潜在危险的Request.Form 值的处理办法

    从客户端中检测到有潜在危险的 Request.Form 值由于在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值.立马报错上面的错误. 如:在网页的Te ...

  7. Reportviewer中的函数使用——打印当前日期并格式化

    如2017-10-23 12:20:20 通过DateTime.Now.ToString("yyMMddHHmmss")变为 20171023122020字符串

  8. Linux系统(Centos)下安装nodejs并配置环境

    总结Centos下安装nodejs并配置环境,记录成功安装的方法.推荐的安装方法是利用已编译的二进制文件安装,不推荐使用源码的形式安装,一是源码安装比较麻烦,二是需要自行下载编译浪费时间. 1.安装n ...

  9. localstorage和vue结合使用2

    html <template> <div class="hello"> <div class="page-top"> < ...

  10. jQuery封装和优化

    封装和优化插件 --封装插件 (function($){ //自定义插件代码 })(jQuery) --------------- (function($){ $.fn.extend({ //函数列表 ...