An Microsoft Visual Studio 2008 Shell (isolated mode) custom tool has full access to Visual Studio services and also maintains a custom appearance with extensive branding. There are several ways you can customize your isolated shell custom tool, as follows:
You can change the items in the custom tool stub .pkgdef file to brand the title bar, splash screen, icon graphics, start page, and more.
You can replace the default About dialog box code that is written by the isolated shell project template wizard.
You can turn on and off Visual Studio feature sets and menu command groups by changing the settings in the isolated shell user interface (UI) .vsct file.
You can selectively remove Options pages and other UI components by deleting their system registry entries by using the custom tool stub .pkgundef file.
Several of these customizations are highlighted in the Walkthrough: A Basic Isolated Shell Custom Tool.
The PKGDEF File
The isolated shell custom tool stub .pkgdef file supports the following custom options.
AddinsAllowed
Indicates whether Add-ins can be loaded or not. If not indicated, then VARIANT_TRUE is assumed. For example, "AddinsAllowed"=dword:00000001AllowsDroppedFilesOnMainWindow
If true, the main window should accept dropped files. The default value is true. For example, "AllowsDroppedFilesOnMainWindow"=dword:00000001AppIcon
The path of the program icon. This icon appears in the title bar to the left of the custom tool name. For example, "AppIcon"="C:\Program Files\Microsoft Visual Studio 9.0\Setup\Setup.ico".AppName
The custom tool name. This name appears in the title bar of the shell. For example, "AppName"="My Company Name".DefaultDebugEngine
The GUID of the default debug engine to use for this custom toolFor example, "DefaultDebugEngine"="{00000000-0000-0000-0000-000000000000}"
注意
: A DefaultDebugEngine GUID of all zeroes specifies that the default .NET debug engine will be used.
DefaultHomePage
Specifies the default home page URL for the Web Browser window. This appears when the View/Other Windows/Web Browser is selected. For example, "DefaultHomePage"="https://www.microsoft.com"DefaultProjectsLocation
Specifies the full path of the projects location. This string overrides the 'Visual Studio Projects' location. For example, "DefaultProjectsLocation"="$MyDocuments$\MyVSShellStub"DefaultSearchPage
Specifies the default Search page URL for the Web Browser window. For example, "DefaultSearchPage"="http://search.live.com"DefaultUserFilesFolderRoot
Specifies the user folder in My Documents. The default value is 'Visual Studio', which specifies the full path '%USERPROFILE%\My Documents\Visual Studio'. For example, "DefaultUserFilesFolderRoot"="MyVSShellStub"DisableOutputWindow
Indicates whether the isolated shell should treat the output window as disabled. VARIANT_TRUE means that the solution build manager will not try to output anything to the output window and 'Show Output window when build starts' will be hidden in the Options dialog box. The default value is VARIANT_FALSE. For example, "DisableOutputWindow"=dword:00000000HideMiscellaneousFilesByDefault
If true, the Miscellaneous Files project is hidden. The default value is false. For example, "HideMiscellaneousFilesByDefault"=dword:00000000HideSolutionConcept
If true, the custom tool uses the solution, but does not show it to the user. The default value is false. For example, "HideSolutionConcept"=dword:00000000注意
This option can be referenced before main initialization occurs.
NewProjDlgInstalledTemplatesHdr
Localized replacement name for the Visual Studio installed templates header in the Templates list in the New Project dialog box. This is either a string or a resource id that is loaded from GuidAppIDPackage UILibrary. For example, "NewProjDlgInstalledTemplatesHdr"="MyVSShellStub installed templates".NewProjDlgSlnTreeNodeTitle
Localized replacement name for the Visual Studio Solutions node in the Project Types tree in the New Project dialog box. This is either a string or a resource id that is loaded from GuidAppIDPackage UILibrary. For example, "NewProjDlgSlnTreeNodeTitle"="MyVSShellStub installed templates".PredefinedAliasesString
Specifies the pre-defined aliases for the custom tool. For example,"PredefinedAliasesString"=""
SolutionFileExt
Specifies the solution file name extension. The default extension is "<vsshellstubname>.sln".For example, "SolutionFileExt"="MyVSShellStub_sln".SolutionFileCreatorIdentifier
Specifies the second line in the solution file. This property is used to determine the solution node double-click behavior. For example, "SolutionFileCreatorIdentifier"="MyVSShellStub Solution File, Format Version 10.00"UserFilesSubFolderName
Name of the folder that is used for custom tool-specific subfolders under '%USERPROFILE%\My Documents\Visual Studio'. For example, 'Visual Basic Express' for '%USERPROFILE%\My Documents\Visual Studio\Settings\Visual Basic Express'UserOptsFileExt
BSTR specifying the solution options file name extension. The default extension is "<vsshellstubname>.suo". For example, "UserOptsFileExt"=" MyVSShellStub_suo ".
The VSCT File
The isolated shell custom tool stub UI project, as written by the New Project wizard, contains a .vsct file that lets you easily include or exclude groups and individual commands. The following is an excerpt from the unmodified file.
<!-- <Define name="No_WindowListCommand"/> -->
<!-- <Define name="No_MoreWindowsCommand"/> -->
<!-- <Define name="No_PaneNextPaneCommand"/> -->
<!-- <Define name="No_PanePrevPaneCommand"/> -->
By default, most commands and command groups are included. To exclude a command or command group, just remove the HTML comments for that command or group.
For example, to make the next and previous pane commands disappear, make the following modifications to the .vsct file:
<!-- <Define name="No_WindowListCommand"/> -->
<!-- <Define name="No_MoreWindowsCommand"/> -->
<Define name="No_PaneNextPaneCommand"/><Define name="No_PanePrevPaneCommand"/>
For a more detailed example in which several of these customizations are highlighted, see Walkthrough: A Basic Isolated Shell Custom Tool.