3

我正在使用 Windows 7 的Shell Libraries覆盖现有库并向其添加新路径,使用可通过Windows API Code Pack 1.1获得的托管包装器。

时不时地,我似乎无法以任何方式重现这一点,COMException在将路径添加到库时会抛出 a:

System.Runtime.InteropServices.COMException (0x80070497): Unable to remove the file to be replaced. (Exception from HRESULT: 0x80070497)
   at Microsoft.WindowsAPICodePack.Shell.IShellLibrary.Commit()
   at ... (local code from here on out)

代码非常简单。该Add方法引发错误。

using ( var activityContext = new ShellLibrary( LibraryName, true ) )
{
    Array.ForEach( dataPaths, p => activityContext.Add( p.LocalPath ) );
}

是否存在可以重现/测试此异常的特定情况?

假设这是 shell 库中的一个错误,我可以捕获异常并重试几次操作,尽管我希望有一个更干净的“解决方案”。

4

0 回答 0