Как изменить место установки vsix по умолчанию

Я разрабатываю проект расширения Visual Studio с использованием VSIX. По умолчанию файл VSIX устанавливает сборки в одну из следующих папок:

C:\Users\<UserName>\Appdata\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\<GPName>
C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Microsoft p&p\<GPName>

Можно ли изменить место выхода?


person Daniel Peñalba    schedule 26.01.2012    source источник
comment
Я ненавижу быть одним из этих людей (шучу, нет, не хочу), но зачем тебе менять место?   -  person Cody Gray    schedule 26.01.2012
comment
Мне нужно загрузить мои сборки с помощью отражения, потому что сборки пакетов должны быть строго подписаны, и я не могу ссылаться на свои сборки, которые не подписаны как ссылки. Таким образом, когда пакет развертывается автоматически, сборки ссылок (отраженные) и файлы конфигурации не развертываются.   -  person Daniel Peñalba    schedule 27.01.2012
comment
Так почему бы не подписать их? Или развернуть свои зависимости в том же каталоге? Это локальная папка пользователя, поэтому у вас всегда должно быть достаточно прав для записи в нее.   -  person Cody Gray    schedule 27.01.2012


Ответы (2)


Вы всегда можете легко найти свои сборки:

  • вы мгновенно получаете правильный путь с помощью typeof(MyPackage).Assembly.Location и вычисляете пути к другим сборкам, включенным в ваш пакет. Но, я думаю, это не сработает, если пакет был зарегистрирован в GAC.
  • вы можете использовать myPackage.UserLocalDataPath, VS вернет вам правильный (blah)/Extensions каталог, расположенный где-то в папке (youruser)-(appdatalocal), а затем вы сможете глубже сканировать свои папки и папки других пакетов

Это может показаться большой работой, но это не так; пара строчек, максимум x-teen.

person quetzalcoatl    schedule 10.04.2012

Нет, это невозможно. Установщик VSIX выбирает, где разместить сборки, и VSIX не участвует в этом процессе.

person JaredPar    schedule 07.02.2012