我有一个需要通过 c# 访问的自定义 dll(未注册)。如何在不注册 DLL 的情况下执行此操作?
编辑:它是一个 C++ dll。
请参阅免注册 COM 互操作:
免注册 COM 互操作激活组件,无需使用 Windows 注册表来存储程序集信息。您无需在部署期间在计算机上注册组件,而是在设计时创建包含绑定和激活信息的 Win32 样式清单文件。这些清单文件,而不是注册表项,指导对象的激活。
为您的程序集使用免注册激活而不是在部署期间注册它们有两个优点:
- 当一台计算机上安装了多个版本时,您可以控制激活哪个 DLL 版本。
- 最终用户可以使用 XCOPY 或 FTP 将您的应用程序复制到他们计算机上的适当目录中。然后可以从该目录运行应用程序。
我假设您想使用通过 P/Invoke 从此 dll 导出的函数?如果是这样,您只需将 dll 复制到与您的 exe 文件相同的文件夹中。然后为要使用的 C++ dll 中的函数编写 C# 声明。请参阅DllImportAttribute。