如何确定Assembly.Load()搜索程序集的位置?

And*_*ena 6 .net c# reflection

我有一个VS加载项,它使用BinaryFormatter来反序列化对象.要解析此对象的类型,它调用Assembly.Load(objectTypeFullName),但它触发异常,因为Assembly.Load无法在其搜索的任何位置找到程序集.给定的程序集是加载项程序集的兄弟,但似乎Assembly.Load()无法在那里找到它.

一种可能的解决方案是确定Assembly.Load应该在哪里查找程序集.

我该怎么办?

PS:我试图不将此程序集放在GAC上,因为每次重新编译程序集时都需要更新它.

Ree*_*sey 4

您可以使用AppDomainSetup.PrivateBinPath添加其他私有搜索路径。这可以通过AppDomain.SetupInformation检索。

另一种选择是订阅AppDomain.AssemblyResolve,以便在无法找到程序集时覆盖该行为。