【问题标题】:NuGet include arbitrary file in project rootNuGet 在项目根目录中包含任意文件
【发布时间】:2019-07-12 08:50:05
【问题描述】:

我有以下文件(本示例已简化):

  • 库.dll
  • 数据.xml

我想创建一个 nuspec (NuGet) 文件,Library.dll 将作为引用添加到其中,Data.xml 将被复制到引用 nuget 的项目的根目录。

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
    <metadata>
...
...
...
        <references>
            <reference file="Library.dll" />
        </references>
    </metadata>
    <files>
        <file src="lib\netcoreapp2.1\Library.dll" target="lib\netcoreapp2.1\Emgu.CV.World.NetStandard1_4.dll" />
        <file src="..\..\Data.xml" target="Data.xml" />
    </files>
</package>

问题

引用了库,但未复制 Data.xml,如何将 Data.xml 文件复制到引用 NuGet 的项目的根目录?

注意:NuGet 生成后,我通过 Visual Studio 2017 正常的“管理 NuGet 包”选项添加 NuGet

【问题讨论】:

  • 快速扫描您的内容似乎是正确的,您确定您的相对路径是正确的吗?从 NuGet 运行包的目录中,Data 文件是不是回到了两个目录?
  • 是的,我确定相对​​路径是正确的。事实上,当路径错误时,从 nuspec 文件生成 nupkg 文件会出错。但在我的情况下,它会生成 nupkg 罚款。
  • 您正在将 Data.xml 文件输出到您正在创建的包的根目录;你确定它不存在吗?我刚刚创建了一个具有相同设置的快速示例 nuspec,它似乎工作正常。
  • 哦,我想我可能误解了你的问题。在我看来(基于我自己的测试)该文件确实是实际 .nupkg 的一部分(如果您重命名为 .zip,您可以查看内部),但您希望看到它提取到引用的项目中包,对吗?
  • 对,所以我的目标是 Data.xml 文件将位于已发布项目的根目录中,我使用的是 Visual Studio 2017。

标签: visual-studio .net-core nuget nuspec


【解决方案1】:

这篇文章对你有帮助:https://blog.nuget.org/20160126/nuget-contentFiles-demystified.html

它会比我试图解释它做得更好,所以请喝杯咖啡并享用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 2016-08-18
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多