对于我们的应用程序,我们使用消息传递系统,使用消息中的信息,我们可以使用反射动态构建各种对象。简化版本是:
if(Message.Control == "ControlA")
Assembly.LoadFrom("ControlsA.dll")
else if (Message.Control == "ControlB")
Aseembly.LoadFrom("ControlsB.dll")
一旦我们有了程序集,我们就会根据需要调用各种方法。
目前的问题是,当我们在Windows 7安装中使用此方法时,我们收到“无法加载文件或程序集”错误,其中报告为已搜索的路径是启动应用程序的用户桌面目录来自快捷方式(C:\ Users \ * user * \ desktop)。
我的问题是;为什么上面的方法在XP中工作时没有查看Windows 7中的DLL的应用程序路径,我们应该采取不同的做法吗?
答案 0 :(得分:3)
如何使用
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
获取当前正在执行的代码的路径?获得此信息后,应该很容易找到您的库。