フィクスチャのセットアップで、ファイルをバックアップしてオリジナルを削除し、オリジナルを存在させずにテストを実行し、ティアダウンでバックアップからオリジナルを復元するテストを作成しようとしています。ファイルは %ProgramFiles% フォルダーにあります。fileInfo.Delete() ステートメントで UnauthorizedAccessException が発生します。Resharper テスト ランナーから実行されていない同じマシン上の別のテスト プロジェクトからこのファイルを削除しても問題ありません。
ファイルを別の場所に移動することはできません。これは、Visual SourceSafe 用にインストールされた dll である ssapi.dll です。(はい、単体テストで侵略的なことをしています。)
どちらの方法でも同じユーザー(私)です-タスクマネージャーで確認しました。私のユーザー アカウントは、ローカルの Administrators グループのメンバーです。ファイルで何かを行うための「承認」を決定する他の要因は何ですか?
解決済み:元の質問 (まだ回答を知りたい) に対する回答ではありませんが、System.Security.Permissions フレームワークを使用して、FileIOPermissionAccess のデマンドを実行することで、テスト目的の回避策を見つけました。 (相互運用呼び出し用に) ファイルを必要とするアプリ (非テスト) コードを読み取り、そのファイルが存在しないというシナリオを必要とするそのコードのテストで同じことを拒否します。これは今のところうまくいくはずです (そして、System.Security.Permissions 名前空間について少し学んだことを嬉しく思います)!