Ссылка на внешние сборки из оснастки PowerShell
Я разрабатываю настраиваемую оснастку PowerShell, которая ссылается на другой проект в решении.
Когда я пытаюсь отладить оснастку (следуя [этим инструкциям][1]), сборка не удается загрузить, и мой командлет завершается с сообщением "Не удалось загрузить файл или сборку..."
Как вы указываете PowerShell, как находить сборки, или как вы указываете, где находятся сборки, необходимые для оснастки?
Я бы предпочел не регистрировать сборки в GAC, по крайней мере, во время разработки.
2 ответа
Не уверен в точном поведении, но я бы попытался использовать fuslogvw
чтобы точно увидеть, где среда выполнения ищет проблемные сборки. Это дало бы вам подсказку о том, как заставить их копироваться в правильное место при сборке. Этот пост Скотта Хансельмана весьма полезен, и это официальная документация.
Если вы найдете решение, пожалуйста, добавьте ответ, так как это должен быть распространенный сценарий.
РЕШЕНИЕ (размещение здесь в соответствии с одним из комментариев к моему вопросу)
Моя проблема была довольно специфичной, так как я работаю на 64-битном сервере, но выкладываю решение на случай, если оно может помочь кому-то еще.
С помощью fuslogvw
как и предполагалось, я увидел, что зависимая сборка искалась с помощью machine.config
файл под C:\Windows\Microsoft.NET\Framework64
и затем связывание не удалось; запуск проекта с "начать без отладки", вместо machine.config
файл под C:\Windows\Microsoft.NET\Framework
был взят (обратите внимание на пропавших без вести 64
в конце).
Я подумал, что проблема может быть связана с форматом изображения, и в действительности зависимая сборка компилировалась с x86 в качестве цели процессора; Я изменил его на "Любой процессор", и теперь сборка загружена правильно.