我应该把 nuspec 文件放在哪里

Where should I put the nuspec file

我搜索了整个 Whosebug 社区,但我找不到这个问题的答案...

我有一个 .nuspec 文件,但我不知道我要把它放在哪里。有的题目说我必须把它放在项目目录中并包含在版本控制中。其他人说它只是将文件保存在与 .nupkg 文件相同的目录中......但它对我不起作用。有什么想法吗?

提前致谢。

NUSpec 文件包含包元数据并用于创建包。

从您的项目创建了一个包,这就是将 NUSpec 文件放在项目文件夹中的原因。

这是有道理的,因为它可以作为该项目的一部分提交给您的源代码管理,这将所有内容都放在一个地方,这样可以更轻松地使用您的 CI / CD 管道自动创建包.

当然,您可以做其他事情,例如在与您的项目文件夹相同的级别上创建一个 NUSpec 文件夹,然后您可以将文件放在那里。 Nuget.exe 接受 NUSpec 文件的路径,因此实际位置无关紧要。

但是,请始终考虑您的源代码管理以及您如何管理/创建此包,只要您可以轻松做到这一点,然后将其放置在对您有意义的地方。

您提到了 NPE,这并不重要,因为它很可能会在幕后调用 nuget.exe。如果您想学习如何使用它,请看这里:https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package.

他们还建议,作为惯例,将 nuspec 文件与 proj 文件放在同一位置。

据我从您的评论中了解到,您使用 NPE 构建了包。 据我所知,NPE 是一个 ClickOnce 应用程序,它可以打开包,您可以在那里放置甚至创建包。

当问题是:我应该将 nuspec 放在包装中的什么位置?答案是:在包的根文件夹中:

否则这个答案已经被其他答案回答了。

信息:

  • nuget 包是 zip 文件
  • 要了解 nuspec 在其他包中的位置,只需使用 NPE 或 7zip 打开一个包
  • 我查看了 newtonsoft.json 包
  • 解压出来,明明在包的根目录下