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

时间:2015-01-22 01:46:01

标签: octopus-deploy nuspec

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

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

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

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

我尝试的其他任何事情都只是在黑暗中拍摄。

有没有人让这个工作?

4 个答案:

答案 0 :(得分:9)

如果你想使用一个自定义的nuspec文件(不同于your.project.name.nuspec,有一个msbuild属性OctoPackNuSpecFileName,你可以指定你的nuspec文件,如下所示:

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

答案 1 :(得分:5)

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

<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文件相同的目录中,你就可以了。

答案 2 :(得分:4)

blerg。

我是个假人。

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

希望这篇文章可以帮助其他人。

答案 3 :(得分:2)

注意,你没有拥有来拥有NuSpec,因为OctoPack将动态生成一个(基于项目文件),如果它不存在 - 这就是你所经历的。

当然,如果要自定义NuGet包,则需要NuSpec。在这里查看OctoPack源代码:https://github.com/OctopusDeploy/OctoPack您可以亲自了解OctoPack如何与NuSpec配合使用。