nuget仅包含内容文件

Reg*_*lez 6 package nuget

我想创建一个nuget包(来自一些c#项目),但我不想嵌入生成的dll,而只是一些静态文件.

我在我的nuspec文件末尾添加了一个标签,但是nuget pack命令继续将project.dll嵌入到包中.问题是我不希望这个dll被发布.

有没有办法做到这一点?

谢谢,

雷吉斯

Kil*_*man 6

是。您可以创建一个仅引用内容文件的.nu​​spec文件。

您必须使用 nuget pack MyPackage.nuspec

不要打包.csproj文件,因为这会导致NuGet包含生成的程序集。

有关更多信息,请参见http://docs.nuget.org/create/nuspec参考。

  • 样本nuspec文件会使它变得更好,imo ^ _ ^ (4认同)

Phi*_*ath 5

要将文件打包为内容,您必须target=content在 .nuspec 文档中列出该文件时使用。

要创建“仅内容”nuget 包,必须使用<files>节点来列出文件。

一个<files>节点必须是该节点的兄弟节点<metadata>

节点<file>必须是节点的子节点<files>

要将文件包含为内容,请将节点中的目标<file>属性设置为“内容”。

例子:

  <files>
    <file src="{filePath}" target="content"/>
  </files>
Run Code Online (Sandbox Code Playgroud)

如前所述,您必须打包 .nuspec 文件而不是 .csproj 文件:

nuget pack *.nuspec
Run Code Online (Sandbox Code Playgroud)

target=content在这里找到了窍门:

https://learn.microsoft.com/en-us/nuget/reference/nuspec#include-content-files