防止代码被加载到另一个AppDomain

我们有一个通常工作正常的excel插件,我们没有设置使用AppDomains任何东西。

然而,其他一些插件似乎强制我们的代码第二次加载,我们最终让我们的代码在两个不同的AppDomains上运行(当我们要执行一个动作时,我们将它放在AppDomain 1上的队列中,然后,ExcelsonTime函数在AppDomain 2上运行出队方法,队列为空)。

所以,我的问题是:是否有一个简单的方法来解决这个问题,也许阻止我们的程序被加载两次或其他AppDomains ? 有没有人有任何其他的想法如何解决这个问题?

更新:

我们设法做的是在我们被调用的时候把我们的整个程序加载到其他的插件的AppDomain中,现在我们在相同的地方(曾经是“到其他域的网关”的地方,比如上面提到的动作队列函数):

当出现这种情况时,SynchronizationContext.Current似乎重置为null,例如对于function区上的每个单击处理函数的调用,SynchronizationContext.Current被设置为null。

我甚至尝试过debugging.Net代码,而且碰巧的是,框架会记住一个旧的同步上下文,当把所有的事情都弄回原来的样子时,旧的同步上下文就是空的。

任何人都可以在这个问题上给予任何帮助,我真的开始失去它?