共用方式為


針對 Office 解決方案部署進行疑難解答

適用於: Visualstudio

本文介紹如何解決部署 Office 解決方案時可能會遇到的常見問題。

本文中的資訊適用於檔層級專案和 Visual Studio Tools for Office (VSTO) 載入宏專案。 請參閱 Office 應用程式和項目類型提供的功能

使用事件查看器對 Office 解決方案進行疑難解答

您可以使用 Windows 中的事件查看器,查看安裝或卸載 Office 解決方案時,Visual Studio Tools for Office 運行時間所擷取的錯誤訊息。 您可以從事件記錄器使用這些訊息來解決安裝和部署問題。 如需詳細資訊,請參閱 Office 解決方案的事件記錄

變更元件名稱會導致衝突

如果您在已部署方案之後,於 [專案] Designer 的 [應用程式] 頁面中變更 [元件名稱] 值,則發佈工具會修改安裝程式套件,以取得一個Setup.exe 檔案和兩個部署指令清單。 如果您部署兩個指令清單檔案,可能會發生下列情況:

  • 如果終端使用者安裝這兩個版本,應用程式將會載入這兩個 VSTO 載入宏。
  • 如果 VSTO 載入宏是在元件名稱變更之前安裝的,終端使用者將永遠不會收到更新。

若要避免這些情況,請勿在部署方案之後變更解決方案的 元件名稱 值。

檢查更新需要很長的時間

Visual Studio 2010 Tools for Office 運行時間提供登錄專案,供系統管理員用來設定下載指令清單和解決方案的逾時值。

如何設定逾時值

  1. 在登錄中,流覽至下列機碼:

    HKEY_CURRENT_USER\Software\Microsoft\VSTA

  2. AddInTimeout 子機碼中,以毫秒為單位設定逾時值。

    如果 AddInTimeout 子機碼不存在,請將其建立為 DWORD。

無法更新或發佈至網路檔案共用

如果解決方案的 Setup.exe檔案在 發佈更新時鎖定在進程中,則位於網路檔案共用上的 Office 解決方案可能會在更新期間顯示誤導訊息。 此訊息可能會顯示下列內容:「無法將 『setup.exe』 新增至 Web。 檔案 'setup.exe' 已經存在於此網站中。」

若要協助防止檔案鎖定,您可以將共用設為唯讀給使用者。 不過,如果檔位於共用上,使用者也會變成只讀。

未安裝 Microsoft Office 的必要條件

您可以將 .NET Framework、Visual Studio Tools for Office 運行時間和 Office 主要 Interop 元件新增至安裝程式套件,作為與 Office 解決方案一起部署的必要條件。 如需如何安裝主要 Interop 元件的資訊,請參閱設定 計算機以開發 Office 解決方案如何:安裝 Office 主要 Interop 元件

使用 Localhost 發佈可能會導致安裝問題

當您使用 http://localhost 作為檔層級解決方案的發佈或安裝位置時,發佈精 靈不會將 字元串轉換成實際的計算機名稱。 在此情況下,解決方案必須安裝在開發計算機上。 若要讓部署的解決方案在開發計算機上使用 IIS,請使用所有 HTTP/HTTPS/FTP 位置的完整名稱,而不是 localhost。

快取的元件會載入,而不是更新的元件

Fusion 是 .NET Framework元件載入器,會在專案輸出路徑位於網路檔案共享時載入元件的快取複本、使用強名稱簽署元件,而且自定義的元件版本不會變更。 如果您更新符合這些條件的元件,下次執行專案時不會顯示更新,因為已載入快取的複本。

您可以設定 Visual Studio,讓 Fusion 在每次執行專案時都會下載元件。

如何下載元件,而不是載入快取的複本

  1. 在功能表欄上,選取 [專案]、[ <ProjectName> 屬性]
  2. 在 [ 應用程式] 頁面上,選取 [ 元件資訊]
  3. 元件版本的修訂編號第三個字段設定為通配符 (*) 。 例如,“1.0.*”。 然後選取 [ 確定] 按鈕。

變更元件版本之後,您可以繼續以強名稱簽署元件,Fusion 將會載入最新版的自定義。

注意事項

