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 文件?的主要内容,如果未能解决你的问题,请参考以下文章