2011-04-12 51 views
2

我有一個使用Office PIA的Excel包裝類。我也有一個以前寫在NUnit上運行的有限測試套件。我們正在工作中遷移到TFS2010,所以我也將NUnit測試遷移到MSTest。在Team Build 2010下運行鍼對Excel的單元測試的異常

測試套件在我的開發機器上運行良好,並且如果在運行構建代理的機器上使用MSTest命令行實用程序手動執行。但是,當通過Team Build執行時,所有與磁盤I/O(打開,保存等)有關的測試都會失敗。我的構建代理正在域帳戶上運行,並且該域帳戶也是同一臺計算機上的本地管理員。少數不做任何磁盤I/O的測試運行良好,所以我知道Excel正在被解僱和可用。只是看起來像一個權限問題或團隊建設過程的限制。

所以這裏是一個示例函數。這就是我認爲這是Excel I/O問題的原因。 File.Exists檢查傳遞正常。我在測試運行中沒有收到FileNotFoundException,而是直接從Interop層收到COMException。

public void OpenXLS(string workbookFilePath) 
{ 
    // Make sure given file path exists 
    if (!File.Exists(workbookFilePath)) 
    { 
     throw new FileNotFoundException(String.Format(CultureInfo.CurrentCulture, 
     "File '{0}' cannot be found.", workbookFilePath)); 
    } 

    // Open the Workbook 
    _xlsWorkbook = _xlsWorkbooks.Open(workbookFilePath, 0, false, Missing.Value, 
     "", Missing.Value, true, Missing.Value, Missing.Value, true, false, 
     Missing.Value, Missing.Value, Missing.Value, Missing.Value); 
} 

例外:

System.Runtime.InteropServices.COMException: Microsoft Excel cannot access the file 
'C:\BuildPath\TestResults\TestRun\Out\TestBook.xls'. There are several possible reasons: 

• The file name or path does not exist. 
• The file is being used by another program. 
• The workbook you are trying to save has the same name as a currently open 
+0

請發佈您收到的全部例外。 – 2011-04-15 20:05:27

回答

4

我有類似的問題,這個解決方案爲我工作: http://blogs.msdn.com/b/sqlserverfaq/archive/2010/04/30/unable-to-open-excel-files-using-a-cscript-in-sql-server-jobs.aspx

A「桌面」文件夾,似乎就要在「systemprofile」文件夾中。

  • 創建下轉位置C的Windows 2008服務器(x64)的「桌面」文件夾:\ WINDOWS \ Syswow64資料\ CONFIG \ systemprofile

  • 而對於一個32位的Windows 2008 Server中創建了「桌面「文件夾下的位置C:\ Windows \ System32 \ config \ systemprofile

+0

請在您的回答中引用相關的解析行。博客文章似乎隨着時間消失;) – oleschri 2011-05-24 11:39:18

+0

@agnes感謝您的答案!看起來像完全相同的例外。我明天會在我的構建服務器上試試這個。 – harlam357 2011-10-28 02:25:44

0

Harlam357,你讓我的一天!

但是,即使在64位的機器上,您也需要在C:\ Windows \ System32 \ config \ systemprofile中創建「Desktop」文件夾。我已經在兩個目錄中創建它以確保。並且不要忘記完全控制服務帳戶,也許這是必要的。

相關問題