Регистрация программной библиотеки С#/VB.NET COM программно
Вопрос: У меня есть .NET dll, который я использую из программы на С++.
Теперь мне нужно зарегистрировать DLL программно на компьютере развертывания.
Как это сделать (программно, не используя regasm)?
Я помню, когда однажды я назвал dll VB6 из dll С++, мне пришлось использовать DllRegisterServer и DllUnregisterServer.
Это все еще так с .NET dll?
Кажется, мне нужно каким-то образом добавить функцию dllregisterserver в .NET dll.
Ответы
Ответ 1
YUK,.NET dlls не имеют DllRegisterServer, поэтому вам нужно написать установщик .NET, выполнив это где-нибудь:
Assembly asm = Assembly.LoadFile (@"c:\temp\ImageConverter.dll");
RegistrationServices regAsm = new RegistrationServices();
bool bResult = regAsm.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase);
Ответ 2
Можете ли вы использовать монитор процессов, чтобы узнать, какие изменения в системе (в основном, изменения в реестре, я думаю), когда вы используете regasm.exe
для регистрации ваша dll, а затем внесите эти изменения программно?