Попытка скомпилировать проект VS2008 на Win 64 bit, который является пользовательским Powershell PSSnapin

Библиотека Project прекрасно компилируется для ЛЮБОГО ЦП в VS2008, работающем на Win 7 64 -bit.

Теперь в посткомпиляции следующая команда завершается неудачно при попытке зарегистрировать библиотеку dll:

PS C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727>. \ Installutil C:\path\Project.dll

Исключительная ситуация при инициализации установки:

System.BadImageFormatException: Не удалось загрузить файл или сборку 'file:///C:\path\Project.dll' или одну из ее зависимостей. Предпринята попытка загрузить программу с неверным форматом.

Нужно ли мне компилировать проект под x64 У меня сложилось впечатление, что AnyCPU позаботится об этом.

Ало у моей библиотеки есть зависимости. Они также должны быть скомпилированы как x64 бит?

Любая помощь приветствуется.

1 ответ

В Windows 7 64-разрядная версия Powershell работает как 32-разрядное и 64-разрядное приложения.

В проекте оснастки необходимо ссылаться на 32-разрядную библиотеку System.Management.Automation, которая находится в C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0\System.Management.Automation.dll если оснастка скомпилирована для запуска под Powershell(x86), который является 32-разрядным.

Однако библиотека по умолчанию является 64-разрядной и находится в C:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0\System.Management.Automation.dll

Невозможно зарегистрировать 64-битную скомпилированную библиотеку Powershell с помощью оснастки через C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil, которая является 32-битной

и получит исключения из утилиты установки, и установка будет отменена.

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