共用方式為


註冊專案類型

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

當您建立新的專案類型時,您必須建立登錄項目可讓Visual Studio辨識,並使用您的專案類型。 您通常會使用登錄指令碼 (.rgs) 檔案建立這些登錄項目。

在下列範例中,從登錄的陳述式提供預設路徑和資料情況適用時,後面的資料表,其中包含每個陳述式的登錄指令碼中的項目。 資料表提供的指令碼項目和陳述式的其他資訊。

注意

下列的登錄資訊被要登錄指令碼寫入您註冊您的專案類型中的項目和型別的範例。 您實際的項目,以及它們的用法可能會因您的專案類型的特定需求。 您應該檢閱可用以找出接近您開發的專案類型的範例,然後檢閱 登錄指令碼,該範例。

下列範例是從 HKEY_CLASSES_ROOT。

範例

\.figp  
   @="FigPrjFile"  
   "Content Type"="text/plain"  
\.figp\ShellNew  
   "NullFile"=""  
\FigPrjFile  
   @="Figure Project File"  
\DefaultIcon  
   @="<Visual Studio SDK installation path>\\9.0VSIntegration\\SomeFolder\\FigPkgs\\FigPrj\\Debug\\FigPrj.dll,-206"  
\shell\open  
   @="&Open in Visual Studio"  
\shell\open\command  
   @="devenv.exe \"%1\""  
名稱 類型 資料 描述
@ REG_SZ FigPrjFile 名稱和描述的專案類型檔案具有副檔名.figp。
Content Type REG_SZ Text/plain 專案檔的內容類型。
NullFile REG_SZ Null
@ REG_SZ %MODULE%,-206 此類型的專案使用的預設圖示。 %模組 %陳述式已完成登錄 DLL 專案類型的預設位置中。
@ REG_SZ &Open in Visual Studio 預設會開啟這個專案類型的應用程式。
@ REG_SZ devenv.exe "%1" 預設會在開啟此類型的專案時執行的命令。

下列範例會從 HKEY_LOCAL_MACHINE 和位於登錄機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\99.0Exp\Packages] 之下。

範例

\{ACEF4EB2-57CF-11D2-96F4-000000000000} (The CLSID for the VSPackage)  
   @="FigPrj Project Package"  
   "InprocServer32"="9.0<Visual Studio SDK installation path>\\VSIntegration\\Archive\\FigPkgs\\FigPrj\\                      Debug\\FigPrj.dll"  
   "CompanyName"="Microsoft"  
   "ProductName"="Figure Project Sample"  
   "ProductVersion"="9.0"  
   "MinEdition"="professional"  
   "ID"=dword:00000001  
\{ACEF4EB2-57CF-11D2-96F4-000000000000}\SatelliteDLL  
   "DllName"="FigPrjUI.dll"  
   "Path"="9.0<Visual Studio SDK installation path>\\VSIntegration\\Archive\\FigPkgs\\FigPrj\\Debug\\"  
\{ACEF4EB2-57CF-11D2-96F4-000000000000}\Automation  
   "FigProjects"=""  
\{ACEF4EB2-57CF-11D2-96F4-000000000000}\AutomationEvents  
   "FigProjectsEvents"="Returns the FigProjectsEvents Object"  
   "FigProjectItemsEvents"="Returns the FigProjectItemsEvents Object"  
名稱 類型 資料 說明
@(預設值) REG_SZ FigPrj Project VSPackage 可當地語系化的名稱,這個登錄 VSPackage (專案類型)。
InprocServer32 REG_SZ %MODULE% 專案類型 DLL 的路徑。 IDE 會載入此 DLL,並傳遞 VSPackage CLSIDDllGetClassObject取得IClassFactory建構IVsPackage物件。
CompanyName REG_SZ Microsoft 開發專案類型的公司名稱。
ProductName REG_SZ Figure Project Sample 專案類型的名稱。
ProductVersion REG_SZ 9.0 發行專案類型的版本號碼。
MinEdition REG_SZ professional VSPackage 所註冊的版本。
ID REG_DWORD %IDS_PACKAGE_LOAD_KEY% 封裝載入 VSPackage 專案的金鑰。 啟動環境後,會載入專案時,會驗證金鑰。
DllName REG_SZ %RESOURCE_DLL% 附屬 DLL,其中包含當地語系化的資源的專案類型的檔案名稱。
Path REG_SZ %RESOURCE_PATH% 附屬 DLL 的路徑。
FigProjectsEvents REG_SZ 請參閱陳述式的值。 決定此自動化事件傳回的文字字串。
FigProjectItemsEvents REG_SZ 請參閱陳述式的值。 決定此自動化事件傳回的文字字串。

下列所有範例都位於登錄機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects] 之下。

範例

\{C061DB26-5833-11D2-96F5-000000000000} (The CLSID for projects of this type)  
   @="FigPrj Project"  
   "DisplayName"="#2"  
   "Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"  
   "ProjectTemplatesDir"="C:\\Program Files\\VSIP 9.0\\EnvSDK\\FigPkgs\\                           FigPrj\\FigPrjProjects"  
   "ItemTemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPkgs\\FigPrj\\                           FigPrjProjectItems"  
   "DisplayProjectFileExtensions"="#3"  
   "PossibleProjectExtensions"="figp"  
   "DefaultProjectExtension"=".figp"  
