对于我们的应用程序,我们使用消息传递系统,使用消息中的信息,我们可以使用反射动态构建各种对象。其简化版本是:
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,我们是否应该做一些不同的事情?
最佳答案
使用怎么样
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
获取当前执行代码的路径?当您掌握此信息后,应该很容易找到您的图书馆。
关于c# - Windows 7 中的 Assembly.LoadFrom 行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817353/