我正在嘗試編寫一個測試,在它的固件安裝程序中,它備份了一個文件並刪除了原始文件,運行測試時沒有原始存在,然後在拆卸過程中從備份中恢復原始文件。該文件位於我的%ProgramFiles%文件夾中。我在fileInfo.Delete()語句中得到一個UnauthorizedAccessException。從沒有從Resharper Test Runner運行的同一臺機器上的另一個測試項目中刪除此文件沒有問題。爲什麼我無法通過Resharper的測試運行器單元測試從單元測試中刪除%ProgramFiles%中的文件?
我無法將文件移動到其他地方 - 它是ssapi.dll,一個安裝的Visual SourceSafe dll。 (是的,我在單元測試中做了一些侵入性操作。)
這兩個方法都是同一個用戶(我) - 我通過任務管理器進行了檢查。我的用戶帳戶是本地管理員組的成員。還有哪些其他因素決定了我的「授權」來對文件進行操作?
已解決:雖然它沒有回答我原來的問題(我仍然想知道答案),但我已經找到了解決方法,用於測試目的,使用System.Security.Permissions framewok,做在需要文件(用於Interop調用)的應用程序(非測試)代碼中需要FileIOPermissionAccess.Read,並且在該代碼的測試中需要相同的拒絕代碼,該代碼需要該文件不存在的情況。這應該現在工作(我喜歡瞭解一些關於System.Security.Permissions命名空間)!