License Keys and Load Keys
Updated: July 2008
The Visual Studio SDK lets you develop VSPackages for Visual Studio and also Visual Studio Shell-based applications. The Visual Studio Shell requires a package load key (PLK) for a VSPackage and a shell load key (SLK) for isolated Shell-based applications.
When you install the Visual Studio SDK, a developer license key (DLK) is also installed on the computer. The DLK enables VSPackages to be loaded without a PLK and isolated Shell-based applications to be started without an SLK.
A DLK allows you to run VSPackages or Visual Studio Shell-based applications on any computer on which Visual Studio and the Visual Studio SDK are installed so that you can develop and test them before you distribute them to other users. However, the Visual Studio SDK license terms do not allow you to include the DLK with your VSPackage or Shell application when you distribute it to other users. You must include the appropriate PLK or SLK instead.
Visual Studio and the Visual Studio Shell use PLKs to authenticate VSPackages. A PLK is a unique string that is generated for each VSPackage. Every time that Visual Studio or the Shell starts, it checks each installed VSPackage for an associated PLK. Only VSPackages that have a valid PLK are loaded. This applies both to auto-loaded and delay-loaded VSPackages.
The following is additional information about PLKs:
Every VSPackage must have its own unique PLK.
A custom tool or Shell-based application may contain multiple VSPackages. Each of these VSPackages must have a unique PLK.
The PLK string is derived from data that you provide to Microsoft when you request the PLK. For more information, see How to: Obtain a PLK for a VSPackage and How to: Add a PLK to a VSPackage Project (C#).
If a PLK is not valid, the associated VSPackage is not loaded and the user receives an error message. To learn how to troubleshoot a PLK load failure, see How to: Troubleshoot a PLK Load Failure.
A PLK can be loaded from either the VSPackage DLL or a satellite DLL. All PLKs referenced by the application are checked.
The fields that are used to generate and validate a PLK are not localized.
The Visual Studio Shell requires a valid SLK to start an isolated Shell-based application. An SLK is a unique string that is generated for each such custom tool environment. Every time that such an application starts, the Shell checks the application for an associated SLK. The Shell only starts isolated Shell-based applications that have a valid SLK.
Isolated Shell-based applications can only load VSPackages that have a valid PLK. The Visual Studio Shell Isolated template creates a project for a UI package, which also requires a PLK.
The following is additional information about SLKs:
Each isolated Shell-based application must have its own unique SLK.
The SLK string is derived from data that you provide to Microsoft when you request the SLK. For more information, see How to: Obtain an SLK for a Shell-Based Application and How to: Add an SLK to an Isolated Shell Project.
If an SLK is not valid, the Shell does not start the associated application and the user receives an error message.
An SLK can be loaded from either the application DLL or a satellite DLL. The Shell tries to validate all SLKs that are referenced by the application.
The fields that are used to generate and validate an SLK are not localized.