如何排除所有内容文件?

How to exclude all content files?

使用 NuGet 4.6.2,如何在使用 PackageReference 从项目文件创建包时排除所有内容文件?

我运行这个命令作为postbuid事件:

$(SolutionDir)\.nuget\nuget pack $(ProjectPath) -IncludeReferencedProjects -properties Configuration=$(ConfigurationName) -symbols

我试过这个 nuspec 文件:

<package>
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes></releaseNotes>
    <copyright>$copyright$</copyright>
    <tags></tags>
    <contentFiles>
      <files include="**\*.*" exclude="**\*.*" />
    </contentFiles>
  </metadata>
  <files>
    <file src="**\*.*" target="content" exclude="**\*.*" />
  </files>
</package>

但内容文件始终在包中

只需为files

使用一个空节点
<package>
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes></releaseNotes>
    <copyright>$copyright$</copyright>
    <tags></tags>
  </metadata>
  <files />
</package>

How to exclude all content files?

.nupsec中使用空文件节点确实是一种有效的方法。

作为替代方案,您可以将额外的元数据添加到项目文件的现有 <Content> 项中,以使用如下条目覆盖:

<ItemGroup>
  <Content Include="Test.txt">
    <Pack>false</Pack>
  </Content>
</ItemGroup>

有关更多详细信息,请参阅 pack scenarios

希望这对您有所帮助。