【发布时间】:2014-07-15 05:55:55
【问题描述】:
我有一个奇怪的情况,当通过反射创建时使用了错误的程序集。
这是我的设置(简化):
Project1:类库
项目 2:客户端应用程序
- Project2 通过从特定路径反射创建 Project1.dll (C:\Project1)
- Project2 还具有对 Project1.dll 的引用 用于不同的功能。此参考将 Project1.dll 复制到 C:\Project2\bin\Debug。
相关反射代码为:Assembly assembly = Assembly.LoadFrom(path);
问题: 当我通过反射调用 Project1 时,即使我指定了 C:\Project1 路径,它实际上也使用了 bin\Debug 副本(不一定是正确的版本)。
问题: 如何确保使用我提供的路径而不是首先找到的任何版本?
我理想的解决方案是将 Project1 一分为二,一个用于反射,一个用于参考,但在我的情况下这不是一个选项(可以,但它有额外的复杂性)。
谢谢你,
西蒙
【问题讨论】:
-
为什么投反对票?
-
我不知道。也许人们想看代码......不过,这个问题并不是真的有必要。
-
无论哪种方式,没有解释的反对票(或赞成票)没有太大用处。
-
您使用哪个函数来加载程序集?
-
ZenLulz,我更新了问题,谢谢。
标签: c# .net reflection .net-assembly probing