构建Visual Studio扩展(VS 2017):部署到VS的实验实例需要几秒钟

时间:2018-12-15 15:46:38

标签: visual-studio-extensions

我正在开发Visual Studio扩展(针对VS 2017)。选中“将VSIX内容部署到用于调试的实验实例”复选框时,该构建花费了可笑的时间(在相当快的PC上,此时间比未选中该复选框时长5至10秒)。

我查看了内部版本的诊断输出,并注意到“任务性能摘要”中的两个特殊项目“ GetExtensionPath”和“ CheckProfileSetup”,它们分别报告耗时5秒钟(仅当我增加时才使用后者) VSIX清单中的版本号)。确实,运行构建时,我很快就会看到VSIX文件正在其目录中更新,但是VSIX的内容不会出现在部署目录(AppData \ Local \ Microsoft \ VisualStudio \ 15.0_916c0e65Exp \ Extensions)中,直到5秒后,然后构建继续进行,显然什么也没做,又持续了5秒。

这种长时间延迟是正常现象,还是我该如何预防?

1 个答案:

答案 0 :(得分:1)

  

构建Visual Studio扩展(VS 2017):部署到VS的实验实例需要几秒钟

我们知道,如果要调试要使用的相同版本的Visual Studio,则需要确保选中以下选项:

  
      
  • TRUE 在构建过程中创建VSIX容器
  •   
  • TRUE 将VSIX内容部署到实验实例以进行调试
  •   
  • 错误将VSIX内容复制到以下位置
  •   

当我们检查选项Deploy VSIX content to experimental instance for debugging时,将在输出窗口中执行几个任务,例如:

1>       46 ms  GetExtensionsPath                          1 calls
1>      336 ms  VsixUtil                                   2 calls
1>      413 ms  FindInstalledExtension                     1 calls
1>      964 ms  GetDeploymentPathFromVsixManifest          1 calls
1>      979 ms  EnableExtension                            1 calls

VS需要花费几秒钟来完成这些任务。而且,如果您取消选中此选项,这些任务将不会执行,也不会出现几秒钟的延迟。

此外,如果我们选中该选项,然后构建项目,则会生成几个文件:扩展文件夹中的catalog.jsonextension.vsixmanifestmanifest.json

C:\Users\<Username>\AppData\Local\Microsoft\VisualStudio\15.0_bdfdc7ddExp\Extensions\xxxxx\VSIXProject1\1.0

注意:要进行此检查,您可以在构建项目之前清理文件夹VSIXProject1\1.0

类似地,如果您取消选中这些选项,则不会生成那些文件。

所以,这种延迟是正常的,我们不必对此太担心。

希望这会有所帮助。