Как получить местоположение зарегистрированного компонента .NET с помощью C #? - PullRequest
1 голос
/ 07 апреля 2011

В Visual Studio вы можете ссылаться на зарегистрированные компоненты .NET. Мне нужно получить местоположение (полный путь) одного из этих компонентов во время выполнения. Могу ли я понять, что (в C #)?

Я не упоминаю эту сборку .NET в моем проекте. Я просто хочу получить местоположение зарегистрированной сборки .NET, как это указано в окне, которое отображается, когда я хочу добавить ссылку.

Ответы [ 3 ]

4 голосов
/ 07 апреля 2011

Что вы пытаетесь сделать?

Если вы хотите во время выполнения определить путь сборки, попробуйте следующее:

Assembly.GetAssembly(typeof(Form)).Location
// Output:
// C:\WINDOWS\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll

Вам следует заменить «Форма»с типом в сборке, которую вы хотите найти (например, string) для mscorlib.dll.

2 голосов
/ 07 апреля 2011

Поиск в HKEY_CLASSES_ROOT \ CLSID с именем вашего EXE-файла. Его следует использовать как значение «LocalServer32».

Вам просто нужно прочитать реестр для этого.

Ссылка: вопрос переполнения стека Как получить зарегистрированный путь компонента ActiveX

2 голосов
/ 07 апреля 2011
Assembly.GetAssembly([C#_Component].GetType()).Location
...