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