为什么 contentFiles 文件夹中的文件没有被复制到 bin 文件夹中?

Why are the files from the contentFiles folder not getting copied over to the bin folder?

我正在尝试将我的 sql 文件从 nuget 包中获取到我的应用程序的 bin 文件夹中。我正在为它设置 .nuspec 文件。我可以在 .nuget 文件夹中看到 sql 文件是 nuget 包的一部分,但它们没有反映在 bin/Debug 文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>Athi</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <copyright>$copyright$</copyright>
    <tags>Logger</tags>
    <dependencies>
        <dependency id="Dapper" version="2.0.123" />
        <dependency id="System.Data.SqlClient" version="4.8.3" />
    </dependencies>
      <contentFiles>
          <files include="bin\Release\net6.0\Scripts\*.sql" buildAction="Content" copyToOutput="true" />
      </contentFiles>
  </metadata>
  <files>
      <file src="bin\Release\net6.0\Scripts\*.*" target="lib\net6.0\Scripts" />
      <file src="bin\Release\net6.0\Scripts\*.*" target="contentFiles\Scripts" />
  </files>
</package>

首先,根据the docs

The package project should structure content using the following pattern:

/contentFiles/{codeLanguage}/{TxM}/{any?}

For example:

Language- and framework-agnostic:
    /contentFiles/any/any/config.xml

net45 content for all languages
    /contentFiles/any/net45/config.xml

C#-specific content for net45 and up
    /contentFiles/cs/net45/sample.cs

您似乎没有将它们放入 NuGet 包中的正确目录中。

其次,根据 the docscontentFiles 仅在 NuGet 4.0+ with PackageReference 上受支持。您使用的 NuGet 版本是否足够高?您是否在项目文件中使用 PackageReference 而不是项目中的 packages.config 文件?

TIP: If you find the documentation is lacking in examples of what you are attempting to do, download some (recently made) real packages from https://nuget.org to locate one that does something similar to what you want and use NuGet Package Explorer to see how the packages are arranged.