【问题标题】:When does OctoPack create the nuspec file?OctoPack 何时创建 nuspec 文件?
【发布时间】:2023-03-10 05:36:01
【问题描述】:

Using OctoPack 提及

.nuspec 文件描述了 NuGet 包的内容。如果您没有提供,OctoPack 会通过猜测项目中的一些设置来自动创建一个。

我运行 msbuild 并设置了 /p:RunOctoPack=true 标志,并希望在项目目录中看到 .nuspec 文件,但它不在项目目录或 /bin 下的输出目录中。

.nuspec 是在什么时候生成的?如果未提供覆盖 .nuspec,它是生成和保存的还是即时生成的?

【问题讨论】:

    标签: octopus-deploy nuspec octopack


    【解决方案1】:

    通常最好在安装 OctoPack 的项目的根目录中创建 NuSpec 文件。要从命令行创建 NuSpec 文件,只需使用 nuget.exe:

    C:\temp\nuget.exe spec c:\path-to-project\solution\project\myproj.csproj
    

    这将在文件夹中创建一个 myproj.csproj.nuspec 文件。您可以随意编辑模板。确保在 Visual Studio 中添加 NuSpec,以便在 TFS(或您使用的任何 CI)进行构建时,复制 NuSpec,并且在触发 OctoPack 时,NuSpec 已经存在。

    也就是说,如果 OctoPack 找不到 NuSpec,它会即时生成它。可以在GitHub上查看源码(第234行定义了GetOrCreateNuSpecFile()方法):

    https://github.com/OctopusDeploy/OctoPack/blob/4b55bf0baa4d96cb7c2093cb234babc19a7d66f4/source/OctoPack.Tasks/CreateOctoPackPackage.cs#L234

    正如我之前所说,最好在您的解决方案/项目中创建 NuSpec 文件。对于 Visual Studio 中不是 Web 应用程序的项目,在针对不同项目(服务、数据库脚本、MSI、SSRS 等)优化包方面需要做一些工作。

    【讨论】:

      【解决方案2】:

      对我来说,它是在这个目录中自动生成的 D:\TeamCity\buildAgent\work\a2ef8561a97cb751\obj\octopacking\MyProject.nuspec

      【讨论】:

        猜你喜欢
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多