[已解决]调用c++写的半托管dll找不到文件
vb.net吧
全部回复
仅看楼主
level 13
Nukepayload2 楼主
症状:即使安装了合适的运行库也不能正常加载c++写的半托管dll,
发生System.TypeInitializationException
InnerException:
System.IO.FileNotFoundException 找不到 xxxxxx.dll
在自己的电脑可能没这个问题,但是别人的电脑(尤其是用某些软件“优化”过注册表的)容易出这个问题。
解决:
只要在应用启动后调用c++的组件前设置一下环境变量就好了!
以WPF应用为例,打开Application.xaml.vb文件,添加代码
Private Sub Application_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
  Environment.SetEnvironmentVariable("PATH", String.Concat(Environment.GetEnvironmentVariable("PATH"), ";", AppDomain.CurrentDomain.RelativeSearchPath), EnvironmentVariableTarget.Process)
  '在这之后添加全局异常处理
  '在这之后进行任何对于c++组件的初始化
End Sub
2015年11月09日 13点11分 1
level 5
谢谢Nuke分享。
2015年11月10日 11点11分 2
1