Jak widać w tym temacie: http://4programmers.net/Forum/C_i_.NET/221952-windows_2008_-_aplikacja_crashuje_zamiast_obsluzyc_wyjatek
Odkryłam, że są róznice między: C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\regasm
a: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm
Na Windows Server 2008, pierwsze działa, a drugie nie działa, tj. próba wywołania CreateObject daje błąd: "Składnik ActiveX nie może utworzyć obiektu".
Ok. Ale ja bym chciała zarejestrować tą dllkę programowo. Wykorzystuję takowy kod:
public static void RegasmDll(string dllPath)
{
Assembly asm = Assembly.Load(File.ReadAllBytes(dllPath));
RegistrationServices regAsm = new RegistrationServices();
regAsm.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase);
}
Niestety, po takiej rejestracji, próba wywołania CreateObject na mym COMie daje komunikat: 0x80131040.
Dopiero wywołanie regasma z Framework64 ratuje sytuację.
Jak programowo zarejestrować COMa przy pomocy tego regasma?