Как программно определить, установлена ​​ли 64-разрядная версия mono в windows и где?

Я нашел эти настройки реестра

enter image description here

Предполагая, что пользователь установил 64-битный MSI Mono, могу ли я в коде C# прочитать реестр и положиться на

  • 1 + 2, указывающий, что установлена ​​64-разрядная версия Mono
  • 3, где находится папка Mono lib
  • 4, где находится папка конфигурации Mono и
  • 5, где находится mono-2.0-sgen.dll.

Я спрашиваю, потому что

  1. Я не нашел этого документированного на веб-сайте Mono (например, Mono FAQ: Технические, Установить Mono в Windows, Документация среды выполнения Mono, Документация среды выполнения Mono)
  2. Возможно, есть лучший / альтернативный подход. (например, GAC ... мне не нравится GAC, но, возможно ...)

(Я предполагаю, что все, что находится в Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node, будет 32-битным и не будет указывать на 64-битный моно.)


Обновлять Я спросил на Mono-Github, и вот их ответ: https://github.com/mono/mono/issues/10535

Итак, теперь вы знаете, как программно определить, установлен ли моно и где ... просто найдите эти ключи реестра

BugFinder 10.09.2018 11:07

@BugFinder Я нигде не нашел этого документированного ... могу ли я положиться на это?

robor 10.09.2018 11:10

В большинстве случаев эти вещи не документируются. Если вы проведете тест на кучу коробок, если он есть для всех, вы сможете предположить, что он надежен.

BugFinder 10.09.2018 11:28

@ robor78 Возможно, вы захотите опубликовать проблему в репозитории Mono, чтобы спросить, являются ли эти записи реестра "стабильными".

SushiHangover 10.09.2018 13:24
0
4
174
1

Ответы 1

.NET предоставляет серию классов для чтения записей реестра. Здесь - пример того, как это сделать. Другой пример - здесь.

В вашем случае ключевое местоположение - номер 1 из размещенного изображения, ключ - «Архитектура», а это «x64» и т. д.

Попробуйте использовать этот код по указанной выше ссылке и посмотрите, работает ли он. Требуется некоторая адаптация.

Если вы получаете сообщение об ошибке относительно прав администратора, попробуйте запустить Visual Studio от имени администратора.

Надеюсь, мой ответ вам поможет!

cosmin_popescu 10.09.2018 13:01

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