元数据中的 nuspec contentFiles 元素无效

nuspec contentFiles element invalid in metadata

我在我的 nuspec 文件中包含了以下内容:

<?xml version="1.0"?>
<package>
    <metadata minClientVersion="3.3">
        <contentFiles>
            <file src="*.css" target="_css" />
        </contentFiles>
    </metadata>
</package>

但是,我收到以下错误:

MSBUILD : OctoPack error OCTONUGET: The element 'metadata' in namespace 'http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd' has invalid child element 'contentFiles' in namespace 'http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd'. List of possible elements expected: 'language, licenseUrl, projectUrl, requireLicenseAcceptance, summary, tags, frameworkAssemblies, title, references, copyright, authors, description, version, iconUrl, owners, dependencies, id, developmentDependency, releaseNotes' in namespace 'http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd'.

当我看这里时:https://blog.nuget.org/20160126/nuget-contentFiles-demystified.html,我所做的似乎是正确的。我错过了什么?

NuSpec file reference表示<Contentfile><File>是两个独立的标签。您不能在 <Contentfile>

下嵌套 <file>

使用以下模式:

<files>
    <file src="bin\Debug\*.dll" target="lib" />
    <file src="bin\Debug\*.pdb" target="lib" />
    <file src="tools\**\*.*" exclude="**\*.log" />
</files>

<contentfiles> 仅支持 NuGet 3.3+,也许您有较旧的 NuGet(NuGet 2.x 或更早版本)?

这有两个问题。

一个是根据 'BikerDude' 的回答。

目标未以

开头的第二个

lib, content, build, or tools

根据文档。

我的最终标记如下所示:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata minClientVersion="3.3">
        <id>Application Id</id>
        <version>$version$</version>
        <description>Solution description</description>
        <authors>Development Team</authors>
    </metadata>
    <files>
        <file src="\_css\**\*.*" target="content\_css" />
        <file src="\_scripts\**\*.*" target="content\_scripts" />
        <file src="\_images\**\*.*" target="content\_images" />
    </files>
</package>

然后我在 IIS 中为 'content' 目录创建了一个虚拟目录,因此文件引用不需要更改。