3

我目前正在使用 Teamcity 7.x,我们还没有准备好升级。

对于我们内部的 NuGet 包,我的规范是相对于 nuspec 文件的位置(默认情况下),但是当在 NuGet Pack 运行器中运行时,它们必须相对于构建检出目录。

例如,我应该有一个包含以下内容的 nuspec:

<files>
  <file src="Content\**" target="content" />
</files>

但这在 TeamCity 中不起作用,因为它会自动添加 BasePath 选项,所以我必须将我的 nuspec 更改为:

<files>
  <file src="Source\Project\Content\**" target="content" />
</files>

如何避免这种情况?我可以更改我的规范,但是我在一个构建步骤中创建了许多包,并且我正在尝试使用新的 -IncludeReferencedProjects 选项,但由于它看起来在错误的位置而失败。

BasePath 选项是不需要的,那为什么它默认为 build checkout 目录呢?

4

2 回答 2

3

根据以下文档,步骤 2,项目符号 3: http ://confluence.jetbrains.com/display/TCD7/NuGet+Pack

  • 指定 nuspec 文件中定义的文件所在的基本目录(解析来自 nuspec 的路径的目录,通常是某个 bin 目录)。如果留空,TeamCity 将使用 build checkout 目录作为基本目录。

您可以尝试将此设置调整为项目的根目录(理论上与您的 nuspec 文件的位置相同),而不是构建检出目录(默认)。

于 2013-12-10T23:16:53.120 回答
1

或许你可以尝试使用octopack,
源码:https
://github.com/OctopusDeploy/OctoPack 如何安装:http ://octopusdeploy.com/documentation/integration/teamcity

您不需要使用章鱼部署。您只能使用 octopack 来创建 nuget 包。此插件直接上传您的包本机 teamcity nuget 服务器。

祝你好运!

于 2013-12-10T17:17:18.553 回答