с помощью Windows Script Host - PullRequest
       23

с помощью Windows Script Host

6 голосов
/ 18 февраля 2010

Я использую хост сценариев Windows для какого-либо приложения-установщика и создаю ярлыки в меню «Пуск». Эта проблема возникла, когда я перешел на среду x64 (win7 ultimate x64 + vs2010)

Я добавил ссылку на объектную модель хоста скриптов Windows (из c: \ windows \ syswow64 \ wshom.ocx), она сгенерировала Interop.IWshRuntimeLibrary dll.

Я добавил 'using IWshRuntimeLibrary;' к моим файлам .cs, но когда я пытался создать

WshShell sh = new WshShellClass(); 

выдает исключение:

Не удалось загрузить файл или сборку 'Interop.IWshRuntimeLibrary, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей. Была предпринята попытка загрузить программу с неверным форматом.

Я предполагаю, что для этого мне понадобится 64-битная версия этого wshom.ocx, но я не знаю, что мне попробовать.

Или я просто дам дамп сценариев Windows, но мне нужен другой способ создания ярлыков меню «Пуск» из приложения .net.

1 Ответ

6 голосов
/ 19 февраля 2010

Кажется, что .NET требует, чтобы все сборки были одинаковыми 32-битными или 64-битными, и не позволит вам смешивать и сочетать.Поэтому, если ваше приложение работало в 32-битном режиме, попробуйте установить параметры компилятора (в свойствах проекта) для явного создания приложения "x86" (т. Е. 32-битного) (которое должно работать как в 32-битном, так и в 64-битном режиме).-немного).Это может быть проще, чем отслеживание 64-разрядной версии хоста сценариев.

Обратите внимание, что параметром компилятора по умолчанию является «Любой», при котором сборка .NET запускается как 64-разрядная на64-разрядная ОС и 32-разрядная в 32-разрядных ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...