OctoPack 何时创建 nuspec 文件?

Posted

技术标签:

【中文标题】OctoPack 何时创建 nuspec 文件?【英文标题】:When does OctoPack create the nuspec file? 【发布时间】:2015-04-28 12:43:01 【问题描述】:

Using OctoPack 提及

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

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

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

【问题讨论】:

【参考方案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、s-s-rS 等)优化包方面需要做一些工作。

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于OctoPack 何时创建 nuspec 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在octopack中使用nuspec中设置的版本号?

指定 Octopack nuget 包文件的目标路径

OctoPack 和 OD 通道:如何创建可以通过管道传输到版本通道的包版本?

octopack nuget 包版本

我应该在存储库中发布nuspec文件吗?

nuspec始终生成占位符模板文件