TFS Nuget 打包程序生成步骤在 nupkg 文件中包含代码 (*.cs) 文件



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

更新

建议在csproj 路径或 nuspec 文件中使用.csproj而不是***.nuspec打包NuGet 任务。 这将在 TFS 中获得与本地相同的结果。

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

<metadata>
<id>C:UsersxxSourceWorkspacesWorkspaceTestNuGetPackagerTestNuGetPackagerxx.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文件的值,如下所示,包括详细的dll并硬编码一些信息

<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="binReleaseTestNuGetPackager.dll" target="lib46"/>
</files>
</package>

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

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

最新更新