共用方式為


偵錯 Office 專案

您可以使用用於其他 Visual Studio 專案的相同 Microsoft Visual Studio 工具來偵錯 Office 專案。 當您偵錯 Office 專案時,也可以使用 Visual Studio 偵錯工具功能,例如在 [區域變數] 視窗中插入中斷點和檢視變數的能力。 如需 Visual Studio 偵錯工具的詳細資訊,請參閱 在 Visual Studio 中偵錯

小提示

若要簡化偵錯,請先關閉 Office 應用程式的任何啟動實例,再來建置與偵錯應用程式。

適用於: 本主題中的資訊適用於文件層級專案和 VSTO 增益集專案。 請參閱 Office 應用程式和專案類型提供的功能

備註

有興趣開發跨多個平台擴展 Office 體驗的解決方案嗎? 查看新的 Office 增益集模型。 相較於 VSTO 增益集和解決方案,Office 增益集的使用量很小,而且您可以使用幾乎任何 Web 程式設計技術來建置它們,例如 HTML5、JavaScript、CSS3 和 XML。

啟動和停止偵錯工具

您可以開始偵錯 Office 專案,就像開始偵錯其他 Visual Studio 專案一樣;例如,您可以按 F5 鍵。 當您開始偵錯 VSTO 增益集專案時,會啟動目標 Office 應用程式的新程式,並載入 VSTO 增益集。

當您開始偵錯文件層級專案時,文件或活頁簿會在新的 Word 或 Excel 程序中開啟。

當您停止偵錯工具時,偵錯工具會立即終止應用程式程序,或者如果您已將偵錯工具設定為分離,則會分離。 在已終止的 Office 應用程式程序中開啟的所有其他文件也會關閉,而不會發出警告,且任何未儲存的變更都會遺失。 這可能包括偵錯工具執行時開啟的所有文件或活頁簿。

一般而言,最好在停止偵錯工具之前從進程中斷連結,以便以正常方式結束 Office 應用程式。 您在停止偵錯工具後若仍想使用已開啟的檔案或工作表,也可以選擇先脫離程序。

如果您要偵錯 Word 的文件層級自定義,重複停止偵錯工具並導致 Word 突然關閉,可能會導致 [一般] 範本損毀。 如果發生這種情況,您可以刪除損壞的普通模板,下次打開 Word 時會自動重新創建它。 不過,儲存在「Normal 模板」中的任何巨集都不會被重新建立。

使用 Office 2013 或 Office 2016 進行 Office 2013 VSTO 增益集的偵錯

如果您使用 Visual Studio 2015,而且您已並存安裝兩個版本的 Office,Visual Studio 會啟動 Office 2016。 如果您使用 Visual Studio 2013,Visual Studio 會啟動 Office 2013。

如果您想要使用不同版本的 Office (2013 或 2016) 來偵錯 VSTO 增益集,請開啟 Project Designer,然後在 [偵錯] 索引標籤中,選擇 [ 啟動外部程式 ] 選項按鈕。 然後,瀏覽至適當 Office 應用程式可執行檔的位置。

F10 和 F11 行為

當您開始偵錯 Office 專案時, F10F11 的行為與您開始偵錯其他 Visual Basic 或 C# 專案時的行為不同。 在 Visual Basic 或 C# 專案中,偵錯工具會在 main 函式上停止;在 Office 專案中,Visual Studio 無法控制 Office 應用程式的主要功能。 不過,在偵錯期間, F10F11 確實具有與 Visual Basic 和 C# 專案相同的函式。

顯示例外狀況

由於受控程式碼與非受控程式碼互動的方式,Visual Studio 不會顯示 Microsoft Office 應用程式擲回的錯誤。 例如,如果在 Visual Studio 中使用 Office 開發工具建立的 VSTO 增益集擲回例外狀況,則 Microsoft Office 應用程式會繼續進行,而不會顯示錯誤。 若要查看這些錯誤,請將偵錯工具設定為在一般語言執行階段例外狀況時中斷。 如需詳細資訊,請參閱 使用偵錯工具管理例外狀況

如果您將偵錯工具設定為在一般語言執行階段例外狀況時中斷,則所有例外狀況現在都會中斷偵錯工具,包括您已處理的例外狀況,以及執行階段本身的一些第一次例外狀況,這些例外狀況可能與您的專案無關。 未找到 msosec 的錯誤會出現在每個專案中,但可以安全忽略。 這些 msosec 例外狀況不會影響您的解決方案。

您也可以使用 Try...Catch 陳述式圍繞您的方法來捕捉例外狀況。

根據預設,Visual Studio 也不會顯示 Office 專案的 Just-In-Time 偵錯錯誤;不過,您可以啟用此功能,以便查看引發的錯誤。 如需詳細資訊,請參閱 Visual Studio 中的 Just-In-Time 偵錯

