我们开发了一个小型 MMC 管理单元,用于安装应用程序的各种组件。特别是,它使用 System.EnterpriseServices.RegistrationHelper 向 COM+ 注册 .NET 程序集。逻辑很简单:首先,卸载现有程序集,然后复制新文件,然后安装新程序集。代码如下所示:
if (File.Exists(destination))
{
try
{
new RegistrationHelper().UninstallAssembly(destination, ComPlusHelper.ApplicationName);
}
catch (Exception ex)
{
Log.LogError(...);
}
}
File.Copy(source, destination, true);
但是,File.Copy 调用失败并显示错误“进程无法访问文件 xxxx,因为它正被另一个进程使用”。我花了一天时间阅读 MSDN 和谷歌搜索,但找不到解决方案。
有没有人有什么建议?