\{C061DB26-5833-11D2-96F5-000000000000}\Filters\1       (Folder 1 contains settings for Open Files filters.)  
   @="#4"  
   "CommonOpenFilesFilter"=dword:00000000  
   "CommonFindFilesFilter"=dword:00000000  
   "NotAddExistingItemFilter"=dword:00000000  
   "FindInFilesFilter"=dword:00000000  
   "NotOpenFileFilter"=dword:00000000  
   "SortPriority"=dword:000003e8  
\{C061DB26-5833-11D2-96F5-000000000000}\Filters\2  
      (Folder 2 contains settings for Find in Files filters.)  
   @="#5"  
   "CommonOpenFilesFilter"=dword:00000000  
   "CommonFindFilesFilter"=dword:00000000  
   "NotAddExistingItemFilter"=dword:00000001  
   "FindInFilesFilter"=dword:00000001  
   "NotOpenFileFilter"=dword:00000000  
   "SortPriority"=dword:000003e8  
\{C061DB26-5833-11D2-96F5-000000000000}\AddItemTemplates\TemplateDirs\ {ACEF4EB2-57CF-11D2-96F4-000000000000}\1 (Second GUID indicates the registered project type for the Add Items templates.)  
   @="#6"  
   "TemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPkgs\\FigPrj\\                    FigPrjProjectItems"  
   "SortPriority"=dword:00000064  
名稱 類型 資料 描述
@ REG_SZ FigPrj Project 這種專案的預設名稱。
DisplayName REG_SZ #%IDS_PROJECT_TYPE% 附屬 DLL 從擷取的資源識別碼的名稱登錄封裝底下。
Package REG_SZ %CLSID_Package% 類別識別碼的 VSPackage 登錄封裝底下。
ProjectTemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects 預設的專案範本檔案的路徑。 這些是新的專案範本所顯示的檔案。
ItemTemplatesDir REG_SZ %TEMPLATE_PATH% \FigPrjProjectItems 預設的專案項目範本檔案的路徑。 這些是加入新項目範本所顯示的檔案。
DisplayProjectFileExtensions REG_SZ #%IDS_DISPLAY_PROJ_FILE_EXT% 可讓實作 IDE開啟對話方塊。
PossibleProjectExtensions REG_SZ figp 使用 IDE 來判斷是否要開啟的專案由這個專案類型 (專案 factory)。 多個項目格式是以分號分隔清單。 例如 「 vdproj; vdp 」。
DefaultProjectExtension REG_SZ .figp 使用 IDE 做為預設檔案名稱副檔名另存新檔作業。
Filter Settings REG_DWORD 各種功能,請參閱陳述式和註解下表。 這些設定用來設定各種 UI 對話方塊中顯示檔案篩選器。
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% 加入項目範本的資源識別碼。
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems 在對話方塊中顯示的專案項目路徑加入新項目範本。
SortPriority REG_DWORD 100 (vcprx64) 樹狀節點中顯示的檔案中的排序順序會決定加入新項目對話方塊。

下表顯示之前的程式碼區段中可用的篩選選項。

篩選選項 描述
CommonFindFilesFilter 指出篩選器中的一般篩選器的其中一個檔案中尋找對話方塊。 一般篩選器會列在之前未標示為常見的篩選條件的篩選器清單。
CommonOpenFilesFilter 指出篩選器中的一般篩選器的其中一個開啟檔案對話方塊。 一般篩選器會列在之前未標示為常見的篩選條件的篩選器清單。
FindInFilesFilter 指出篩選器會在篩選條件的其中一個檔案中尋找對話方塊方塊,然後將列出常見的篩選器之後。
NotOpenFileFilter 表示不會在使用篩選器開啟檔案對話方塊。
NotAddExistingItemFilter 表示篩選條件不使用在 新增現有項目對話方塊。

根據預設,如果篩選條件沒有任何一個或多個這些旗標集,篩選器會使用在加入現有項目對話方塊和開啟檔案之後列出常見的篩選器 對話方塊。 篩選不會用於檔案中尋找對話方塊。

下列所有範例都位於登錄機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects] 之下。

範例

{FE3BBBB6-72D5-11d2-9ACE-00C04F79A2A4} (The CLSID for Enterprise Projects)  
\{FE3BBBB6-72D5-11d2-9ACE-00C04F79A2A4}\AddItemTemplates\TemplateDirs\ {ACEF4EB2-57CF-11D2-96F4-000000000000}\1 (CLSID for projects of this type)  
   @="#7"  
   "TemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPrj\\FigPrjProjects"  
   "SortPriority"=dword:00000029  
   "NewProjectDialogOnly"=dword:00000000  
