haizzh

博客园 首页 新随笔 联系 订阅 管理

参考网址: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中的内容。

 

posted on 2016-09-12 18:31  haizzh  阅读(458)  评论(0)    收藏  举报