如何让 Octopack 使用自定义 .nuspec 文件?

How to get Octopack to use custom .nuspec file?

文档似乎真的不完整。它只是说你 可以 使用你自己的 .nuspec 文件,但它没有提到你应该把它放在哪里,或者如何让 octopack 使用它。

http://docs.octopusdeploy.com/display/OD/Using+OctoPack

我试过将 .nuspec 文件命名为与我的解决方案相同的名称,并将其放在同一目录中。那没有用。

我试过修改 Octopack 生成的 .nuspec 文件,但每次 运行 时这些更改都会被覆盖。

我尝试的其他一切都只是在黑暗中尝试。

有没有人让这个工作?

blerg.

我是个傻瓜

.nuspec 文件需要与 .csproj 文件位于同一目录中。这实际上是有道理的,因为它允许您为解决方案中的每个项目使用不同的 nuspec 文件。

希望这 post 对其他人有所帮助。

请注意,您没有拥有 NuSpec,因为 OctoPack 会在运行时生成一个(基于项目文件)如果它不存在 - 那就是你体验。

当然,如果你想定制NuGet包,NuSpec是必需的。在此处查看 OctoPack 源代码:https://github.com/OctopusDeploy/OctoPack 您可以亲眼看到 OctoPack 如何与 NuSpec 一起工作。

如果你想使用自定义 nuspec 文件(不同于 your.project.name.nuspec,有一个 msbuild 属性 OctoPackNuSpecFileName,你可以通过它指定你的 nuspec 文件,就像这样:

msbuild yoursolution.sln /p:RunOctoPack=true p:OctoPackNuSpecFileName=Dev.nuspec

另一种在 OctoPack 中使用自定义或条件 .nuspec 文件的方法是将 PropertyGroup 添加到您的 .csproj 文件,如下所示:

<PropertyGroup>
  <RunOctoPack>true</RunOctoPack>
</PropertyGroup>
<PropertyGroup>
  <OctoPackNuSpecFileName Condition="'$(Configuration)' == 'Release'">MyApp.nuspec</OctoPackNuSpecFileName>
  <OctoPackNuSpecFileName Condition="'$(Configuration)' != 'Release'">MyApp.Debug.nuspec</OctoPackNuSpecFileName>
</PropertyGroup>

将文件 MyApp.nuspec 和 MyApp.Debug.nuspec 放在与您的 .csproj 文件相同的目录中,您就可以开始了。