简体   繁体   English

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

[英]Register a C#/VB.NET COM dll programmatically

Question: I have a .NET dll which I use from a C++ program. 问题:我有一个.NET dll,我在C ++程序中使用它。 Now I have to register the dll programmatically on a deployment computer. 现在我必须在部署计算机上以编程方式注册dll。

How do I do that (programmatically! not using regasm)? 我该怎么做(以编程方式!不使用regasm)? I remember, when I once called a VB6 dll from a C++ dll, I had to use DllRegisterServer and DllUnregisterServer. 我记得,当我曾经用C ++ dll调用VB6 dll时,我不得不使用DllRegisterServer和DllUnregisterServer。

Is that still so with a .NET dll? 使用.NET dll还是这样吗?
It seems I have to somehow add the dllregisterserver function to the .NET dll. 看来我必须以某种方式将dllregisterserver函数添加到.NET dll中。

YUK, .NET dlls don't have DllRegisterServer, so you have to write a .NET installer, executing this somewhere: YUK,.NET dll没有DllRegisterServer,所以你必须编写.NET安装程序,在某处执行:

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

您是否可以使用进程监视器来查看当您使用regasm.exe注册您的dll时,进行了哪些系统更改(基本上是我认为的注册表更改),然后以编程方式进行这些更改?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM