アプリケーションのさまざまなコンポーネントをインストールする小さな MMC スナップインを開発しました。具体的には、System.EnterpriseServices.RegistrationHelper を使用して .NET アセンブリを COM+ に登録します。ロジックは単純です。最初に既存のアセンブリをアンインストールし、次に新しいファイルをコピーしてから、新しいアセンブリをインストールします。コードは次のようになります。
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 とグーグルを読んで一日を過ごしましたが、解決策が見つかりませんでした。
誰か提案はありますか?