Создание расширения Visual Studio (VS 2017): развертывание на экспериментальном экземпляре VS занимает несколько секунд - PullRequest
0 голосов
/ 15 декабря 2018

Я занимаюсь разработкой расширения Visual Studio (для VS 2017).Когда флажок «Развернуть содержимое VSIX в экспериментальном экземпляре для отладки» установлен, сборка занимает довольно много времени (на 5–10 секунд дольше, чем когда флажок не установлен, на довольно быстром ПК).

Я заглянул в диагностический вывод сборки и заметил два конкретных элемента в Сводной информации о производительности задачи: «GetExtensionPath» и «CheckProfileSetup», которые, как сообщается, занимают по 5 секунд каждый (последний используется только тогда, когдаЯ увеличил номер версии в манифесте VSIX).Действительно, когда я запускаю сборку, я вижу, что файл VSIX обновляется в своем каталоге довольно скоро, но содержимое VSIX не появляется в каталоге развертывания (AppData \ Local \ Microsoft \ VisualStudio \ 15.0_916c0e65Exp \ Extensions) до5 секунд спустя, и затем сборка продолжается, по-видимому, ничего не делая, в течение еще 5 секунд.

Является ли эта длительная задержка нормальной или как ее предотвратить?

1 Ответ

0 голосов
/ 19 декабря 2018

Создание расширения 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 перед сборкой проекта.

Точно так же, если вы снимите галочку с этих опций, этот файл не будет сгенерирован.

Итак, эта задержка нормальная, нам не о чем беспокоиться.

Надеюсь, это поможет.

...