NuGet.exe 包不包括空文件夹

标签 nuget

我为我的解决方案创建了一个 nuspec 文件。该解决方案有几个空文件夹。

我已经从 https://docs.nuget.org/consume/command-line-reference 下载了最新的 nuget.exe

但是,当我运行 nuget pack 命令时,不包含空文件夹。查看 pack 命令的文档,我解释了由于此标志默认包含空文件夹的事实:

ExcludeEmptyDirectories:在构建包时防止包含空目录。

不幸的是,我无法让 pack 命令包含我的空文件夹。

我的文件结构类似于

  • 文件夹1
  • 文件夹2
  • 文件夹3

  • Folder1 和 Folder2 中有内容文件,但 Folder3 是空的

    我的 nuspec 文件定义如下:
    <?xml version="1.0"?>
    <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
      <metadata>
        <id>Package_7.2_140526</id>
        <version>7.2.140526</version>
        <title>Package 7.2 rev 140526</title>
        <authors>My Company</authors>
        <owners>My Company</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>A vanilla website</description>
      </metadata>
    </package>
    

    我没有包含单个文件,因为我希望 nuget 包包含所有内容。虽然我的例子只有 3 个文件夹,但远远不止这些。

    这是我从命令行运行的 nuget 命令
    nuget pack "c:\Projects\Package 7.2 rev 140526\Packagee 7.2 140526.nuspec" -OutputDirectory c:\Projects -NoPackageAnalysis 
    

    当那不起作用时,我尝试使用 -ExcludeEmptyDirectories 标志以防万一
    nuget pack "c:\Projects\Package 7.2 rev 140526\Packagee 7.2 140526.nuspec" -OutputDirectory c:\Projects -NoPackageAnalysis -ExcludeEmptyDirectories
    

    但它仍然不会包含空文件夹。

    需要做什么才能让 nuget pack 命令包含空文件夹?

    更新

    我使用 Nuget Package Explorer 将空文件夹添加到解决方案中,然后查看修改后的 nuspec 文件。似乎在 nuget 中包含空文件夹的唯一方法是将文件条目作为
    <file src="folder3\_._" target="folder3\_._" />
    

    然后有一个postdeploy.ps1文件删除所有名为“_._”的文件

    所以看起来总是要指定文件。

    附言。我用以下结构对其进行了测试
    \Folder3\Folder4。

    如果文件夹 4 为空,则不会创建文件夹 3 和文件夹 4,除非您包含“_._”文件

    但是如果有一种方法可以包含空文件夹而不必求助于 _._ 文件然后想知道,特别是如果空白文件夹是嵌套的,因为它很容易被排除

    最佳答案

    是的,这似乎是一个问题,它是否已解决以及如何解决都处于阴暗状态。 Nuget Github 中有一些关于此的问题,但我无法清楚地了解状态。

    总结是 nuget 'pack' 命令有一个名为 -ExcludeEmptyDirectories 的参数,它实际上应该与它所调用的相反,但它在我可以测试的情况下都不起作用。



    https://github.com/NuGet/Home/issues/3009

    关于NuGet.exe 包不包括空文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35898300/

    相关文章:

    c# - 我们是否需要限制 .NET Core 库中的依赖项?

    c++ - Nuget 包通过控制台安装,但没有为 C++ 项目添加引用

    msbuild - 将 NuGet PackageRestore 与 msbuild 一起使用

    powershell - 在 nuget init.ps1 中,您如何检测是作为安装还是作为控制台初始化运行

    asp.net - 升级到 MVC 5.2.0.0 导致异常 "Method not found: ' Boolean System.Web.WebPages.BuildManagerWrapper.IsNonUpdateablePrecompiledApp”

    nuget - 如何在nuget和项目引用之间有效切换?

    c# - 为解决方案文件夹外的项目设置 NuGet 包文件夹

    visual-studio-code - 如何在 Visual Studio Code 上查看 C# Nuget 包的源代码?

    asp.net-mvc - 无法确定要使用哪个版本的 ASP.NET 网页

    将新包版本上传到 nuget.org