命令列引數

如果 [偵錯] 屬性頁面上的 [啟動動作] 設定為 [啟動專案],則 Visual Studio 在偵錯專案時不會使用命令列引數,即使您已將命令列引數指定為啟動選項也一樣。 如果您想要在開始偵錯時使用命令列引數,您必須選取 [啟動動作] 以外的 [啟動專案]

源碼管理

偵錯屬性不會在原始檔控制下的多個使用者之間共用。 Visual Basic 和 C# 專案會將偵錯屬性儲存在使用者特定的檔案 (ProjectName.vbproj.user 或 ProjectName.csproj.user) 中,而且此檔案不受原始檔控制。 如果多人正在偵錯,則每個人都必須手動輸入偵錯屬性。

偵錯文件層級專案中的快取資料集

每次建置專案時,都會清空並重新建立資料集。 如果您想要偵錯快取的資料集,您必須在 Visual Studio 外部開啟文件,然後附加偵錯工具。

根據 Word 97-2003 文件 (*.doc) 格式偵錯 Word 文件專案

若要偵錯以 Word 97-2003 文件 (/.doc*) 格式為基礎的 Word 文件專案,您必須將專案資料夾新增至信任的資料夾清單。 如需如何執行此動作的詳細資訊,請參閱 授與信任文件

偵錯已停用的插件

Microsoft Office 應用程式可以停用行為異常的 VSTO 增益集。 Microsoft Office 應用程式會停用 VSTO 增益集,以防止每次應用程式啟動時載入有問題的程式碼。 在一般調試過程中,仍可能很容易產生非預期現象。 如需如何重新啟用 VSTO 增益集的相關資訊,請參閱 如何:重新啟用已停用的 VSTO 增益集

Microsoft Office 應用程式針對 VSTO 增益集使用兩種類型的停用:硬式停用和軟性停用。

硬性禁用

當 VSTO 增益集導致應用程式非預期關閉時,可能會發生硬性停用。 如果您在執行 VSTO 增益集中的事件處理常式時停止偵錯工具 Startup,也可能發生這種情況。 當 VSTO 增益集被硬性停用時,它會出現在應用程式的 [已停用的項目] 清單中。

如果 Office 應用程式硬式停用在 Visual Studio 中使用 Office 開發工具所建立的 VSTO 增益集,則應用程式只會停用造成失敗的 VSTO 增益集。 在 Visual Studio 中使用 Office 開發工具針對該 Office 應用程式建立的其他 VSTO 增益集將繼續載入。

軟性停用

當 VSTO 增益集產生錯誤且不會意外關閉應用程式時,可能會發生軟性停用。 例如,如果應用程式在事件處理常式執行時 Startup 擲回未處理的例外狀況,則可能會軟停用 VSTO 增益集。 當 VSTO 增益集被軟性停用時,它會出現在應用程式的 非作用中應用程式增益集 清單中,而且應用程式會變更 VSTO 增益集的 LoadBehavior 登錄項目值,以指出它已卸載。 如需 LoadBehavior 登錄專案的詳細資訊,請參閱 VSTO 增益集的登錄專案

使用事件檢視器疑難排解安裝錯誤

Visual Studio Tools for Office 執行階段會針對您安裝或解除安裝 Office 解決方案時擲回的所有例外狀況,將訊息寫入 Windows 中的事件檢視器。 您可以使用這些訊息來解決安裝及部署問題。

使用記錄檔和錯誤訊息來解決啟動錯誤

Visual Studio Tools for Office 執行階段可以將啟動期間發生的所有錯誤寫入記錄檔,或在訊息方塊中顯示每個錯誤。 依預設,這些選項會關閉。 您可以透過建立環境變數來開啟選項。

若要在訊息方塊中顯示每個錯誤,請建立名為 VSTO_SUPPRESSDISPLAYALERTS 的環境變數,並將其設定為 0 (零)。 您可以刪除環境變數或將其設定為 1 (一) 來隱藏訊息。

若要將錯誤寫入記錄檔,請建立名為 VSTO_LOGALERTS 的環境變數,並將其設定為 1 (一)。 Visual Studio Tools for Office 執行階段會在包含 VSTO 增益集部署資訊清單的資料夾中,或在包含與自訂相關聯之文件或活頁簿的資料夾中建立記錄檔。 如果失敗,Visual Studio Tools for Office 執行階段會在本機 %TEMP% 資料夾中建立記錄檔。 針對應用程式層級 VSTO 增益集,預設名稱為 增益集名稱.vsto.log。 對於文件層級專案,日誌檔的名稱是 文件名稱extension.log,例如 ExcelWorkbook1.xlsx.log。 若要停止記錄錯誤,請刪除環境變數或將其設定為 0 (零)。