共用方式為


將類型公開至視覺化設計工具

Visual Studio 必須能夠存取設計階段的類別和類型定義,才能顯示視覺化設計工具。 類別是從一組預定義的組件載入的,這些組件包括目前專案的完整相依性集 (參考及其相依性)。 視覺化設計工具可能也需要存取自訂工具所產生文件中定義的類別和類型。

Visual Basic 和 Visual C# 專案系統支援透過暫時可攜式執行檔 (暫時 PE) 存取產生的類別和類型。。 自訂工具產生的任何檔案都可以編譯到暫存組件中,以便可以從這些組件載入類型,並公開給設計工具。 每個自訂工具的輸出都會編譯成個別的暫時 PE,而此暫時編譯的成功或失敗只取決於產生的檔案是否可以編譯。 雖然專案可能不是整體建置,但個別的暫時 PES 仍可供設計工具使用。

專案系統提供追蹤自訂工具輸出檔案變更的完整支援,前提是這些變更是執行自訂工具的結果。 每次執行自訂工具時,都會產生新的暫時 PE,並向設計工具傳送適當的通知。

注意

因為暫時程式可執行產生檔案是在背景發生的,因此如果編譯失敗,不會向使用者回報任何錯誤。

利用暫時 PE 支援的自訂工具必須遵循以下規則:

  • GeneratesDesignTimeSource 必須在登錄中設定為 1。

    沒有此設定,就不會進行任何程式可執行檔案編譯。

  • 產生的程式碼必須與全域專案設定使用相同的語言。

    如果登錄中的 GeneratesDesignTimeSource 設定為 1,則無論自訂工具在 DefaultExtension 中報告的要求副檔名是什麼,都會編譯暫時 PE。 副檔名不必是 .vb.cs.jsl;它可以是任何擴充功能。

  • 自訂工具所產生的程式碼必須有效,而且它必須只使用 Generate 完成執行時專案中存在的參考集自行編譯。

    編譯暫時 PE 時,提供給編譯器的唯一來源檔案是自訂工具輸出。 因此,使用暫時 PE 的自訂工具必須產生輸出檔案,而輸出檔可以獨立於專案中的其他檔案進行編譯。