我正在使用 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 库中的一个错误,我可以捕获异常并重试几次操作,尽管我希望有一个更干净的“解决方案”。