When creating a new extension for visual studio, there are two project options: "Visual Studio Integration Package" and "Visual Studio Add-in". What is the difference between the two project types and when would you use one over the other?
问题:
回答1:
Ok, you can find a full detailed comparison here (there are also links to the previous parts in the series).
But basically, add-ins were available as the VS extension type from the very first versions of the VS and built as the COM components. Later on, some limitations were discovered in that approach, so the new extensibility feature was created -- namely VS SDK package.
Probably, if you are building an extension for VS 2008+ you should target the VS SDK package as the newer technology. Another strong point of the VS package is better integration with the Visual Studio.
Whatever you do, add-ins are an external thing for Visual Studio while VSPackages are a completely integrated part of the IDE.
You still might consider building an add-in, if
- you need access to high-level extensibility API, as opposed to low-level fundamental API available from a VS package;
- you develop in Visual Basic (templates for VS Package are available only in C# / Visual C++);
- you want to automate a simple task / common scenario, then add-in will probably require less development effort.
回答2:
Important point on Visual Studio Add-in vs Package, Add-ins are deprecated in VS 2013 and will not be available in VS "14"
Add-ins Deprecated in Visual Studio 2013 Visual Studio "14" CTP: add-ins are gone
"Official" guidance from How to: Create an Add-In is "Visual Studio add-ins are deprecated in Visual Studio 2013. You should upgrade your add-ins to VSPackage extensions...."
回答3:
An integration package is something that can be chosen when you start a new project (like how you pick C# or VB).
See http://www.bitwisemag.com/copy/features/dev/visual_studio/vs2005_integration_1.html.
Add-ins work just like they would for MS Office applications. You can add your own custom buttons and menu items. Here is an example: http://www.c-sharpcorner.com/UploadFile/mgold/AddIns11292005015631AM/AddIns.aspx.