從 Visual Studio 2017 開始,如果您嘗試在元件版本中使用通配符,則會發生建置錯誤。 這是因為元件版本中的通配符會中斷 MSBuild 決定性功能。 系統會指示您從元件版本移除通配符,或停用決定性。 若要深入瞭解決定性功能,請參閱: 常見的 MSBuild 專案屬性自定義您的組建

當 URI 的字元不是 US-ASCII 時,安裝會失敗

當您將 Office 解決方案發佈至 HTTP/HTTPS/FTP 位置時,路徑不能有任何不在 US-ASCII 中的 Unicode 字元。 這類字元可能會在安裝程式中造成不一致的行為。 使用US-ASCII 字元作為安裝路徑。

當您在開發計算機上發佈並安裝解決方案時,會出現手動卸載的提示

當您建置 Office 解決方案時,會自動註冊建置的版本。 如果您先前已在開發計算機上發佈並安裝相同的解決方案,Visual Studio Tools for Office 運行時間會偵測到在下一次建置、重建或發佈解決方案之後,已發行版本和建置版本的安裝路徑不同。 錯誤訊息指出「無法安裝自定義專案,因為目前已安裝另一個版本,無法從此位置升級」。每次重建解決方案時,都會更新登錄機碼。 因此,您必須先卸載舊版,才能發佈、偵錯或執行新版本。

若要防止訊息出現,請在開發計算機上建立另一個使用者帳戶來測試您的部署。 或者,您可以在下次發佈、偵錯或重建解決方案之前,先從計算機上已安裝的程式清單卸載版本。

安裝解決方案時發生未攔截的例外狀況或找不到方法錯誤

當您在 .vsto 檔案) 、Office 應用程式、檔或活頁簿 (開啟部署指令清單來安裝 Office 解決方案時,可能會出現下列條件的錯誤訊息:

  • 找不到方法。
  • MissingMethodException。
  • 未攔截例外狀況。

若要防止這些錯誤訊息,請執行安裝程式來安裝解決方案。

當您在未執行安裝程式的情況下安裝解決方案時,安裝程式不會檢查或安裝必要條件。 安裝程式會檢查必要條件的正確版本,並視需要加以安裝。

建置 InstallShield Limited Edition 項目之後,載入宏的指令清單登錄機碼會變更

當您建置 InstallShield Limited Edition 專案時,屬於 VSTO 載入宏安裝程式的指令清單登錄機碼有時會從 .vsto 變更為 .dll.manifest

若要解決此問題,請在不同的解決方案中建立 InstallShield Limited Edition 專案,或使用 CompanyName.AddinName 作為包含 VSTO 載入宏名稱的登錄機碼值。

Office 解決方案的 ClickOnce 安裝程式不會安裝主要 Interop 元件

當您執行 ClickOnce 為 Office 解決方案建立的安裝程式時,Office 主要 Interop 元件 (PIA 的安裝程式只會在尚未安裝任何 PI) A 時執行。

如果安裝程式未正確安裝 PIA,請從安裝目錄執行名為 o2007pia.msi 的安裝程式檔案,以手動安裝它們。

重新安裝 Office 解決方案會導致自變數超出範圍例外狀況

當您重新安裝 Office 解決方案時,可能會出現例外狀況, ArgumentOutOfRangeException 並出現下列錯誤訊息:指定的自變數超出有效值的範圍。

如果安裝位置的 URL 大小寫不同,就會發生這種情況。 例如,如果您從第一次安裝 Office 方案 http://fabrikam.com/ExcelSolution.vsto ,然後第二次使用 http://fabrikam.com/excelsolution.vsto ,就會出現此錯誤。

若要防止訊息出現,請在安裝 Office 解決方案時使用相同的大小寫。

無法從 Web 開啟部署指令清單來安裝 ClickOnce 解決方案

用戶可以從 Web 開啟部署指令清單來安裝 Office 解決方案。 不過,某些 Internet Information Services (IIS 安裝) 封鎖 .vsto 擴展名。 您必須先在 IIS 中定義 MIME 類型,才能使用它來部署 Office 解決方案。

如需如何在 IIS 7 中定義 MIME 類型的詳細資訊,請參閱 新增 MIME 類型 (IIS7)

將延伸模組設定為 .vsto ,並將MIME類型設定為 application/x-ms-vsto

參考資料