我有一个包含许多项目的解决方案,其中大约有十几个安装了 Octopack 并且在 TeamCity 运行时正在正确生成包msbuild /p:RunOctoPack=true /p:OctoPackEnforceAddingFiles=true
。正如你可能从p:/OctoPackEnforceAddingFiles
标志中看出的那样,每个安装了 Octopack 的项目也有一个 nuspec 文件。
我们遇到的问题是 Octopack 不遵守https://docs.microsoft.com/en-gb/nuget/reference/nuspec#replacement-tokens中指定的 nuspec 占位符。我们现在要使用的$id$
那个应该等于正在打包的项目的程序集名称。相反,当我们运行 Octpack 时,该$id$
令牌是空的。
我可以在https://octopus.com/docs/packaging-applications/creating-packages/nuget-packages/using-octopack#UsingOctoPack-Replacementtokens看到 Octopack 允许手动覆盖这些令牌,但这对我没有帮助因为 Octopack在解决方案上运行,但我需要正在打包的项目的名称。
我能做些什么来解决这个问题?目前,我们基本上将项目名称硬编码在 nuspec 文件中,但这变得脆弱和笨拙,我们想修复它。