Ссылка на внешние сборки из оснастки 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 в качестве цели процессора; Я изменил его на "Любой процессор", и теперь сборка загружена правильно.

Другие вопросы по тегам