Office 方案部署疑難排解
適用於: Visual Studio
本文介紹如何解決部署 Office 解決方案時可能會遇到的常見問題。
本文中的資訊適用於文件層級專案和 Visual Studio Tools for Office (VSTO) 載入巨集專案。 請參閱依 Office 應用程式和專案類型提供的功能。
使用事件查看器對 Office 解決方案進行疑難解答
您可以使用 Windows 中的事件查看器,在安裝或卸載 Office 解決方案時,查看 Visual Studio Tools for Office 運行時間所擷取的錯誤訊息。 您可以使用事件記錄器的這些訊息,解決安裝和部署問題。 如需詳細資訊,請參閱 Office 解決方案的事件記錄。
變更元件名稱會導致衝突
如果您在部署方案之後,在 [項目設計工具] 的 [應用程式] 頁面中變更 [元件名稱] 值,發佈工具會修改安裝程式套件,讓一個Setup.exe檔案和兩個部署指令清單。 如果您部署兩個資訊清單檔案,就可能發生下列狀況:
- 如果使用者兩個版本都安裝,應用程式就會載入兩個 VSTO 增益集。
- 如果先安裝了 VSTO 增益集才變更組件名稱,使用者永遠都收不到更新。
若要避免這些情況,請勿在部署方案之後變更方案的 元件名稱 值。
檢查更新需要很長的時間
Visual Studio 2010 Tools for Office 運行時間提供登錄專案,系統管理員可用來設定下載指令清單和解決方案的逾時值。
如何設定逾時值
在登錄中,瀏覽至下列機碼:
HKEY_CURRENT_USER\Software\Microsoft\VSTA
在 AddInTimeout 子機碼中,將逾時值設定為毫秒。
如果沒有 AddInTimeout 子機碼,請將其建立為 DWORD。
無法更新或發佈至網路檔案共用
如果 解決方案的 Setup.exe檔案在更新發佈時鎖定在進程中,網路檔案共用上的 Office 解決方案可能會在更新期間顯示誤導性訊息。 訊息內容可能是:「無法將 'setup.exe' 加入 Web。 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.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 應用程式 lication、檔或活頁簿,可能會顯示下列條件的錯誤訊息:
- 找不到方法。
- MissingMethodException。
- 無法攔截的例外狀況。
若要避免這些錯誤訊息,請執行安裝程式安裝解決方案。
當您安裝解決方案卻沒有執行安裝程式時,安裝程式不會檢查或安裝必要條件。 安裝程式會檢查必要條件的正確版本,並視需要加以安裝。
建置 InstallShield Limited Edition 項目之後,載入巨集的指令清單登錄機碼會變更
當您建置 InstallShield Limited Edition 專案時,屬於 VSTO 載入巨集安裝程式一部分的指令清單登錄機碼有時會從 .vsto 變更為 .dll.manifest 。
若要解決這個問題,請在不同的解決方案中建立 InstallShield 限量版專案,或使用 CompanyName.AddinName 當做包含 VSTO 增益集名稱的登錄機碼值。
Office 解決方案的 ClickOnce 安裝程式不會安裝主要 Interop 元件
當您執行 ClickOnce 為 Office 解決方案建立的安裝程式時,只有在未安裝任何主要 interop 組件 (PIA) 的情況下,Office PIA 的安裝程式才會執行。
如果安裝程式未正確安裝 PIA,請從安裝目錄執行名為 o2007pia.msi 的安裝程式檔案,手動安裝它們。
重新安裝 Office 解決方案會導致自變數超出範圍例外狀況
當您重新安裝 Office 解決方案時,可能會出現 ArgumentOutOfRangeException 例外狀況及下列錯誤訊息:指定的引數超出有效值的範圍。
如果安裝位置的 URL 大小寫不同,就會發生這種情況。 例如,如果您第一次安裝 Office 解決方案 http://fabrikam.com/ExcelSolution.vsto
,然後第二次使用 http://fabrikam.com/excelsolution.vsto
,就會顯示此錯誤。
若要防止訊息出現,請在安裝 Office 解決方案時使用相同的大小寫。
無法藉由從 Web 開啟部署指令清單來安裝 ClickOnce 解決方案
使用者可以從 Web 開啟部署資訊清單,藉以安裝 Office 解決方案。 不過,某些 網際網路資訊服務 安裝會封鎖 .vsto 擴展名。 您必須先在 IIS 中定義 MIME 類型,再用它部署 Office 解決方案。
如需如何在 IIS 7 中定義 MIME 類型的資訊,請參閱 新增 MIME 類型 (IIS7) 。
將副檔名設為 .vsto ,MIME 類型設為 application/x-ms-vsto。