如何排除所有内容文件?

时间:2018-07-03 14:17:44

标签: visual-studio-2017 nuget nuget-package nuget-spec

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

我将此命令作为bubuid事件运行:

$(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>

但是内容文件始终在软件包中

2 个答案:

答案 0 :(得分:1)

只需为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>

答案 1 :(得分:0)

  

如何排除所有内容文件?

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

作为替代方案,您可以向现有的<Content>项目中添加额外的元数据,以覆盖如下所示的条目:

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

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

希望这会有所帮助。