У меня есть пакет VSIX с парой пользовательских дизайнеров поверх XML.Этот пакет имеет специализированную систему проектов, в которой я использую некоторые пользовательские задачи сборки для автоматической генерации кода во время сборки.
Первой проблемой, с которой мне пришлось столкнуться, был импорт файлов .targets в шаблон моего проекта.Я не могу дать полный путь к файлу .targets в шаблоне проекта, потому что изменяется версия моего пакета, и это заставляет установщик vsix поместить его в папку с версией на целевом компьютере.Я мог решить, как добавить переменную среды пользователя с корневым путем пакета, а затем обратиться к этой переменной среды в шаблоне проекта для импорта файла .targets.Это работает, как и ожидалось, с оговоркой.
Теперь предостережение о том, как я могу создать эту переменную среды в процессе развертывания VSIX.Я попытался украсить класс пакета с помощью пользовательского атрибута, полученного из RegistrationAttribute
.Я переопределил метод Register для запуска Environment.SetEnvironmentVariable()
, и он работает только тогда, когда я запускаю проект на своем компьютере разработчика.Очевидно, VSIXInstall.exe не заботится о запуске регистра атрибутов во время установки.
Было бы здорово, если кто-то может предложить подход для решения этой проблемы.У меня не хватает времени, и я уже столько всего перепробовал безуспешно: (