Nuget 包不会将内容复制到输出目录

Nuget Package does not copy content to output directory

我正在使用 nuspec 文件构建包 BOS.Shell 并从 UI.Warehouse 项目中引用它。

可以看出,目标是 Framework 4.7.2 上的 class 库包参考项目。

当我构建项目时,我希望将内容文件复制到输出目录,但事实并非如此?

二进制文件 (dll) 按预期工作,问题出在其他(内容)文件上。

所以换句话说,当目标项目是使用包参考的 .net FRAMEWORK class 库时,我需要在我的 NuGet 包的目标项目的输出目录中部署非二进制文件。

NuGet 版本:5.8.0.6930

问题在<file src=".bin\net472\Csla.xml" target="contentFiles\lib\net472\Csla.xml"/>

请检查this official document,contentFiles下的子节点应该是codelanguage文件类型,如csvb,但是lib不是这些。

如果您不确定文件的代码语言,可以使用泛型,any,这是一个适用于所有文件的大范围。

而不是,在nuspec 文件下使用这些:

<?xml version="1.0" encoding="utf-8"?>
<package >
  <metadata>
    .......
<contentFiles>
<files include="any\net472\*.*" buildAction="None" copyToOutput="true"/>
</contentFiles>
  </metadata>

<files>
<file src=".bin\net472\Csla.xml" target="contentFiles\any\net472\Csla.xml"/>
</files>
</package>

然后,重新打包你的项目,当你安装这个新版本时,请先clean nuget caches或者直接删除C:\Users\xxx\.nuget\packages下的所有缓存文件。