Ich versuche, einen Test zu schreiben, der in seiner Einrichtung Setup eine Datei sichert und löscht das Original, führt den Test ohne das Original vorhanden, dann im Teardown, stellt das Original aus dem Backup. Die Datei befindet sich in meinem Ordner% ProgramFiles%. Ich erhalte eine UnauthorizedAccessException für die Anweisung fileInfo.Delete(). Ich habe kein Problem damit, diese Datei von einem anderen Testprojekt auf demselben Rechner zu löschen, das nicht vom Resharper Test Runner läuft.Warum kann ich eine Datei in% ProgramFiles% nicht von einem Komponententest über Resharper's Test Runner Unit Test löschen?
Ich kann die Datei woanders bewegen - es ist ssapi.dll, eine installierte DLL für Visual Source. (Ja, ich bin etwas invasive in einem Unit-Test zu tun.)
Es ist der gleiche Benutzer (me) für beiden Wege - ich habe es über die Task-Manager. Mein Benutzerkonto ist Mitglied der lokalen Administratorgruppe. Welche anderen Faktoren bestimmen meine "Autorisierung", etwas mit einer Datei zu tun?
BEHOBEN: Obwohl es meine ursprüngliche Frage nicht beantwortet (auf die ich immer noch die Antwort wissen möchte), habe ich eine Ausweichlösung für meine Testzwecke gefunden, die System.Security.Permissions framewok verwendend, a Anforderung für FileIOPermissionAccess.Lesen Sie den App-Code (Nicht-Test), der die Datei benötigt (für einen Interop-Aufruf), und einen Deny für denselben im Test dieses Codes, der ein Szenario erfordert, dass diese Datei nicht vorhanden ist. Dies sollte jetzt funktionieren (und ich liebe es, ein wenig über den Namespace System.Security.Permissions gelernt zu haben)!