名稱 類型 資料 描述
@ REG_SZ #%IDS_NEWPROJ_ TEMPLATES_ENTRY% 新的專案範本的資源識別碼。
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects 預設為已註冊的專案類型的專案路徑。
SortPriority REG_DWORD 41 (x29) 設定排序順序顯示在新專案精靈 對話方塊中的專案。
NewProjectDialogOnly REG_DWORD 0 0 表示只能在 [新增專案] 對話方塊中,會顯示此類型的專案。

下列所有範例都位於登錄機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Projects] 之下。

範例

\{A2FE74E1-B743-11d0-AE1A-00A0C90FFFC3} (CLSID for Miscellaneous Files projects)  
   @="Miscellaneous Files Project"  
\AddItemTemplates\TemplateDirs\{ACEF4EB2-57CF-11D2-96F4-000000000000}\1  
                                 (CLSID for Figures Project projects)  
   @="#6"  
   "TemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPkgs\\FigPrj\\                    FigPrjProjectItems"  
   "SortPriority"=dword:00000064  
名稱 類型 資料 描述
@ REG_SZ 預設值,指出下列項目為其他檔案專案項目。
@ REG_SZ #%IDS_ADDITEM_TEMPLATES_ENTRY% 加入新項目範本檔案的資源識別碼值。
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjectItems 預設路徑,將會顯示在項目加入新項目對話方塊。
SortPriority REG_DWORD 100 (vcprx64) 建立的樹狀節點中顯示的排序次序加入新項目對話方塊。

下列範例會位於登錄機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\Menus] 之下。

範例

"{ACEF4EB2-57CF-11D2-96F4-000000000000}"=",1000,1"  

功能表項目會指向用來擷取功能表資訊的資源中的 IDE。 當此資料已合併至 功能表上的資料庫時,將會登錄 MenusMerged 一節中加入相同的索引鍵。 VSPackage 應 MenusMerged 區段下的任何項目直接修改。 在下表中的資料欄位中,有三個逗號分隔的欄位。 第一個欄位識別功能表資源檔的完整路徑︰

  • 如果省略第一個欄位,則會從附屬 VSPackage GUID 所識別的 DLL 載入功能表資源。

第二個欄位識別類型 CTMENU 的功能表資源識別碼︰

  • 如果指定的資源識別碼,而且第一個參數所提供的檔案路徑,從完整檔案路徑載入功能表資源。

  • 如果提供的資源識別碼,但不是檔案路徑,從附屬 DLL 載入功能表資源。

  • 如果提供了完整檔案路徑和省略的資源識別碼,CTO 檔案,也可以預期要載入的檔案。

最後一個欄位識別 CTMENU 資源的版本號碼。 您可以變更版本號碼,一次合併功能表。

名稱 類型 資料 描述
%Clsid_package% REG_SZ ,1000,1 要擷取功能表資訊的資源。

下列所有範例都位於登錄機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\NewProjectTemplates] 之下。

\TemplateDirs\{ACEF4EB2-57CF-11D2-96F4-000000000000}\1                (CLSID for Figures Project projects)  
   @="#7"  
   "TemplatesDir"="<Visual Studio SDK installation path>\\VSIntegration\\Archive9.0\\FigPkgs\\FigPrj\\FigPrjProjects"  
   "SortPriority"=dword:00000029  
   "NewProjectDialogOnly"=dword:00000000  
名稱 類型 資料 描述
@ REG_SZ #%IDS_NEWPROJ_TEMPLATES_ENTRY% 數字專案新增專案範本的資源識別碼值。
TemplatesDir REG_SZ %TEMPLATE_PATH%\FigPrjProjects 新的專案目錄的預設路徑。 這個目錄中的項目會顯示在新增專案 精靈對話方塊。
SortPriority REG_DWORD 41 (x29) 建立在其中將會顯示專案的樹狀節點中的順序新的專案對話方塊。
NewProjectDialogOnly REG_DWORD 0 0 表示僅在顯示此類型的專案新的專案對話方塊。

下列範例會位於登錄機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0Exp\InstalledProducts] 之下。

\FiguresProductSample  
   "Package"="{ACEF4EB2-57CF-11D2-96F4-000000000000}"  
   "UseInterface"=dword:00000001  
名稱 類型 資料 描述
Package REG_SZ %CLSID_Package% 已註冊的 VSPackage 類別 ID。
UseInterface REG_DWORD 1 1 表示 UI 將用於此專案進行互動。 0 表示沒有 UI 介面。

經常控制新的專案類型的 The.vsz 檔案包含 RELATIVE_PATH 項目。 這個路徑是相對於 \ProductDir 的下列設定機碼中的專案類型的項目底下指定的路徑︰

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0Exp\Setup

例如,企業架構專案範本會加入下列登錄項目︰

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0Exp\Setup\EF\ProductDir = C:\Program Files\Microsoft Visual Studio\EnterpriseFrameworks\

這表示如果您包含 PROJECT_TYPE = EF.vsz 檔案中,環境會發現您.vsz 檔案中指定先前的 ProductDir 目錄中的項目。

另請參閱

檢查清單︰ 建立新的專案類型
專案模型的項目
使用專案 Factory 建立專案