共用方式為


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 方案必須包含具有圖層圖表的模型專案。

若要建立模型專案

  1. 在 [方案總管] 中,以滑鼠右鍵按一下最上層的方案節點,並指向 [加入],再按一下 [新增專案]。

  2. 在 [加入新的專案] 對話方塊的 [已安裝的範本] 底下,按一下 [模型專案],再按一下 [模型專案]。

  3. 重新命名此專案,然後按一下 [確定]。

    Visual Studio 會將新的模型專案加入至方案中。

  4. 請務必儲存模型專案。

若要建立圖層圖表

  1. 按一下 [架構] 功能表上的 [新增圖表],然後在 [加入新的圖表] 對話方塊中按一下 [圖層圖表]。

  2. 重新命名圖表,並選取模型專案,然後按一下 [確定]。

    Visual Studio 會將空白圖層圖表加入至模型專案中,然後顯示此圖表。

  3. 從 [方案總管] 將至少一個 C 或 C++ 專案拖曳到圖層圖表介面。

    -或-

    從 [架構總管] 將至少一個二進位檔案拖曳到圖層圖表介面。

    執行這些步驟的任何一個也會將下列項目自動加入至模型專案:

    • 模型專案的專案參考。

    • 模型專案 (.modelproj) 檔案的 <Import> 項目,該檔案會匯入自訂 .targets 檔案並啟用 C 或 C++ 程式碼的圖層驗證。

  4. 定義其他圖層、將成品連結至這些圖層,並說明這些成品之間的預定相依性。

    如需詳細資訊,請參閱 HOW TO:從成品建立圖層圖表圖層圖表:方針

  5. 請務必儲存模型專案。

    重要事項重要事項

    如果您只儲存圖層圖表而不是模型專案,然後關閉方案,您必須加入 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 中建立的圖層圖表。 若要解決這個問題,請參閱疑難排解。

將二進位檔案加入至模型專案

如果您想要驗證二進位檔案相依性,您必須將您想要驗證的二進位檔案手動加入至模型專案。 當您將其拖曳至圖層圖表時,並不會自動將其加入。

若要將二進位檔案加入至模型專案

  1. 在 [方案總管] 中,以滑鼠右鍵按一下模型專案,然後按一下 [加入現有項目]。

  2. 在 [加入現有項目] 對話方塊中,瀏覽至二進位檔案並加以選取,然後按一下 [確定]。

    二進位檔案會出現在模型專案中。

  3. 在 [方案總管] 中按一下您加入的二進位檔案,然後按 F4 開啟 [屬性] 視窗。

  4. 在每一個二進位檔案上,將 [建置動作] 屬性設定為 [驗證]。

Team Foundation Build 需求

若要在 Team Foundation Build 伺服器上驗證 C 和 C++ 專案,您必須依照下列步驟進行:

  1. 若要編譯專案,請務必在伺服器上安裝下列項目:

    秘訣秘訣

    如果 Visual Studio 2010 Ultimate 安裝在伺服器上,您可以在伺服器上安裝功能套件,而不是執行步驟 2 和 3。 否則,如果 …\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber> 資料夾不在伺服器上,您可能必須加以建立。 除非您將此功能套件安裝在不同的位置,否則 %LocalAppData% 通常是 DriveName:\Users\UserName\AppData\Local。 在 Windows XP 或 Windows 2003 上,請使用 %AppData% 而非 %LocalAppData%。

  2. 如果您已經安裝 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

  3. 根據您安裝的功能套件版本,從下列其中一個功能套件安裝位置複製 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++ 專案參考

  1. 在 [方案總管] 中,以滑鼠右鍵按一下包含圖層圖表的模型專案,然後按一下 [加入參考]。

    -或-

    在模型專案中,以滑鼠右鍵按一下 [圖層參考] 資料夾,然後按一下 [加入參考]。

  2. 在 [加入參考] 對話方塊中,選取您要驗證的專案,然後按一下 [確定]。

    專案參考會出現在 [圖層參考] 資料夾中。

匯入自訂 .targets 檔案

  1. 以滑鼠右鍵按一下 [方案總管] 中的模型專案節點,然後按一下 [卸載專案]。

  2. 以滑鼠右鍵按一下模型專案節點,然後按一下 [編輯 ModelingProjectName.modelproj]。

  3. 在 ModelingProjectName.modelproj 檔案中,尋找下列 <Import> 項目:

    <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\ArchitectureTools\Microsoft.VisualStudio.TeamArchitect.ModelingProject.targets" />

    在這個 <Import> 項目底下,加入下列 <Import> 項目:

    如果您已經安裝 Visual Studio 2010 Visualization and Modeling 功能套件:

    <Import Project="$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0\Microsoft.VisualStudio.Progression.NativeProvider.targets" />

    注意事項注意事項
    %LocalAppData% 通常是 DriveName:\Users\UserName\AppData\Local。在 Windows XP 或 Windows 2003 上,請使用 %AppData% 而非 %LocalAppData%。如果此功能套件安裝在不同的位置,請改用該位置。您也可以將 Microsoft.VisualStudio.Progression.NativeProvider.targets 檔案從功能套件安裝位置複製到包含模型專案的資料夾。

    如果您已經安裝 Visual Studio 2010 Feature Pack 2:

    <Import Project="…$\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>\Microsoft.VisualStudio.Progression.NativeProvider.targets" />

  4. 儲存 .modelproj 檔案然後將它關閉。

  5. 以滑鼠右鍵按一下模型專案節點,然後按一下 [卸載專案]。

當您在 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 中建立的圖層圖表。

若要解決這個問題,請使用下列其中一種替代解決辦法:

  1. 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>

  2. 在 .modelproj 檔案中,更新 .targets 檔案的 <Import> 項目,方法是以 .targets 檔案的相對路徑取代絕對路徑。 例如:

    <Import Project="Microsoft.VisualStudio.Progression.NativeProvider.targets" />
    
    重要事項重要事項

    如果您使用版本控制,您必須將 .targets 檔案簽入版本控制中。

-或-

  1. 建立代表 Microsoft.VisualStudio.Progression.NativeProvider.dll 檔案安裝路徑的新環境變數。

  2. 使用這個變數可匯入 .targets 檔案。

    例如,您可以建立一個指向 .targets 檔案所在位置的環境變數,例如 "NativeProviderTargetPath"。 然後您可以依照下列方式來更新 <Import> 項目:

    <Import Project="$(NativeProviderTargetPath)\Microsoft.VisualStudio.Progression.NativeProvider.targets" />
    
    重要事項重要事項

    請確定您已在不同的作業系統上正確設定此環境變數。

請參閱

工作

HOW TO:從成品建立圖層圖表

HOW TO:針對圖層圖表驗證 .NET 程式碼

概念

圖層圖表:方針

變更記錄

日期

記錄

原因

2010 年 12 月

已針對 Visual Studio 2010 Feature Pack 2 更新。

資訊加強。