共用方式為


VSS 轉換器疑難排解

更新:2007 年 11 月

本節包含一些在您使用 VSS 轉換器從 Microsoft Visual SourceSafe 2005 移轉至 Team Foundation 版本控制時可能會遇到之常見問題的疑難排解資訊。

在本節中

磁碟空間限制

已註冊的 Ssapi.dll 版本錯誤

由於 VSS 損毀和 IVSS 問題,導致無法移轉檔案和資料夾版本

VSS 轉換器不支援所有 Visual SourceSafe 案例

Team Foundation 資料層在移轉過程中用完了磁碟空間

VSS 轉換器已停止

執行 VSS 轉換器之使用者的密碼已逾期

開啟已移轉方案檔時顯示錯誤訊息

磁碟空間限制

如果執行 VSS 轉換器所在的電腦已經或即將用完磁碟空間,就會顯示下列錯誤:

VSS Error: Disk out of space

方案

  • 進行移轉過程中,VSS 轉換器會將檔案下載至系統磁碟機上的本機資料夾,然後將它們上載至 Team Foundation。此外,VSS 轉換器需要一些磁碟空間來儲存 SQL Express 的記錄檔、報告檔和中繼資料。

  • 如果您發現磁碟空間很少,可以按下 Ctrl-C 停止移轉。然後,您可以使用累加移轉功能,從停止的時間點重新啟動移轉作業。不過,您必須先在系統磁碟機上建立其他磁碟空間,然後再重新啟動移轉作業。

  • 如果沒有可用的磁碟空間,您就會發現系統移轉了大小為零的檔案。在此情況下,您必須按下 Ctrl+C 停止移轉,然後重新開始移轉作業。

  • 我們建議您在執行移轉的磁碟機上保持 10GB 的可用磁碟空間。

已註冊的 Ssapi.dll 版本錯誤

如果已註冊的 ssapi.dll 版本錯誤,VSS 轉換器就會當機並顯示下列錯誤:

Unable to cast COM object of type 'Microsoft.VisualStudio.SourceSafe.Interop.VSSDatabaseClass' to interface type 'Microsoft.VisualStudio.SourceSafe.Interop.IVSSDatabase'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{2A0DE0EE-2E9F-11D0-9236-00AA00A1EB95}' failed with HRESULT: 0x80004002 (No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))). Unhandled exception caught.

此外,即使已經安裝 Microsoft Visual SourceSafe 2005,VSS 轉換器仍會顯示「VSS 轉換器需要有 Microsoft Visual SourceSafe 2005 (含) 更新版本」或「未安裝 Microsoft Visual SourceSafe 2005」錯誤訊息。

方案

VSS 轉換器會要求在執行移轉的電腦上安裝 Microsoft Visual SourceSafe 2005 (含) 更新版本。如果除了 Microsoft Visual SourceSafe 2005 以外,您還安裝了舊版 Visual SourceSafe,可能也會遇到這個問題。當系統已註冊了舊版 ssapi.dll 而非 Microsoft Visual SourceSafe 2005 隨附的 ssapi.dll 時,就會發生這個問題。若要解決此問題,請解除安裝舊版 Visual SourceSafe 和 Microsoft Visual SourceSafe 2005,然後單獨重新安裝 Microsoft Visual SourceSafe 2005。

由於 VSS 損毀和 IVSS 問題,導致無法移轉檔案和資料夾版本

如果由於 Visual SourceSafe 損毀和 IVSS 問題,導致無法移轉檔案和資料夾版本,您可能會在報告檔中看見許多錯誤和資料遺失的警告。這是因為發生了下列其中一個或兩個錯誤:

  • Visual SourceSafe 的提示版本與 Team Foundation 的提示版本不符。

  • Visual SourceSafe 中與某個標籤相關聯的檔案和資料夾版本未與 Team Foundation 中的檔案和資料夾版本完全相符。

方案

  • 長時間使用 Visual SourceSafe 之後,它會易於損毀。這個損毀可能會導致 VSS 轉換器無法移轉某些檔案和資料夾版本。VSS 轉換器會使用 IVSS API 來存取 Visual SourceSafe 資料庫,而 Visual SourceSafe UI 和命令列則不會使用 IVSS。在少數情況下,雖然您可以透過 UI 或命令列來擷取 Visual SourceSafe 版本,但是無法透過 IVSS 來擷取這些版本。這種檔案和資料夾版本的移轉作業可能會失敗。

  • 順利移轉之後,您應該使用 WinDiff 工具這類檔案比較公用程式,比較 Visual SourceSafe 中最新的檔案和資料夾版本與 Team Foundation 版本控制中最新的已移轉檔案和資料夾版本。如果您發現這些檔案和資料夾版本之間有任何差異,請手動移轉最新的版本。

    注意事項:

    進行移轉之後,就沒有任何方法可讓 Visual SourceSafe 中與某個標籤相關聯的檔案和資料夾版本與 Team Foundation 版本控制中的檔案和資料夾版本相符。

VSS 轉換器不支援所有 Visual SourceSafe 案例

