public void DLLRegisterServer(int regMode) { //register dll //same as: //post build event: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm.exe $(TargetPath) /codebase RegistrationServices regAsm = new RegistrationServices(); bool bResult = regAsm.RegisterAssembly( ComponentConfig.typeToRegister.Assembly, AssemblyRegistrationFlags.SetCodeBase); GME.Util.MgaRegistrar reg = new GME.Util.MgaRegistrar(); if ((int)GME.MGA.Core.GMEInterfaceVersion_enum.GMEInterfaceVersion_Current != (int)((GME.MGA.Core.IGMEVersionInfo)reg).version) { throw new Exception("MgaInterfaceVersion mismatch: this assembly is using " + (int)GME.MGA.Core.GMEInterfaceVersion_enum.GMEInterfaceVersion_Current + " but the GME interface version is " + (int)((GME.MGA.Core.IGMEVersionInfo)reg).version + "\n\nPlease install a compatible GME version or update the interop dlls."); } reg.RegisterComponent( regAsm.GetProgIdForType(ComponentConfig.typeToRegister), GME.MGA.componenttype_enum.COMPONENTTYPE_INTERPRETER, ComponentConfig.componentName, regacc_translate(regMode)); reg.set_ComponentExtraInfo(regacc_translate(regMode), regAsm.GetProgIdForType(ComponentConfig.typeToRegister), "Icon", ComponentConfig.iconId); if (!ComponentConfig.paradigmName.Equals("*")) { reg.Associate(regAsm.GetProgIdForType(ComponentConfig.typeToRegister), ComponentConfig.paradigmName, (GME.Util.regaccessmode_enum)regMode); } }