如果我复制一个文件
File.Copy(src, dst);
然后加载副本
var asm = Assembly.LoadFile(dst);
为什么我的进程锁定了两个文件?
如果在加载目标文件之前删除源文件,然后将目标文件重新复制回源文件,我就可以得到想要的结果。但是删除和复制似乎有点多余。
File.Copy(src, dst);
File.Delete(src);
var asm = Assembly.LoadFrom(dst);
File.Copy(dst, src);
是的,我正在构建一个插件设计应用程序。是的,我可以使用AppDomains和Shadow Copy(http://msdn.microsoft.com/en-us/library/ms404279.aspx)。是的,我将不得不管理自己的类型缓存(因为每个程序集加载都会在我的AppDomain中提供不同的类型)。但这些并不是我的问题的答案。
注意,src和dst都是字符串。没有其他流打开文件。