反序列化 - 未找到程序集问题c#

时间:2017-02-20 06:20:03

标签: c# .net revit-api revit

我正在处理装配项目,外部程序通过装配程序执行。 由于外部应用,System.Environment.CurrentDirectory汇编和Application.ExecutablePath路径不同。  System.Environment.CurrentDirectory是装配路径。   Application.ExecutablePath外部应用程序路径。 反序列化时会抛出expcetion

  

未找到装配

因为"Application.ExecutablePath "没有我的dll。 所以我想更改使用System.Environment.CurrentDirectory路径进行反序列化。

1 个答案:

答案 0 :(得分:3)

我建议在当前域上设置AssemblyResolve事件。 这样,您可以明确地确定DLL的位置,并在未自动找到它们时加载它们。

Jeremy Tammik在这里写到: http://thebuildingcoder.typepad.com/blog/2014/05/rvtva3c-assembly-resolver.html

唯一需要注意的是,您应该确保事件专门针对您的DLL(而不是任何DLL) - 如果它不适合您加载DLL,则返回null(我偶尔会遇到其他人的插件不能很好地实现这一点的场景,并且它会让我的插件搞砸了。)