【问题标题】:Nuget Package does not copy content to output directoryNuget 包不会将内容复制到输出目录
【发布时间】:2021-01-20 06:04:43
【问题描述】:

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

可以看出,目标是Framework 4.7.2上的类库Package Reference项目。

当我构建项目时,我希望将内容文件复制到输出目录,但它没有?

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

也就是说,当目标项目是使用包引用的.net FRAMEWORK类库时,我需要在我的NuGet包的目标项目的OUTPUT目录中部署非二进制文件。

NuGet 版本:5.8.0.6930

【问题讨论】:

  • 改为在 nuspec 文件下使用 <file src=".bin\net472\Csla.xml" target="contentFiles\any\net472\Csla.xml"/>

标签: .net visual-studio nuget


【解决方案1】:

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

请检查this official document,contentFiles下的子节点应该是codelanguage文件类型,如cs,vb,但是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下的所有缓存文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 2023-03-03
    • 2019-12-23
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多