我在c#中开发包含c ++ dll的应用程序。 我使用DllImport导入dll。 我的应用程序在我的系统中正常工作但是,当我从不同的系统测试应用程序时,它会抛出
"无法加载dll异常"
并在catch块中显示错误
"未找到Dll"
我也使用
打印路径System.IO.Path.GetFullPath("abc.dll")
我将dll放在返回路径中。 现在解决方案是什么?所以我可以从不同的系统运行应用程序。 非常感谢。
答案 0 :(得分:0)
您需要确定应用程序(直接或间接)引用了哪些托管dll,本机dll和lib文件。
对于托管dll,请确保它们位于网络的bin文件夹中。
对于本机dll和.lib文件,请检查这些.dll和.lib文件是否在PATH中。如果没有,你可以将它们复制到那里;或者,您可以将它们放入文件夹并将该文件夹添加到PATH中。然后重新启动VS和IIS(命令" iisreset")以确保拾取设置。
在该解决方案中,他使用以下样本解决方案重现了此错误
Web1引用托管的c ++项目说" MCpp1.dll"。该项目进一步引用了两个非托管的c ++项目,输出结果为" Lib1.lib"和" Lib2.lib"
如果我将所有这些文件复制到网络的bin文件夹中,我会得到"模块未找到错误"的例外。
我创建一个文件夹说" C:\ Lib"并复制" Lib1.lib"和" Lib2.lib"进入它并将此文件夹添加到PATH中。我重新启动VS,并运行" IISReset"因为我有一个IIS网站
打开VS并请求页面,现在可以使用
答案 1 :(得分:0)
您可以查看项目属性 - >链接器 - >输入或附加库目录,其中包含您的c ++ dll路径。