Assembly.LoadFrom在Windows 7中的行为不同

本文关键字:LoadFrom Windows Assembly | 更新日期: 2023-09-27 18:20:10

对于我们的应用程序,我们使用一个消息传递系统,在该系统中,使用消息中的信息,我们可以使用动态反射来构建各种对象。这方面的简化版本是:

if(Message.Control == "ControlA")
    Assembly.LoadFrom("ControlsA.dll")
else if (Message.Control == "ControlB")
    Aseembly.LoadFrom("ControlsB.dll")

一旦我们有了程序集,我们就会根据需要调用各种方法。

目前的问题是,当我们在Windows 7安装中使用此方法时,我们会收到一个"无法加载文件或程序集"错误,其中报告为已搜索的路径是通过快捷方式(C:''users''*user*''desdesk)启动应用程序的用户桌面目录。

我的问题是;为什么上面的方法在XP中工作时没有在Windows7中查找DLL的应用程序路径,我们应该做一些不同的事情吗?

Assembly.LoadFrom在Windows 7中的行为不同

使用怎么样

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)

以获取当前正在执行的代码的路径?当你有这些信息时,应该很容易找到你的图书馆。