VSS 轉換器不支援 Visual SourceSafe 中的所有案例或動作順序。如果提示或標籤不符,您可能會在報告檔中看見許多錯誤,也可能一個錯誤都沒有。在檢查已移轉的檔案和資料夾時,您可能會看見下列其中一種情況:

  • Visual SourceSafe 的提示版本與 Team Foundation 版本控制的最新版本不符。

  • Visual SourceSafe 中與某個標籤相關聯的檔案和資料夾版本未與 Team Foundation 版本控制中的檔案和資料夾版本完全相符。

  • 檔案和資料夾使用錯誤的名稱進行移轉。

VSS 轉換器不支援的部分 Visual SourceSafe 案例包括:

  • 檔案或資料夾已多次重新命名並移動。

  • 已封存的資料夾還原至位於相同或不同 Visual SourceSafe 資料庫中的另一個資料夾。

  • 時區問題可能會導致問題發生。VSS 轉換器會修正其中某些可能的時區問題。不過,它無法修正所有問題。如需時區問題的詳細資訊,請參閱 Microsoft 知識庫文章<BUG:在多個時區使用 SourceSafe>(https://go.microsoft.com/fwlink/?LinkId=59976)。

方案

順利移轉之後,您應該使用 WinDiff 工具這類檔案比較公用程式,比較 Visual SourceSafe 中最新的檔案和資料夾版本與 Team Foundation 版本控制中最新的已移轉檔案和資料夾版本。如果您發現這些檔案或資料夾版本之間有任何差異,請手動移轉最新的版本。

注意事項:

進行移轉之後,就沒有任何方法可讓 Visual SourceSafe 中與某個標籤相關聯的檔案和資料夾版本與 Team Foundation 版本控制中的檔案和資料夾版本相符。

Team Foundation 資料層在移轉過程中用完了磁碟空間

如果 Team Foundation 資料層在移轉過程中用完了磁碟空間,就會在主控台 (Console) 上重複顯示下列錯誤:

  • 無法移轉至 Team Foundation 錯誤: SQL 錯誤 xxxx 磁碟空間不足。

  • Team Foundation 未回應。重試中...

  • 無法移轉至 Team Foundation 錯誤: SQL 錯誤 xxxx 異動記錄檔已滿。TF30042: 資料庫已滿。請聯絡您的 Team Foundation Server 系統管理員。

方案

原始檔控制資料會儲存在 Team Foundation 資料層上。由於 VSS 轉換器會在數小時或數天的期間內移轉數月或數年的記錄,所以資料層有時候會用完磁碟空間。

  • 您可以使用累加移轉功能,從停止的那一點重新開始移轉。如需詳細資訊,請參閱 HOW TO:累加移轉至 Team Foundation。不過,您必須先在資料層上建立其他磁碟空間,然後再重新啟動移轉作業。

  • 如果異動記錄檔 (Transaction Log) 已滿,您就必須透過刪除其內容來加以清除。

    重要事項:

    請先備份異動記錄檔,然後再加以清除。

VSS 轉換器已停止

VSS 轉換器可能會停止的原因包括當機,或者執行 VSS 轉換器所在的電腦由於停電、安全性更新或其他原因而重新啟動。

方案

您可以使用累加移轉功能,從停止的那一點重新開始移轉。如需詳細資訊,請參閱 HOW TO:累加移轉至 Team Foundation。不過,您必須檢查 VSS 轉換器失敗是暫時或永久的問題。如果這是永久的問題,您就必須手動修正在 Visual SourceSafe 中導致失敗之項目的記錄。

執行 VSS 轉換器之使用者的密碼已逾期

如果使用者密碼已逾期,就會重複顯示「Team Foundation 未回應。重試中...」的訊息。此外,記錄檔會針對未授權存取或使用權限遭拒的錯誤,列出 SoapException。

方案

如果用來執行 VSS 轉換器之使用者識別的密碼已逾期,請按下 Ctrl+C 停止移轉。然後,登出並使用新密碼重新登入。您可以使用累加移轉功能,從停止的那一點重新開始移轉。如需詳細資訊,請參閱 HOW TO:累加移轉至 Team Foundation

開啟已移轉方案檔時顯示錯誤訊息

如果已移轉檔案的原始檔控制繫結尚未更新,則當使用者嘗試開啟繫結至 Visual SourceSafe 資料庫的方案檔時,就會顯示一則錯誤訊息。

方案

VSS 轉換器不會變更方案檔中的原始檔控制繫結資訊。因此,方案檔仍會從 Team Foundation 繫結至 Visual SourceSafe。

若要更正此錯誤,您必須將原始檔控制繫結從 Visual SourceSafe 移轉至 Team Foundation 版本控制。如需詳細資訊,請參閱 HOW TO:從 Visual SourceSafe 移轉原始檔控制繫結

注意事項:

此外,開啟方案檔時,您可能也會遇到由暫時網路問題或者 Team Foundation Server 停機所造成的問題。

請參閱

工作

逐步解說:從 Visual SourceSafe 移轉至 Team Foundation

概念

從 Visual SourceSafe 移轉