以编程方式注册C#/ VB.NET COM DLL

时间:2010-03-04 11:11:23

标签: c# vb.net com dll com-interop

问题:我有一个.NET dll,我在C ++程序中使用它。 现在我必须在部署计算机上以编程方式注册dll。

我该怎么做(以编程方式!不使用regasm)? 我记得,当我曾经用C ++ dll调用VB6 dll时,我不得不使用DllRegisterServer和DllUnregisterServer。

.NET dll仍然如此吗? 看来我必须以某种方式将dllregisterserver函数添加到.NET dll。

2 个答案:

答案 0 :(得分:27)

YUK,.NET dll没有DllRegisterServer,所以你必须编写.NET安装程序,在某处执行:

Assembly asm = Assembly.LoadFile (@"c:\temp\ImageConverter.dll");
RegistrationServices regAsm = new RegistrationServices();
bool bResult = regAsm.RegisterAssembly(asm, AssemblyRegistrationFlags.SetCodeBase);

答案 1 :(得分:1)

您可以使用process monitor查看当您使用regasm.exe注册您的dll,然后以编程方式进行这些更改时,会发生哪些系统更改(我认为基本上是注册表更改)?