【问题标题】:Building a Visual Studio extension (VS 2017): Deploying to the experimental instance of VS takes several seconds构建 Visual Studio 扩展(VS 2017):部署到 VS 的实验实例需要几秒钟
【发布时间】:2018-12-15 15:46:38
【问题描述】:

我正在开发一个 Visual Studio 扩展(适用于 VS 2017)。选中CheckBox“将VSIX内容部署到调试实例”后,该构建呈现出荒谬的时间(5到10秒,而不是在相当快的PC上检查复选框时)。

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

这种长时间的延迟是否正常,或者我该如何预防?

【问题讨论】:

  • 反恶意软件的标准行为。禁用它,然后重试。
  • 汉斯:我按照你的建议做了,但没有任何改变。

标签: visual-studio-extensions


【解决方案1】:

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

我们知道,如果我们正在调试与我们正在编译的相同版本的 Visual Studio,我们需要确保勾选以下内容:

  • TRUE 在构建期间创建 VSIX 容器
  • TRUE 将 VSIX 内容部署到实验实例进行调试
  • FALSE 将 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。

同样,如果您取消选中该选项,则不会生成这些文件。

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

希望这会有所帮助。

【讨论】:

  • 在我的例子中,仅 GetExtensionPath 就需要将近 5 秒,而在您的示例中只需要 46 毫秒(我的电脑非常快)。这就是我问这个问题的原因。我希望有一个解决方案,但似乎这种延迟是正常的。
  • 我的也是一个相当大的延迟。迭代时间很不幸。 (在我的情况下需要 30 秒)
猜你喜欢
  • 2021-02-05
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 2015-04-10
  • 2011-07-27
相关资源
最近更新 更多