我想要这样做的简短解释:
我正在为Autodesk Revit Architecture 2010编写插件.测试我的插件代码非常麻烦,因为我必须为每个调试会话重新启动Autodesk,手动加载Revit项目,单击Add-Ins选项卡然后启动我的插件.这花了太长时间.
我写了第二个插件来托管IronPython解释器.通过这种方式,我可以使用Revit提供的API.但最终,代码必须在C#中重写 - 并进行调试.
很简单,我想:只需从IronPython脚本加载插件DLL并进行练习即可.这确实有效,但一旦加载,我无法在Visual Studio中重新编译,因为DLL现在已加载到Revits AppDomain中.
很简单,我想(在StackOverflow的帮助下):只需在新的AppDomain中加载DLL即可.唉,RevitAPI对象无法封送到另一个AppDomain,因为它们不会扩展MarshalByRefObject.
我想我可能会使用影子副本.ASP.NET似乎正在这样做.但是阅读MSDN上的文档,似乎我只能在创建 AppDomain 时指定它.
我可以为当前(默认)AppDomain更改此设置吗?我可以强制它使用特定目录中的DLL的卷影副本吗?