【问题标题】:Assembly.LoadFrom locks assembly fileAssembly.LoadFrom 锁定程序集文件
【发布时间】:2011-02-20 21:41:31
【问题描述】:

参考这个问题:System.Reflection.Assembly.LoadFile Locks File
System.IO.File.ReadAllBytes(path) 不会工作,因为它不是一个独立的库,它有很多依赖项。 此解决方案 (http://www.eggheadcafe.com/software/aspnet/35494668/shadow-copies-how.aspx) 也不起作用,因为我正在编写 Visual Studio 插件,并且无法访问 Main 方法。 这里的第二个答案(Can I make the default AppDomain use shadow copies of certain assemblies?)也不起作用,因为评论中描述的问题,我需要能够反复重新加载给定的程序集并始终看到最新版本,但我仍然 必须能够在不退出运行我的插件的 Visual Studio 实例的情况下重建程序集

我有什么选择?

【问题讨论】:

  • 祝你好运,一定要穿防弹背心,你要去一个危险的街区。
  • 使用两个 Visual Studio 实例,一个用于构建,另一个用于测试。根据需要重新启动第二个。
  • 当前使用一种解决方法:将加载程序集的代码移动到控制台 exe 中,并将 exe 复制到固定位置(从插件配置设置),然后我在该固定位置调用 AppDomain.ExecuteAssembly位置,然后卸载该 AppDomain ...(并且该 appdomain 使用 shadowcopy 只是为了安全:))

标签: .net visual-studio-2010 reflection add-in


【解决方案1】:

我原来的评论变成了永久解决方案:
将加载程序集的代码移动到控制台 exe 中,并将 exe 复制到固定位置(从插件配置设置),我正在调用 AppDomain.ExecuteAssembly在那个固定位置,然后卸载那个 AppDomain...(并且那个 appdomain 使用 shadowcopy 只是为了安全:))

【讨论】:

    猜你喜欢
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多