我们为Word开发了一个VSTO插件,我们有一个问题,插件的最早入口点是AddIn_Startup处理程序。问题是,对于我们实现的AssemblyResolve处理程序来说,调用此处理程序为时已晚,无法找到所需的程序集。
我通过将处理程序分配给Addins.Designer.cs类中的AppDomain.CurrentDomain.AssemblyResolve事件解决了这个问题,但正如您所知道的,此代码是自动生成的。
有没有一种方法可以更快地在AddIn_Startup处理程序和非自动生成的文件中分配AssemblyResolve处理程序?
发布于 2015-04-16 21:49:31
请注意,您开发的是一个外接程序,而不是一个独立的应用程序,您可以在运行时管理引用并执行所需的任何操作。您可以考虑将绑定信息添加到应用程序配置文件(在本例中为Word.exe.config)。
发布于 2015-04-20 21:02:28
您可以在AddIn_Startup代码中添加处理程序。代码在VB.net中。
AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf AssemblyResolver发布于 2020-05-29 15:45:50
我刚刚遇到这个问题,通过搜索登陆到这里,然后浏览了一下VSTO Microsoft.Tools AddinBase Class (我希望这是正确的链接)。在任何情况下,我都会重写Begininit并在那里设置AppDomain.CurrentDomain.AssemblyResolve。对于我的情况,这是足够早的加载我的引用。
但是,请注意,插件仍然可以尝试加载您的程序集(并失败),如果它需要它,这甚至可能发生在Begininit之前。例如,如果在ThisAddin类中引用程序集中的枚举或常量。
https://stackoverflow.com/questions/29675802
复制相似问题