Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TFS Nuget Packager构建步骤在nupkg文件中包含代码(*.cs)文件_Tfs_Tfsbuild - Fatal编程技术网

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

TFS Nuget Packager构建步骤在nupkg文件中包含代码(*.cs)文件,tfs,tfsbuild,Tfs,Tfsbuild,在TFS中,我添加了一个步骤“Nuget Packager”。该项目构建得很好,但当我解压缩nupkg文件时,它包含项目文件(.csproj、.cs、*.config文件)。我只需要二进制文件(例如bin\Release*.dll文件)。构建定义中遗漏了什么?更新 建议您在csproj或nuspec文件路径中使用.csproj而不是***.nuspec来打包打包NuGet任务。这将在TFS中获得与本地相同的结果 通过nuget spec命令自动创建.nuspec包清单。XML清单文件如下所示:

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

更新

建议您在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
文件,您将打包项目文件。需要将修改后的
.nuspec
文件签入TFS并再次触发生成


有关如何使用.nuspec文件的更多详细信息,请参阅本教程:

我原来有,但没有help@alltej您可以将
***.nuspec
文件打包为
.csproj
文件。创建.nuspec包清单。清单是一个描述包内容的XML文件,它本身包含在包中。有关如何使用.nuspec文件的更多详细信息,请参阅本教程:是的,我确实使用了nuspec文件。它是使用
nuget spec
在与*.csproj文件相同的目录中创建的。@alltej如果手动使用nuget命令打包和解压nupkg,会有什么结果。这似乎与TFS无关,TFS生成定义中没有其他设置。如果得到相同的结果,则需要自定义.nuspec文件,而不是使用默认的
.nuspec
文件。由于创建包时NuGet会自动包含所有文件,因此我将NuGet pack任务更改为使用
.csproj
文件。现在它只打包DLL。因此,看起来TFS nuget包(使用
.nuspec
)与本地nuget包(使用
.nuspec
)的行为不同。同样,对于使用
.csproj
的TFS nuget pack任务,它使用
.nuspec
中的值,就像版本一样。我原以为由于它使用
.csproj
它将从
AssemblyInfo.cs
读取值。您能分享“Nuget Packager”任务的详细设置吗?
<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>