参考这个问题:System.Reflection.Assembly.LoadFile Locks File
System.IO.File.ReadAllBytes(path)不会工作,因为它不是一个独立的lib,它有很多依赖项。
此解决方案(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实例的情况下重建程序集。
我有什么选择?
答案 0 :(得分:0)
我的原始评论转为永久解决方案:
将加载程序集的代码移动到控制台exe中,并将exe复制到固定位置(从addin config设置),然后在该固定位置调用AppDomain.ExecuteAssembly,然后卸载该AppDomain ...(并且该appdomain使用shadowcopy只是为了安全:))