Nuget Nuspec buildAction不适用于内容文件

Nuget Nuspec buildAction不适用于内容文件,nuget,nuget-package,nuspec,nuget-spec,Nuget,Nuget Package,Nuspec,Nuget Spec,我最近一直在尝试创建一个.nuspec文件,该文件将.dll文件作为嵌入式资源附加。为此,我使用了metadata上的contentFiles标记,设置buildAction=“EmbeddedResource”,如上的示例contentFiles部分所述 下面您可以看到my.nuspec文件内容: <package> <metadata> <id>MyPackage</id> <version>

我最近一直在尝试创建一个.nuspec文件,该文件将.dll文件作为嵌入式资源附加。为此,我使用了
metadata
上的
contentFiles
标记,设置
buildAction=“EmbeddedResource”
,如上的示例contentFiles部分所述

下面您可以看到my.nuspec文件内容:

<package>
    <metadata>
        <id>MyPackage</id>
        <version>1.0.0.0</version>
        <title>MyPackage</title>
        <authors>Matias G Henschel</authors>
        <owners>Matias G Henschel</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>My package description</description>
        <copyright>2017</copyright>
        <contentFiles>
            <files include="myDllFile.dll" buildAction="EmbeddedResource" />
        </contentFiles>
    </metadata>
    <files>
        <file src="content\myDllFile.dll" target="contentFiles" />
    </files>
</package>

我的包裹
1.0.0.0
我的包裹


PS:IMHO,有关contentFiles和.targets文件的文档都需要重新编写,它们不够清晰,.targets缺少示例。

您还需要一个文件条目来实际将文件复制到正确的
contentFiles
文件夹:

<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
  <metadata>
    …
    <contentFiles>
      <files include="any/any/MyEmbeddedFile.txt" buildAction="EmbeddedResource" />
    </contentFiles>
  </metadata>
  <files>
    <file src="path/to/MyEmbeddedFile.txt" target="contentFiles/any/any/MyEmbeddedFile.txt" />
  </files>
</package>

请注意,这仅适用于基于
project.json的NuGet 3.3+项目和基于
PackageReference
的NuGet 4+项目。对于通过
packages.config
使用此包的项目,您仍然需要将文件添加到
content
文件夹中,并添加自定义目标以使其成为正确的项目类型。

该文件符合建议,不起作用。唯一的细节是any/any文件夹结构,我尝试了它,但没有成功。仅供参考:我使用的是Nuget 4.1。只是想弄清楚,您将此安装到哪种项目中?嵌入式资源不会显示在解决方案资源管理器中,您需要在dotPeek/ILSpy或其他文件中打开exe/dll。还请注意,您需要清除NuGet缓存,除非每次尝试使用
dotnet NuGet locals all--clear
时总是增加版本号。我正在尝试将其添加到类库中。版本不是问题,我正在手动设置,并且能够正确安装软件包。它只是没有以正确的方式添加它(嵌入式资源)。我确实使用了ILSpy来检查文件是否在那里,但没有附加任何资源。当我手动将其设置为Embedded Resource时,该文件显示在ILSpy中。正在使用的项目是否使用
ProjectReference
packages.config
?因为contentFiles不能与
packages.config
一起使用,所以它使用
packages.config
。。。但我该如何解决这个问题呢?它应该像其他NuGet软件包一样工作。。。