문제

I have a custom dll (not registered) that I need to access via c#. How do I do this without registering the DLL?

Edit: It is a C++ dll.

도움이 되었습니까?

해결책

See Registration-Free COM Interop:

Registration-free COM interop activates a component without using the Windows registry to store assembly information. Instead of registering a component on a computer during deployment, you create Win32-style manifest files at design time that contain information about binding and activation. These manifest files, rather than registry keys, direct the activation of an object.

Using registration-free activation for your assemblies instead of registering them during deployment offers two advantages:

  • You can control which DLL version is activated when more than one version is installed on a computer.
  • End users can use XCOPY or FTP to copy your application to an appropriate directory on their computer. The application can then be run from that directory.

다른 팁

I assume you want to use the functions exported from this dll via P/Invoke? If so, you only need to copy the dll to the same folder as your exe file. Then write C# declarations for the functions in the C++ dll that you want to use. See DllImportAttribute.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top