我想在我的.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?
您是否熟悉GAC ..?如果你不想复制到bin文件夹然后创建一个单独的文件夹,但你仍然需要将该.dll复制到该文件夹,引用它们等。如果不是,你将不得不使用搜索路径做一些LoadFromAssebly代码为什么会你不想只将.dll复制到一个可以正确引用的位置..还有你想过创建一个MSI安装程序的方式,如果用户想要运行你的应用程序/设置它在一个不同的目录结构.. at至少他们可以做到这一点,相关的参考依赖关系将被处理。 – MethodMan 2012-01-09 19:21:57
我对GAC不太熟悉,但是据我所知,程序集必须签名。我无法控制我所引用的DLL,因此我无法验证它们是否已签名。我想过一个安装程序,但我不想安装到用户的现有目录中,因为它不是我的程序目录,而是存在于我的客户机上的目录。如果没有其他的工作,这将是我的后备。 – XSL 2012-01-09 19:46:14
GAC对引用非托管DLL没有用处。 – BrainSlugs83 2016-06-11 01:45:24