【问题标题】:How to get Octopack to use custom .nuspec file?如何让 Octopack 使用自定义 .nuspec 文件?
【发布时间】:2015-03-20 17:31:23
【问题描述】:

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

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

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

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

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

有人让这个工作吗?

【问题讨论】:

    标签: octopus-deploy nuspec


    【解决方案1】:

    bleg.

    我是个假人。

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

    希望这篇文章对其他人有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的,我的解决方案文件的名称中有空格,因此 octopack 尝试创建的包名称无效。这就是为什么我需要在 nuspec 中明确指定包名。
      【解决方案3】:

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

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

      【讨论】:

      • 您还可以通过修改 .csproj 文件来使用自定义或条件 .nuspec 文件。请参阅下面的答案。
      【解决方案4】:

      在 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 文件相同的目录中,一切顺利。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多