参考非托管程序集

XSL*_*XSL 9 .net c# dll assemblies reference

我试图在我的.NET项目中引用托管DLL,而不将其复制到我的输出目录中.因此,当我的程序运行时,它会从安装的位置运行DLL - 无论在哪里.问题在于这个托管DLL调用非托管DLL.当我尝试引用托管DLL时,它会抛出一个FileNotFound Exception - Could not load file or assembly 'CharacterGen' or one of its dependencies. The system cannot find file specified.当我将输出设置在与我引用的DLL相同的目录中时,一切正常.通常的解决方案是引用从另一个程序集中调用的DLL.但是,我无法从我的托管程序中引用非托管程序集.

有没有办法引用调用非托管DLL的托管DLL?

ins*_*pid 17

如果您询问如何让visual studio将非托管DLL复制到输出目录,您可以这样做:

  1. 将非托管dll添加为项目中的文件或链接文件.(右键单击项目 - >添加 - >现有文件,然后添加或添加为链接).
  2. 在解决方案资源管理器中选择该文件.在属性窗口中,设置要始终复制的构建操作.

  • 不要忘记,非托管DLL本身可能需要其他非托管DLL.如果您忘记添加它们,您可能会得到完全相同的错误.如果您不确定依赖项是什么,可以使用依赖性walker来帮助您. (2认同)