元数据中的 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' 目录创建了一个虚拟目录,因此文件引用不需要更改。
我在我的 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' 目录创建了一个虚拟目录,因此文件引用不需要更改。