【问题标题】:How can I exclude files from Visual Studio, but still deploy them upon publishing?如何从 Visual Studio 中排除文件,但在发布时仍部署它们?
【发布时间】:2019-09-07 04:04:21
【问题描述】:
我们在 Visual Studio 2019 中遇到严重的减速问题,部分原因是我们的 wwwroot 文件夹中包含大量内容文件夹(约 12,000 个文件)。此内容很少更改,但当我们执行不需要的“在文件中查找...”等操作时,它最终会被搜索,并最终减慢诸如添加/重命名类等正常操作。
有什么方法可以将内容保留在源代码管理中,将其从 Visual Studio 中排除,但在我们发布时仍然可以部署它?
我无法确定这是否可能是使用 DefaultItemExcludes 等设置或 ItemGroup 元素上的各种选项来编辑 csproj 文件。
【问题讨论】:
标签:
visual-studio
asp.net-core
visual-studio-2019
csproj
【解决方案1】:
以下是我们为(希望)为我们解决此问题所做的工作:
-
在 PropertyGroup 中的 WebApp.csproj 文件中添加了以下行:
<ProjectGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);wwwroot\hugecontentfolder\**</DefaultItemExcludes>
</ProjectGroup>
巨大的内容文件夹保留在源代码控制中,这简化了事情,因为我们需要在本地提供这些文件以进行开发
我们使用新任务更新了 Azure DevOps 管道,以将该文件夹的内容从源代码管理复制到构建工件暂存目录
更新了 Dotnet Publish Azure Devops 任务,不再压缩它的输出
另一个新的 Azure DevOps 任务将构建工件暂存目录(现在具有非压缩的 dotnet 发布输出,以及正确位置的巨大内容文件夹输出)存档到 zip 文件中以进行发布。