【发布时间】:2014-12-03 11:04:43
【问题描述】:
我想从一个目录加载所有 *.dll 文件,并将每个 *.dll 文件的日期与Datetime.Now进行比较
我为此使用组装工厂:
Assembly assembly = Assembly.LoadFile(path);
try
{
var myTypes = assembly.GetTypes();
foreach (var myType in myTypes)
{.....}
}
问题是当我想用新的 *.dll 文件替换当前的 *.dll 文件时,我收到错误:*.dll 文件被其他进程使用(我的程序集)
所以我想在另一个域上运行我的汇编程序,当我取消这个域时,我的 *.dll 文件将是免费的。
感谢您的帮助。
【问题讨论】:
-
您想在运行时检测更改吗?
-
对不起,我不明白,但我想获取我目录中的所有 Dll 文件,并在 ListView 中显示每个 Dll 文件的类型,然后单击我想替换当前的 dll使用新的 dll 文件创建文件,但问题是 dll 文件被程序集使用,所以我必须先杀死程序集,然后才能处理我的文件
-
@KernelMed 当然是用过的,你通过加载它来使用它。
-
那么有什么办法可以解决呢?
-
你不能从使用这个 dll 的程序中替换 dll。
标签: c# dll reflection .net-assembly