Pre-build custom tool runner was not handling that IProject.ProjectSpecificItems can be null for a project that has no preferences xml file already created (e.g. project created by Visual Studio and then opened in SharpDevelop).
A lot of functionality gets moved from the main portion of the AddIn into the framework-specific providers.
We no longer deal with test classes and members, but instead use the new ITest interface.
A test can be a whole project, namespace, class, or just a single method.
This can be used to support features like the NUnit [TestCase] attribute, where a single method might result in multiple tests.
Files added (e.g. T4MVC.tt) when installing a NuGet package were not getting a default CustomTool configured.
Now the CustomToolsService.GetCompatibleCustomToolNames() is used to find the first matching custom tool name for a file.
Add Custom Tools project options panel that can be used to enable running custom tools when a build is started just before the build executes.
Project options panel allows enabling/disabling this feature and specifying which files will have their custom tools run pre-build.
Configuration is stored in IProject.ProjectSpecificProperties.
An uninstalled folding manager would stay partially connected to the text view, which could cause the InvalidOperationException: "Trying to build visual line from collapsed line".
Switching to the WiX dialog designer and back again was causing <Control Type="Icon" /> elements to be removed.
The WiX dialog designer now recognises control's with a type of Icon.
The EnvDTE.CodeFunction.CanOverride property setter can be used to add a virtual keyword to the method definition.
The T4MVC template makes all controller methods virtual so it can override them in another generated class.
The EnvDTE.CodeClass2.ClassKind property setter can be used to add a partial keyword to the class definition.
The T4MVC template makes all controller classes partial so it can add extend the original class with an associated partial controller class that it generates.
The T4MVC template uses EnvDTE.ProjectItems.AddFromFile() to add its generated files as dependent files.
If the project items belong to a file then the DependentUpon property is set in the MSBuild project.
When find in files matches text in a .txt file then EditorControlService.Instance.CreateHighlighter() returns null since .txt files have no syntax highlighting.
Throw exception when unknown item requested from EnvDTE.ProjectItems.Item() instead of returning null.
The T4MVC template relies on this behaviour when looking for folders that do not exist.
Convert project items generated by yield return to a list before allowing them to be used in a different app domain. The class generated by using the yield keyword is not serialisable.