共用方式為


註冊專案類型

當您建立新的專案類型時,您必須先建立登錄項目,可讓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

這種類型的專案所使用的預設圖示。 %MODULE%的陳述式已完成登錄的 DLL 的專案類型的預設位置中。

@

REG_SZ

&Open in Visual Studio

將會開啟這個專案類型的預設應用程式。

@

REG_SZ

devenv.exe "%1"

預設會在這種類型的專案開啟時執行的命令。

下列範例來自作用中計時間,並位於登錄機碼 [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 CLSID DllGetClassObject以取得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 來決定正在開啟的專案由這種專案類型 (專案工廠)。 多個項目格式是以分號分隔清單。 例如"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

None

預設值,表示下列項目是針對其他檔案專案項目。

@

REG_SZ

#%IDS_ADDITEM_TEMPLATES_ENTRY%

加入新項目範本檔的資源 ID 值。

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] 區段下的任何項目直接。 下表中的 [資料] 欄位中,有三個逗點-分隔的欄位。 第一個欄位會識別功能表資源檔的完整路徑:

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

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

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

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

  • 如果提供的完整檔案路徑的資源 ID 省略,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%

取得專案新專案時,圖表範本的資源 ID 值。

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 = 檔必要視覺化 Studio\EnterpriseFrameworks\

這表示如果您包含 PROJECT_TYPE = EF 在.vsz 檔中,您的.vsz 檔案之前指定的 ProductDir 目錄中的環境尋找的項目。

請參閱

概念

檢查清單: 建立新的專案類型

專案模型的項目

建立專案的執行個體,藉由使用專案工廠