HOW TO:針對圖層圖表驗證 C 和 C++ 程式碼
更新:2010 年 12 月
這個 Visual Studio 2010 功能套件可讓您在 Visual Studio 2010 Ultimate 中隨著程式碼的進化針對 C 和 C++ 程式碼強制施行架構條件約束。 若要執行此工作,請定期執行圖層驗證,以便比較程式碼中的相依性與圖層圖表中的相依性。 圖層圖表會描述系統架構並將命名空間、專案和其他成品組織成邏輯和抽象的群組 (也就是圖層)。 這些圖層可說明系統的主要元件或這些成品所執行的工作。 若要針對 C 或 C++ 程式碼建立圖層圖表,請遵循 .NET 程式碼所適用的相同步驟。 如需詳細資訊,請參閱 HOW TO:從成品建立圖層圖表和 Visual Studio 功能套件。
注意事項 |
---|
您必須安裝 Visual Studio 2010 功能套件才能使用這項功能。 如果是二進位檔案,圖層驗證只會在二進位層級執行。 即使您可以將其他類型的成品連結到圖層圖表,圖層驗證還是只會在二進位層級分析相依性。 |
圖層驗證也可協助您執行下列工作:
檢查現有程式碼及其預定設計之間的差異。
尋找未依預定進行組織,或是具有不當相依性的程式碼。
尋找可能會受到建議變更所影響的相依性。
例如,您可以修改圖層圖表來顯示潛在的架構變更,然後驗證程式碼,以便查看受影響的相依性。
將程式碼重構或移轉至不同設計。
在您將程式碼移至不同的架構時,請尋找仍需運作的程式碼或相依性。
本主題描述在您針對 C 或 C++ 程式碼執行圖層驗證之前所必須符合的條件。
需求
請確定 Visual C# 已隨著 Visual Studio 一起安裝。
建立具有圖層圖表的模型專案
若要驗證二進位檔案相依性,請將二進位檔案加入至模型專案
若要在 Team Foundation Build 上驗證 C 和 C++ 專案,請參閱 Team Foundation Build 需求。
在符合這些需求之後,您可以遵循 .NET 程式碼所適用的相同步驟。 若要了解這些步驟,請參閱 HOW TO:針對圖層圖表驗證 .NET 程式碼。 如需了解從 C 或 C++ 程式碼建立之模型專案與圖層圖表的相關問題,請參閱疑難排解。
建立具有圖層圖表的模型專案
Visual Studio 方案必須包含具有圖層圖表的模型專案。
若要建立模型專案
在 [方案總管] 中,以滑鼠右鍵按一下最上層的方案節點,並指向 [加入],再按一下 [新增專案]。
在 [加入新的專案] 對話方塊的 [已安裝的範本] 底下,按一下 [模型專案],再按一下 [模型專案]。
重新命名此專案,然後按一下 [確定]。
Visual Studio 會將新的模型專案加入至方案中。
請務必儲存模型專案。
若要建立圖層圖表
按一下 [架構] 功能表上的 [新增圖表],然後在 [加入新的圖表] 對話方塊中按一下 [圖層圖表]。
重新命名圖表,並選取模型專案,然後按一下 [確定]。
Visual Studio 會將空白圖層圖表加入至模型專案中,然後顯示此圖表。
從 [方案總管] 將至少一個 C 或 C++ 專案拖曳到圖層圖表介面。
-或-
從 [架構總管] 將至少一個二進位檔案拖曳到圖層圖表介面。
執行這些步驟的任何一個也會將下列項目自動加入至模型專案:
模型專案的專案參考。
模型專案 (.modelproj) 檔案的 <Import> 項目,該檔案會匯入自訂 .targets 檔案並啟用 C 或 C++ 程式碼的圖層驗證。
定義其他圖層、將成品連結至這些圖層,並說明這些成品之間的預定相依性。
如需詳細資訊,請參閱 HOW TO:從成品建立圖層圖表和圖層圖表:方針。
請務必儲存模型專案。
重要事項 如果您只儲存圖層圖表而不是模型專案,然後關閉方案,您必須加入 C 或 C++ 專案參考,並手動匯入自訂 .targets 檔案來建立模型專案。 如需詳細資訊,請參閱疑難排解。
重要事項 |
---|
當您在 Windows XP 或 Windows 2003 上的 Visual Studio 2010 Ultimate 中從 C 或 C++ 程式碼建立圖層圖表時,便會使用絕對路徑在模型專案 (.modelproj) 檔案中建立項目,以匯入自訂 Microsoft.VisualStudio.Progression.NativeProvider.targets 檔案。 如果您嘗試在 Windows 7、Windows Vista 或 Windows Server 2008 中開啟方案,這可能會發生問題。 如果您在 Windows XP 或 Windows 2003 上執行 Visual Studio 2010 Ultimate,您無法在 Windows 7、Windows Vista 或 Windows Server 2008 上開啟之前在 Visual Studio 2010 Ultimate 中建立的圖層圖表。 若要解決這個問題,請參閱疑難排解。 |
將二進位檔案加入至模型專案
如果您想要驗證二進位檔案相依性,您必須將您想要驗證的二進位檔案手動加入至模型專案。 當您將其拖曳至圖層圖表時,並不會自動將其加入。
若要將二進位檔案加入至模型專案
在 [方案總管] 中,以滑鼠右鍵按一下模型專案,然後按一下 [加入現有項目]。
在 [加入現有項目] 對話方塊中,瀏覽至二進位檔案並加以選取,然後按一下 [確定]。
二進位檔案會出現在模型專案中。
在 [方案總管] 中按一下您加入的二進位檔案,然後按 F4 開啟 [屬性] 視窗。
在每一個二進位檔案上,將 [建置動作] 屬性設定為 [驗證]。
Team Foundation Build 需求
若要在 Team Foundation Build 伺服器上驗證 C 和 C++ 專案,您必須依照下列步驟進行:
若要編譯專案,請務必在伺服器上安裝下列項目:
下列其中一項:Visual C++ 2010 Express (英文)、Visual Studio 2010 Professional、Visual Studio 2010 Premium 或 Visual Studio 2010 Ultimate
秘訣 如果 Visual Studio 2010 Ultimate 安裝在伺服器上,您可以在伺服器上安裝功能套件,而不是執行步驟 2 和 3。 否則,如果 …\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber> 資料夾不在伺服器上,您可能必須加以建立。 除非您將此功能套件安裝在不同的位置,否則 %LocalAppData% 通常是 DriveName:\Users\UserName\AppData\Local。 在 Windows XP 或 Windows 2003 上,請使用 %AppData% 而非 %LocalAppData%。
如果您已經安裝 Visual Studio 2010 Visualization and Modeling 功能套件:
將 Microsoft.VisualStudio.Progression.NativeProvider.targets 檔案從下列功能套件安裝位置複製到伺服器上的相同位置:
%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0
如果您已經安裝 Visual Studio 2010 Feature Pack 2:
從下列功能套件安裝位置複製 Microsoft.VisualStudio.Progression.NativeProvider.targets 檔案:
…\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>
到伺服器上的下列位置:
…\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Modeling\<InsertVisualStudioFeaturePackName>\1.0
根據您安裝的功能套件版本,從下列其中一個功能套件安裝位置複製 Microsoft.VisualStudio.Progression.NativeProvider.dll 檔案:
Visual Studio 2010 Visualization and Modeling 功能套件:%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0
Visual Studio 2010 功能套件 2:…\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>
到下列伺服器位置:
…\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Providers
疑難排解
如果您只儲存圖層圖表而不是模型專案,然後關閉方案,您必須加入 C 或 C++ 專案參考,並手動匯入自訂 .targets 檔案,依照下列步驟建立模型專案:
若要 |
請依照下列步驟: |
---|---|
加入 C 或 C++ 專案參考 |
|
匯入自訂 .targets 檔案 |
|
當您在 Windows XP 或 Windows 2003 上的 Visual Studio 2010 Ultimate 中從 C 或 C++ 程式碼建立圖層圖表時,便會使用絕對路徑在模型專案 (.modelproj) 檔案中建立項目,以匯入自訂 Microsoft.VisualStudio.Progression.NativeProvider.targets 檔案。 如果您嘗試在 Windows 7、Windows Vista 或 Windows Server 2008 中開啟方案,這可能會發生問題。 如果您在 Windows XP 或 Windows 2003 上執行 Visual Studio 2010 Ultimate,您無法在 Windows 7、Windows Vista 或 Windows Server 2008 上開啟之前在 Visual Studio 2010 Ultimate 中建立的圖層圖表。
若要解決這個問題,請使用下列其中一種替代解決辦法:
將 Microsoft.VisualStudio.Progression.NativeProvider.targets 檔案從下列位置複製到包含模型專案的資料夾:
如果您已經安裝 Visual Studio 2010 Visualization and Modeling 功能套件:
%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0
秘訣 除非您將此功能套件安裝在不同的位置,否則 %LocalAppData% 通常是 DriveName:\Users\UserName\AppData\Local。 在 Windows XP 或 Windows 2003 上,請使用 %AppData% 而非 %LocalAppData%。
如果您已經安裝 Visual Studio 2010 Feature Pack 2:
…\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>
在 .modelproj 檔案中,更新 .targets 檔案的 <Import> 項目,方法是以 .targets 檔案的相對路徑取代絕對路徑。 例如:
<Import Project="Microsoft.VisualStudio.Progression.NativeProvider.targets" />
重要事項 如果您使用版本控制,您必須將 .targets 檔案簽入版本控制中。
-或-
建立代表 Microsoft.VisualStudio.Progression.NativeProvider.dll 檔案安裝路徑的新環境變數。
使用這個變數可匯入 .targets 檔案。
例如,您可以建立一個指向 .targets 檔案所在位置的環境變數,例如 "NativeProviderTargetPath"。 然後您可以依照下列方式來更新 <Import> 項目:
<Import Project="$(NativeProviderTargetPath)\Microsoft.VisualStudio.Progression.NativeProvider.targets" />
重要事項 請確定您已在不同的作業系統上正確設定此環境變數。
請參閱
工作
概念
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2010 年 12 月 |
已針對 Visual Studio 2010 Feature Pack 2 更新。 |
資訊加強。 |