組態選項概觀
Visual Studio 中的專案可以支援多個可建置、偵錯、執行和/或部署的組態。 組態是以一組具名的屬性 (通常還有編譯器參數) 及檔案位置所描述的組建類型。 根據預設,新的解決方案包含兩個組態:偵錯和發行。 這些組態可以使用其預設設定來套用,或修改以符合您的特定解決方案和/或專案需求。 有些套件可以透過兩種方式建置:作為 ActiveX 編輯器或就地元件。 不過,專案不需要支援多個組態。 如果只有一個組態可用,該組態會對應到所有解決方案組態。
組態通常包含兩個部分:組態名稱 (例如偵錯或發行) 和平台設定。 組態的平台名稱會識別設定目標的環境,例如 API 集合或作業系統平台。 Visual Studio 的使用者無法建立平台;他們必須從 VSPackage 專案允許的選項中選擇。 當使用者安裝 VSPackage 時,在開發套件期間建立的傳遞平台可以根據套件建立者所設定的任何準則,呈現所需的任何平台名稱。 然後,使用者可以在具現化屬性頁時,從透過 VSPackage 提供的平台清單中選取。
平台名稱為選用,因為並非所有專案都支援平台的概念。 當組態缺少平台名稱時,字串 N/A 會顯示在 UI 中。
每個解決方案都有自己的組態,一次只能有一組作用中組態。 解決方案組態是每個專案中不超過一個的一組組態。 「不超過」規定是因為選擇將專案排除在解決方案組態之外。 使用者可以建立自己的自訂解決方案組態。
下表說明專案的一般組態設定。 資料列會標示為組態名稱和具有平台名稱的資料行。
設定名稱 | 平台:Win32 | 平台:Win64 |
---|---|---|
偵錯 | <針對 Win32 設定進行偵錯> | <針對 Win64 設定進行偵錯> |
版本 | <版本 Win32 設定> | <版本 Win64 設定> |
MyConfig | N/A | <MyConfig Win64 設定> |
注意
除非您的目標專案不支援 Win32,否則您無法建立排除 Win32 平台的 MyConfig 解決方案組態。
變更解決方案的作用中組態會選取一組建置、執行、偵錯或部署在該解決方案中的項目組態。 例如,如果您將作用中解決方案組態從 [發行] 變更為 [偵錯],該解決方案內的所有專案都會使用解決方案偵錯組態中所指出的專案組態進行自動建置。 除非使用者在環境的 Configuration Manager 中進行手動變更,否則專案組態也會命名為 [偵錯]。
針對每個專案儲存的解決方案組態屬性包括專案名稱、專案組態名稱、旗標,以指出是否要建置或部署,以及平台名稱。 如需詳細資訊,請參閱解決方案組態。
使用者可以選取階層中的解決方案來檢視和設定解決方案組態參數 (解決方案總管),然後開啟屬性頁面。 同樣地,您可以選取解決方案總管中的專案,然後開啟該專案的屬性頁面,以檢視和設定專案組態參數。
使用者也可以使用發行組態設定來建置一個專案,並視需要使用偵錯組態設定來建置其餘專案。 如需詳細資訊,請參閱建置的專案組態。
下圖顯示如何實作支援解決方案和專案組態的介面:
組態介面
與上圖相關的一些注意事項:
IDispatch
在組態物件中會標示為選用。 具體來說,在瀏覽物件上具有組態介面為選用。IVsDebuggableProjectCfg
在組態物件中標示為選用,但偵錯支援為必要。IVsProjectCfg2
在群組態物件中標示為選用,但輸出群組支援為必要 。Config Provider 物件會標示為選用物件,但選項是實作它的位置。 您可以在項目物件或個別物件上實作物件。
平台支援和組態編輯需要
IVsCfgProvider2
。 如果您未實作該功能,IVsCfgProvider
就已足夠。在圖表中顯示為個別物件的其中一些物件可以合併成相同類別,根據您的特定設計需求實際使用。 不過,在本節的其他主題中,將會根據圖表中顯示的案例,討論與這些物件相關聯的物件和介面。
某些物件會個別實作。 例如,專案和解決方案建置發生在不同的執行緒上,而物件會與描述組建組態的物件分開管理組建。
如需上圖中組態物件介面和組態提供者物件介面的詳細資訊,請參閱 Project 組態物件。 此外,用於建置的專案組態可提供組態產生器及建置相依性物件介面的詳細資訊,而用於管理部署的專案組態會進一步說明附加至組態部署器和部署相依性物件的介面。 最後, 輸出的專案組態會描述輸出群組和輸出物件介面,以及使用屬性頁面來檢視和設定組態相依屬性。