.nuspec文件描述了NuGet包的内容。如果您没有提供一个,OctoPack会通过猜测项目中的某些设置来自动创建一个。
我运行msbuild并设置了/p:RunOctoPack=true
标志,并希望在项目目录中看到.nuspec文件,但它不在项目目录或/bin.//下的输出目录中。 p>
.nuspec在什么时候生成?如果没有提供覆盖.nuspec,它是生成和保存的还是动态的?
答案 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()):
就像我之前说过的,最好在您的解决方案/项目中创建NuSpec文件。对于不是Visual Studio中的Web应用程序的项目,在为不同项目(服务,数据库脚本,MSI,SSRS等等)优化包时,还有一些工作要做。
答案 1 :(得分:-1)
对我而言,它是在此目录中自动生成的 d:\ TeamCity的\ buildAgent \工作\ a2ef8561a97cb751 \ OBJ \ octopacking \ MyProject.nuspec