gpt4 book ai didi

.net - 我可以使默认的AppDomain使用某些程序集的卷影副本吗?

转载 作者:行者123 更新时间:2023-12-04 04:08:48 24 4
gpt4 key购买 nike

我为什么要这样做的简短说明:

我正在忙于为Autodesk Revit Architecture 2010编写插件。测试我的插件代码非常繁琐,因为我必须为每个调试 session 重新启动Autodesk,手动加载Revit项目,单击“加载项”选项卡,然后启动我的插件。这只是花太长时间。

我编写了第二个托管IronPython解释器的插件。这样,我就可以使用Revit提供的API。但是最终,必须使用C#重写代码并进行调试。

很简单,我想:只需从IronPython脚本加载插件DLL并执行它即可。确实可以,但是一旦加载,我就无法在Visual Studio中重新编译,因为DLL现在已加载到Revits AppDomain中。

我想起来很容易(在StackOverflow的帮助下):只需将DLL加载到新的AppDomain中即可。遗憾的是,RevitAPI对象不能编码到另一个AppDomain,因为它们不扩展MarshalByRefObject

我认为我可能正在使用卷影副本。 ASP.NET似乎正在执行此操作。但是,阅读MSDN上的文档后,似乎我只能在创建AppDomain时指定它。

我可以为当前(默认)AppDomain更改此设置吗?我可以强制它使用来自特定目录的DLL的卷影副本吗?

最佳答案

我不知道您要做什么,但是有一些不赞成使用的方法可以在当前AppDomain上打开ShadowCopy。

AppDomain.CurrentDomain.SetCachePath(@"C:\Cache");
AppDomain.CurrentDomain.SetShadowCopyPath(AppDomain.CurrentDomain.BaseDirectory);
AppDomain.CurrentDomain.SetShadowCopyFiles();

关于.net - 我可以使默认的AppDomain使用某些程序集的卷影副本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1373199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com