使用OctoPack提到
.nuspec 文件描述了 NuGet 包的内容。如果您没有提供 OctoPack,则通过猜测项目中的一些设置,OctoPack 会自动创建一个。
我已经/p:RunOctoPack=true
设置了标志运行 msbuild,并希望在项目目录中看到 .nuspec 文件,但它不在项目目录或 /bin 下的输出目录中。
.nuspec 在什么时候生成?如果未提供覆盖 .nuspec,它是生成并保存还是即时生成?
使用OctoPack提到
.nuspec 文件描述了 NuGet 包的内容。如果您没有提供 OctoPack,则通过猜测项目中的一些设置,OctoPack 会自动创建一个。
我已经/p:RunOctoPack=true
设置了标志运行 msbuild,并希望在项目目录中看到 .nuspec 文件,但它不在项目目录或 /bin 下的输出目录中。
.nuspec 在什么时候生成?如果未提供覆盖 .nuspec,它是生成并保存还是即时生成?
通常最好在安装 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 已经存在。
也就是说,如果找不到 NuSpec,OctoPack 将即时生成 NuSpec。可以在 GitHub 上查看源码(第 234 行定义了 GetOrCreateNuSpecFile() 方法):
正如我之前所说,最好在您的解决方案/项目中创建 NuSpec 文件。对于不是 Visual Studio 中的 Web 应用程序的项目,在针对不同项目(服务、数据库脚本、MSI、SSRS 等)优化包方面需要做一些工作。
对我来说,它是在此目录中自动生成的 D:\TeamCity\buildAgent\work\a2ef8561a97cb751\obj\octopacking\MyProject.nuspec