TFS Nuget Packager构建步骤包含nupkg文件中的代码(* .cs)文件

时间:2017-08-02 19:26:11

标签: tfs tfsbuild

在TFS中,我添加了一个“Nuget Packager”步骤。该项目构建正常,但是当我解压缩nupkg文件时,它包含项目文件( .csproj, .cs,* .config文件)。我只期望二进制文件(例如bin \ Release * .dll文件)。我在构建定义中遗漏了什么?

1 个答案:

答案 0 :(得分:1)

<强>更新

建议您使用路径指向csproj或nuspec文件中的.csproj代替**\*.nuspec打包NuGet任务 。这将在TFS中获得与本地相同的结果。

使用nuget spec命令自动创建.nuspec包清单。 XML清单文件如下所示:

  <metadata>
    <id>C:\Users\xx\Source\Workspaces\Workspace\TestNuGetPackager\TestNuGetPackager\xx.csproj</id>
    <version>1.0.0</version>
    <authors>xxx</authors>
    <owners>xxx</owners>
    <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
    <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
    <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package description</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2017</copyright>
    <tags>Tag1 Tag2</tags>
    <dependencies>
      <dependency id="SampleDependency" version="1.0" />
    </dependencies>
  </metadata>
</package>

您需要手动更改.nuspec文件的值,如下所示,包括详细信息和硬编码信息

<package >
  <metadata>
    <id>TestNuGetPackager</id>
    <version>1.0.0</version>
    <authors>Test</authors>
    <owners>Test</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package description</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2017</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>
    <files>
        <file src="bin\Release\TestNuGetPackager.dll" target="lib\46"/>
    </files>
</package>

在此之后,您将获得唯一的二进制文件,否则使用系统自动生成的.nuspec文件,您将打包包括项目文件。需要将修改后的.nuspec文件签入TFS并再次触发构建。

有关如何使用.nuspec文件的更多详细信息,请参阅本教程:The role and structure of the .nuspec file