你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
优化 Microsoft Dev Box 上的 Visual Studio 体验
使用 Visual Studio 17.8,可以尝试预缓存适用于 Microsoft Dev Box 的 Visual Studio 解决方案。 加载项目时,Visual Studio 会为文件编制索引并生成元数据,以启用完整的 IDE 功能套件。 因此在首次加载大型项目时,Visual Studio 有时可能需要相当长的时间。 在开发箱上缓存 Visual Studio,现在可以预生成此启动数据并将其作为自定义开发箱映像的一部分提供给 Visual Studio。 这意味着,从包括 Visual Studio 缓存的自定义映像创建开发箱时,可以登录到 Microsoft Dev Box 并立即开始处理项目。
在开发箱映像上预缓存 Visual Studio 解决方案的好处包括:
- 可以缩短首次加载解决方案所需的时间。
- 可以在 Visual Studio 中快速访问和使用关键 IDE 功能,例如在文件中查找以及 Intellisense。
- 可以改进大型存储库上的 Git 性能。
注意
通过预缓存 Visual Studio 解决方案节约的启动时间所获得的性能改进会根据解决方案的复杂程度而有所不同。
先决条件
若要利用在 Microsoft Dev Box 上预缓存源代码和 Visual Studio IDE 自定义项的功能,需要满足以下要求:
创建开发人员中心并配置 Microsoft Dev Box 服务。 如果没有可用的服务,请按照快速入门:配置 Microsoft Dev Box 中所述的步骤操作,创建开发人员中心并配置开发箱。
为开发箱创建自定义 VM 映像,在其中包括源代码和预生成的缓存。
本文指导你创建 Azure 资源管理器模板。 在以下部分中,你将修改该模板以包含用于生成 Visual Studio 解决方案缓存的进程,并通过为项目准备 git 提交图来进一步提高 Visual Studio 性能。 然后,可以使用生成的映像为团队创建新的开发箱。
在开发箱映像中启用 Visual Studio 缓存
在生成自定义开发箱映像的自动化管道中,可以为 Visual Studio 解决方案生成缓存。 若要在开发箱映像中启用 Visual Studio 缓存,请执行以下操作:
在 Azure 资源管理器模板中添加自定义步骤,将项目的源存储库克隆到 VM 上的非用户特定位置。
使用位于磁盘上的项目源,现在可以运行
PopulateSolutionCache
功能来生成项目缓存。 为此,请将以下 PowerShell 命令添加到模板的自定义步骤:# Add a command line flag to the Visual Studio devenv devenv SolutionName /PopulateSolutionCache /LocalCache /Build [SolnConfigName [/Project ProjName [/ProjectConfig ProjConfigName]] [/Out OutputFilename]]
此命令将打开解决方案、执行生成并生成指定解决方案的缓存。 随后生成的缓存将包含在自定义映像中,并在发布到连接的 Azure Compute Gallery 后可供开发箱用户使用。 然后,可以根据此映像创建新的开发箱。
/Build
标志是可选的,但如果不使用该标志,部分需要生成完成的缓存将不可用。 有关build
命令的详细信息,请参阅生成命令行参考。
当开发箱用户在基于自定义映像的开发箱上打开解决方案时,Visual Studio 将读取已生成的缓存并跳过缓存生成。
在开发箱映像中启用 Git 提交图优化
除了独立的提交图功能之外,还可以启用提交图优化,作为生成自定义开发箱映像的自动化管道的一部分。
如果满足以下要求,可以在开发箱映像中启用 Git 提交图优化:
- 使用 Microsoft Dev Box 作为开发工作站。
- 项目的源代码保存在要包含在映像中的非用户特定位置。
- 可以创建自定义开发箱映像,其中包含项目的 Git 源代码存储库。
- 使用的是 Visual Studio 17.8 或更高版本。
若要启用提交图优化,请在自定义映像生成过程中从 Git 存储库位置执行以下 git
命令:
# Enables the Git repo to use the commit-graph file, if the file is present
git config --local core.commitGraph true
# Update the Git repository’s commit-graph file to contain all reachable commits
git commit-graph write --reachable
随后生成的缓存将包含在自定义映像中,并在发布到连接的 Azure Compute Gallery 后可供开发箱用户使用。
后续步骤
Microsoft Dev Box 中的 Visual Studio 预缓存入门:
我们非常希望通过开发人员社区收到有关 Microsoft Dev Box 中的 Visual Studio 预缓存的反馈、意见和建议。