我正在开发Visual Studio扩展(针对VS 2017)。选中“将VSIX内容部署到用于调试的实验实例”复选框时,该构建花费了可笑的时间(在相当快的PC上,此时间比未选中该复选框时长5至10秒)。
我查看了内部版本的诊断输出,并注意到“任务性能摘要”中的两个特殊项目“ GetExtensionPath”和“ CheckProfileSetup”,它们分别报告耗时5秒钟(仅当我增加时才使用后者) VSIX清单中的版本号)。确实,运行构建时,我很快就会看到VSIX文件正在其目录中更新,但是VSIX的内容不会出现在部署目录(AppData \ Local \ Microsoft \ VisualStudio \ 15.0_916c0e65Exp \ Extensions)中,直到5秒后,然后构建继续进行,显然什么也没做,又持续了5秒。
这种长时间延迟是正常现象,还是我该如何预防?
答案 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.json
,extension.vsixmanifest
,manifest.json
:
C:\Users\<Username>\AppData\Local\Microsoft\VisualStudio\15.0_bdfdc7ddExp\Extensions\xxxxx\VSIXProject1\1.0
注意:要进行此检查,您可以在构建项目之前清理文件夹VSIXProject1\1.0
。
类似地,如果您取消选中这些选项,则不会生成那些文件。
所以,这种延迟是正常的,我们不必对此太担心。
希望这会有所帮助。