OctoPack什么时候创建nuspec文件?

时间:2015-04-28 12:43:01

标签: octopus-deploy nuspec octopack

Using OctoPack提及

  

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

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

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

2 个答案:

答案 0 :(得分:7)

通常最好在项目的根目录中创建安装了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等等)优化包时,还有一些工作要做。

答案 1 :(得分:-1)

对我而言,它是在此目录中自动生成的 d:\ TeamCity的\ buildAgent \工作\ a2ef8561a97cb751 \ OBJ \ octopacking \ MyProject.nuspec