4

使用OctoPack提到

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

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

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

4

2 回答 2

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 已经存在。

也就是说,如果找不到 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 等)优化包方面需要做一些工作。

于 2015-05-01T05:04:52.863 回答
-1

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

于 2018-05-02T03:04:04.280 回答