c# - Windows 7 中的 Assembly.LoadFrom 行为不同

标签 c# reflection windows-7

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

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/

相关文章:

c# - 更新并发事务 C# 的数量问题

c# - 如何将类对象转换为字符串?

java - 用内部类注释类

java - 如何在运行时获取对象类型?

windows-7 - VM 已变为 'inaccessible' - Vagrant 不再工作

c# - 为什么这个 C# 计时器代码不起作用?

c# - 在 json 字符串之前添加反斜杠并引发反序列化问题

html - 溢出 :hidden bug in Firefox26 on windows 7

c# - C# LINQ 中的 MongoDB 随机结果

powershell - 从文本文件的文件名列表中将文件从一个文件夹移动到另一个文件夹