Попытка скомпилировать проект VS2008 на 64-битной Win, который является пользовательским Powershell PSSnapin - PullRequest
0 голосов
/ 12 июня 2010

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

Теперь в посткомпиляции следующая команда завершается неудачно при попытке зарегистрировать библиотеку 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 Ответ

0 голосов
/ 14 июня 2010

В 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-разрядной

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

...