Определите каталог установки экземпляра SQL Server на 64-разрядной машине из 32-разрядного приложения .NET.

Я пытался определить каталог установки экземпляра SQL Server на 64-разрядной машине из 32-разрядного приложения .NET и некоторое время пытался заставить реестр работать правильно, поскольку обычный реестр, к которому обращался мой код, виртуализировался. или что-то еще в ОС Windows.

Я думаю, что у меня есть ответ, но мне было интересно, есть ли лучший способ.


person stackuser83    schedule 09.08.2012    source источник


Ответы (3)


Напишите небольшую 64-битную программу, которая сделает это, и вызовите .exe из вашего 32-битного приложения.

person Todd Li    schedule 09.08.2012

Я не закончил проверять правильность своего первого ответа, потому что есть несколько лучший способ, который заключается в использовании WMI, как описано здесь: https://stackoverflow.com/a/5497319/832705

person stackuser83    schedule 10.08.2012

Мое решение состоит в том, чтобы спросить SQLServer, какой реестр имеет для своего каталога установки, потому что это 64-битное приложение, которое может попасть в обычный 64-битный реестр и не застрять в песочнице 32-битного реестра или нет.

Это можно сделать с помощью ответа этого парня: https://stackoverflow.com/a/533592/832705

Действительно здорово, большое спасибо, мистер Ян.

person stackuser83    schedule 09.08.2012
comment
Это будет одно из двух мест, оба вам известны, только одно существует в операционной системе x64. - person Security Hound; 09.08.2012
comment
Извините, я должен был упомянуть, что сервер является именованным экземпляром и может работать из определенного каталога установки экземпляра. - person stackuser83; 10.08.2012