如何从 Visual Studio 中排除文件,但在发布时仍然部署它们?

How can I exclude files from Visual Studio, but still deploy them upon publishing?

我们在 Visual Studio 2019 年遇到了严重的减速,部分原因是我们的 wwwroot 文件夹中包含大量内容(约 12,000 个文件)。此内容很少更改,但当我们执行不需要的 "Find in files..." 等操作时,它最终会被搜索,并最终减慢 adding/renaming 类 等正常操作。

有什么方法可以将内容保留在源代码管理中,将其从 Visual Studio 中排除,但在我们发布时仍然部署它?

我无法确定这是否可能是使用 DefaultItemExcludes 等设置或 ItemGroup 元素上的各种选项来编辑 csproj 文件。

以下是我们为(希望)解决这个问题所做的工作:

  1. 在 PropertyGroup 中的 WebApp.csproj 文件中添加了以下行:

    <ProjectGroup>
        <DefaultItemExcludes>$(DefaultItemExcludes);wwwroot\hugecontentfolder\**</DefaultItemExcludes>
    </ProjectGroup>
    
  2. 庞大的内容文件夹保留在源代码管理中,这简化了事情,因为我们需要将这些文件放在本地进行开发

  3. 我们用新任务更新了 Azure DevOps 管道,以将该文件夹的内容从源代码管理复制到构建工件暂存目录

  4. 更新了 Dotnet Publish Azure Devops 任务以不再压缩它的输出

  5. 另一个新的 Azure DevOps 任务将构建工件暂存目录(现在有未压缩的 dotnet 发布输出,以及正确位置的巨大内容文件夹输出)存档到 zip文件发布。