Определение целевого компьютера (32-разрядного или 64-разрядного) с помощью развертывания ClickOnce - PullRequest
7 голосов
/ 01 декабря 2010

У меня есть приложение Windows Forms , и я развертываю это приложение через развертывание ClickOnce.Теперь у меня есть сторонний DLL-файл, и он имеет разные версии для 32-разрядной и 64-разрядной ОС.

Возможно ли развертывание различных файлов DLL на основе целевого компьютера (32-разрядного64-битный) через ClickOnce?

1 Ответ

3 голосов
/ 24 декабря 2010

[Редактировать]

Нет необходимости использовать отражение.Вы можете добавить ссылку на вашу программу прямо в загрузчике и запустить ее.Сделал сообщение в блоге с кодом об этом в Tech and Me .

Вы можете включить обе версии в свое развертывание, но назвать их по-разному.Затем попросите приложение загрузчика проверить, находитесь ли вы в 32-битной или 64-битной системе, скопируйте правильную dll (например, thirdparty64.dll -> thirdparty.dll), с которой связана ваша настоящая программа, а затем, например, вызовите вашу программу из загрузчикаAssembly.Load и используйте рефлексию для запуска вашего основного метода.

Более простой метод - это скомпилировать ваше приложение для запуска под x86, гарантируя, что оно всегда будет работать в 32-битном режиме.Если вы не полагаетесь на какое-либо конкретное приложение, устанавливаемое на компьютере в 32/64-битных версиях, это может быть лучшим выбором.

...