Зарегистрируйте Cll / VB.NET COM dll программно - PullRequest
17 голосов
/ 04 марта 2010

Вопрос: У меня есть .NET dll, которую я использую из программы на C ++. Теперь мне нужно программно зарегистрировать dll на компьютере развертывания.

Как мне это сделать (программно! Без использования regasm)? Я помню, когда я однажды вызывал dll VB6 из dll C ++, мне пришлось использовать DllRegisterServer и DllUnregisterServer.

Это все еще так с .NET DLL?
Кажется, мне нужно как-то добавить функцию dllregisterserver к .NET dll.

Ответы [ 2 ]

27 голосов
/ 04 марта 2010

YUK, DLL-библиотеки .NET не имеют DllRegisterServer, поэтому вам нужно написать установщик .NET, выполнив это где-нибудь:

Assembly asm = Assembly.LoadFile (@"c:\temp\ImageConverter.dll");
RegistrationServices regAsm = new RegistrationServices();
bool bResult = regAsm.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase);
1 голос
/ 04 марта 2010

Можете ли вы использовать монитор процесса , чтобы увидеть, какие системные изменения (в основном, изменения реестра, я думаю) вносятся, когда вы используете regasm.exe, чтобы зарегистрировать свою DLL, а затем вместо этого вносить эти изменения программно?

...