diff --git a/.gitignore b/.gitignore
index 7660f42117..c7c50193b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -239,4 +239,3 @@ WiX.Toolset.DummyFile.txt
nunit-UnitTests.xml
nunit-TrackingCollectionTests.xml
GitHubVS.sln.DotSettings
-**/generated/*.cs
diff --git a/.gitmodules b/.gitmodules
index c8fcb1dca5..4609f2bfa2 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,6 @@
[submodule "submodules/rothko"]
path = submodules/rothko
- url = https://github.com/Haacked/Rothko.git
+ url = https://github.com/editor-tools/Rothko.git
[submodule "submodules/reactiveui"]
path = submodules/reactiveui
url = https://github.com/shana/ReactiveUI
diff --git a/GitHubVS.sln b/GitHubVS.sln
index 26f9a22363..e4a23a01e8 100644
--- a/GitHubVS.sln
+++ b/GitHubVS.sln
@@ -1,9 +1,12 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
-VisualStudioVersion = 14.0.25123.0
+VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.VisualStudio", "src\GitHub.VisualStudio\GitHub.VisualStudio.csproj", "{11569514-5AE5-4B5B-92A2-F10B0967DE5F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E} = {1BC94B6A-B021-4207-A70E-936EE272AD3E}
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Meta", "Meta", "{72036B62-2FA6-4A22-8B33-69F698A18CF1}"
ProjectSection(SolutionItems) = preProject
@@ -31,7 +34,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{8E1F
script\Modules\BuildUtils.psm1 = script\Modules\BuildUtils.psm1
script\Modules\Debugging.psm1 = script\Modules\Debugging.psm1
script\Modules\Vsix.psm1 = script\Modules\Vsix.psm1
- script\Modules\WiX.psm1 = script\Modules\WiX.psm1
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Script", "Script", "{7B6C5F8D-14B3-443D-B044-0E209AE12BDF}"
@@ -67,8 +69,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.Exports.Reactive", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DesignTimeStyleHelper", "src\DesignTimeStyleHelper\DesignTimeStyleHelper.csproj", "{B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}"
EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MsiInstaller", "src\MsiInstaller\MsiInstaller.wixproj", "{1ED83084-2A57-4F89-915C-8A2167C0D6BC}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Octokit", "Octokit", "{1E7F7253-A6AF-43C4-A955-37BEDDA01AC0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Octokit", "submodules\octokit.net\Octokit\Octokit.csproj", "{08DD4305-7787-4823-A53F-4D0F725A07F3}"
@@ -81,8 +81,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI_Net45", "submodu
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Events_Net45", "submodules\reactiveui\ReactiveUI.Events\ReactiveUI.Events_Net45.csproj", "{600998C4-54DD-4755-BFA8-6F44544D8E2E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EventBuilder", "submodules\reactiveui\ReactiveUI.Events\EventBuilder.csproj", "{3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Akavache", "Akavache", "{1E7F7253-A6AF-43C4-A955-37BEDDA01AC9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Akavache_Net45", "submodules\akavache\Akavache\Akavache_Net45.csproj", "{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}"
@@ -109,6 +107,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.TeamFoundation.15",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.VisualStudio.UI", "src\GitHub.VisualStudio.UI\GitHub.VisualStudio.UI.csproj", "{D1DFBB0C-B570-4302-8F1E-2E3A19C41961}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Subpackages", "Subpackages", "{7F25BDD5-474F-4EC1-A624-ED946B91F34E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitHub.StartPage.Preview5", "submodules\externalpackages\StartPage\preview5\GitHub.StartPage.Preview5.csproj", "{1BC94B6A-B021-4207-A70E-936EE272AD3E}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -301,19 +303,6 @@ Global
{B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.XamlDesign|Any CPU.Build.0 = Debug|Any CPU
{B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.XamlDesign|x86.ActiveCfg = Debug|Any CPU
{B1F5C227-456F-437D-BD5F-4C11B7A8D1A0}.XamlDesign|x86.Build.0 = Debug|Any CPU
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Debug|Any CPU.ActiveCfg = Debug|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Debug|x86.ActiveCfg = Debug|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Debug|x86.Build.0 = Debug|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Publish|Any CPU.ActiveCfg = Publish|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Publish|Any CPU.Build.0 = Publish|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Publish|x86.ActiveCfg = Publish|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Publish|x86.Build.0 = Publish|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Release|Any CPU.ActiveCfg = Release|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Release|x86.ActiveCfg = Release|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.Release|x86.Build.0 = Release|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.XamlDesign|Any CPU.ActiveCfg = Debug|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.XamlDesign|x86.ActiveCfg = Debug|x86
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC}.XamlDesign|x86.Build.0 = Debug|x86
{08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|Any CPU.Build.0 = Release|Any CPU
{08DD4305-7787-4823-A53F-4D0F725A07F3}.Debug|x86.ActiveCfg = Release|Any CPU
@@ -374,21 +363,6 @@ Global
{600998C4-54DD-4755-BFA8-6F44544D8E2E}.XamlDesign|Any CPU.Build.0 = Release|Any CPU
{600998C4-54DD-4755-BFA8-6F44544D8E2E}.XamlDesign|x86.ActiveCfg = Release|Any CPU
{600998C4-54DD-4755-BFA8-6F44544D8E2E}.XamlDesign|x86.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Debug|Any CPU.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Debug|x86.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Debug|x86.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Publish|Any CPU.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Publish|x86.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Publish|x86.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Release|Any CPU.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Release|x86.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.Release|x86.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.XamlDesign|Any CPU.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.XamlDesign|Any CPU.Build.0 = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.XamlDesign|x86.ActiveCfg = Release|Any CPU
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D}.XamlDesign|x86.Build.0 = Release|Any CPU
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Debug|Any CPU.ActiveCfg = Release|Any CPU
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Debug|Any CPU.Build.0 = Release|Any CPU
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203}.Debug|x86.ActiveCfg = Release|Any CPU
@@ -559,6 +533,22 @@ Global
{D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.XamlDesign|Any CPU.Build.0 = Debug|Any CPU
{D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.XamlDesign|x86.ActiveCfg = Release|Any CPU
{D1DFBB0C-B570-4302-8F1E-2E3A19C41961}.XamlDesign|x86.Build.0 = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Debug|x86.Build.0 = Debug|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Publish|Any CPU.ActiveCfg = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Publish|Any CPU.Build.0 = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Publish|x86.ActiveCfg = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Publish|x86.Build.0 = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Release|x86.ActiveCfg = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.Release|x86.Build.0 = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.XamlDesign|Any CPU.ActiveCfg = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.XamlDesign|Any CPU.Build.0 = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.XamlDesign|x86.ActiveCfg = Release|Any CPU
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E}.XamlDesign|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -567,14 +557,12 @@ Global
{596595A6-2A3C-469E-9386-9E3767D863A5} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
{4A84E568-CA86-4510-8CD0-90D3EF9B65F9} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
{8E1F1B4E-AEA2-4AB1-8F73-423A903550A1} = {7B6C5F8D-14B3-443D-B044-0E209AE12BDF}
- {1ED83084-2A57-4F89-915C-8A2167C0D6BC} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFF}
{1E7F7253-A6AF-43C4-A955-37BEDDA01AC0} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
{08DD4305-7787-4823-A53F-4D0F725A07F3} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC0}
{674B69B8-0780-4D54-AE2B-C15821FA51CB} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC0}
{1E7F7253-A6AF-43C4-A955-37BEDDA01AB9} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
{1CE2D235-8072-4649-BA5A-CFB1AF8776E0} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
{600998C4-54DD-4755-BFA8-6F44544D8E2E} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
- {3D4AE5F9-A535-4D5C-8F30-1A35D7BA0A3D} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
{1E7F7253-A6AF-43C4-A955-37BEDDA01AC9} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB8}
{B4E665E5-6CAF-4414-A6E2-8DE1C3BCF203} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC9}
{241C47DF-CA8E-4296-AA03-2C48BB646ABD} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AC9}
@@ -584,5 +572,6 @@ Global
{0EC8DBA1-D745-4EE5-993A-6026440EC3BF} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AF9}
{DD99FD0F-82F6-4C30-930E-4A1D0DF01D65} = {1E7F7253-A6AF-43C4-A955-37BEDDA01AB9}
{7B835A7D-CF94-45E8-B191-96F5A4FE26A8} = {8A7DA2E7-262B-4581-807A-1C45CE79CDFD}
+ {1BC94B6A-B021-4207-A70E-936EE272AD3E} = {7F25BDD5-474F-4EC1-A624-ED946B91F34E}
EndGlobalSection
EndGlobal
diff --git a/appveyor.yml b/appveyor.yml
index c83bf0baa5..e59361e408 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -12,7 +12,6 @@ install:
Set-Content c:\users\appveyor\.ssh\id_rsa $fileContent
} else {
git submodule deinit script
- git submodule deinit submodules/externalpackages/StartPage
}
git submodule update
diff --git a/script b/script
index 15e8e40320..4b7c36795e 160000
--- a/script
+++ b/script
@@ -1 +1 @@
-Subproject commit 15e8e40320a42797b8a57cedb0cf6f3a146afe1c
+Subproject commit 4b7c36795e46704897fd9bee68afd6003dc83b1c
diff --git a/src/CredentialManagement/CredentialManagement.csproj b/src/CredentialManagement/CredentialManagement.csproj
index d801e2176e..d54af939cb 100644
--- a/src/CredentialManagement/CredentialManagement.csproj
+++ b/src/CredentialManagement/CredentialManagement.csproj
@@ -38,9 +38,9 @@
false
-
- ..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll
- True
+
+ ..\..\packages\NullGuard.Fody.1.4.6\Lib\dotnet\NullGuard.dll
+ False
@@ -79,12 +79,12 @@
-
+
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
-
This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
+
+
+
-
+
+
diff --git a/src/GitHub.VisualStudio/GitHubPackage.cs b/src/GitHub.VisualStudio/GitHubPackage.cs
index b68d9ba096..8533c53ea3 100644
--- a/src/GitHub.VisualStudio/GitHubPackage.cs
+++ b/src/GitHub.VisualStudio/GitHubPackage.cs
@@ -10,25 +10,26 @@
using Microsoft.VisualStudio.Shell.Interop;
using Octokit;
using GitHub.Helpers;
-using System.ComponentModel.Design;
using System.Diagnostics;
using System.Threading;
-using tasks = System.Threading.Tasks;
-using Microsoft.VisualStudio.ComponentModelHost;
+using System.Threading.Tasks;
+using Task = System.Threading.Tasks.Task;
+using GitHub.VisualStudio.Menus;
namespace GitHub.VisualStudio
{
- [PackageRegistration(UseManagedResourcesOnly = true)]
+ [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
[InstalledProductRegistration("#110", "#112", System.AssemblyVersionInformation.Version, IconResourceID = 400)]
[Guid(GuidList.guidGitHubPkgString)]
[ProvideMenuResource("Menus.ctmenu", 1)]
// this is the Git service GUID, so we load whenever it loads
- [ProvideAutoLoad("11B8E6D7-C08B-4385-B321-321078CDD1F8")]
+ [ProvideAutoLoad(Guids.GitSccProviderId)]
[ProvideToolWindow(typeof(GitHubPane), Orientation = ToolWindowOrientation.Right, Style = VsDockStyle.Tabbed, Window = EnvDTE.Constants.vsWindowKindSolutionExplorer)]
[ProvideOptionPage(typeof(OptionsPage), "GitHub for Visual Studio", "General", 0, 0, supportsAutomation: true)]
- public class GitHubPackage : Package
+ public class GitHubPackage : AsyncPackage
{
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
readonly IServiceProvider serviceProvider;
static GitHubPackage()
@@ -46,12 +47,23 @@ public GitHubPackage(IServiceProvider serviceProvider)
this.serviceProvider = serviceProvider;
}
- protected override void Initialize()
+ protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
{
- base.Initialize();
- IncrementLaunchCount();
+ await base.InitializeAsync(cancellationToken, progress);
+ await EnsurePackageLoaded(new Guid(ServiceProviderPackage.ServiceProviderPackageId));
+
+ // Activate the usage tracker by forcing an instance to be created.
+ GetServiceAsync(typeof(IUsageTracker)).Forget();
+
+ InitializeMenus().Forget();
+ }
+
+ async Task InitializeMenus()
+ {
+ var menus = await GetServiceAsync(typeof(IMenuProvider)) as IMenuProvider;
+
+ await ThreadingHelper.SwitchToMainThreadAsync();
- var menus = serviceProvider.GetExportedValue();
foreach (var menu in menus.Menus)
serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, (s, e) => menu.Activate());
@@ -59,11 +71,16 @@ protected override void Initialize()
serviceProvider.AddCommandHandler(menu.Guid, menu.CmdId, menu.CanShow, () => menu.Activate());
}
- void IncrementLaunchCount()
+ async Task EnsurePackageLoaded(Guid packageGuid)
{
- var usageTracker = serviceProvider.GetExportedValue();
- usageTracker.IncrementLaunchCount();
+ var shell = await GetServiceAsync(typeof(SVsShell)) as IVsShell;
+ if (shell != null)
+ {
+ IVsPackage vsPackage;
+ ErrorHandler.ThrowOnFailure(shell.LoadPackage(ref packageGuid, out vsPackage));
+ }
}
+
}
[Export(typeof(IGitHubClient))]
@@ -78,14 +95,17 @@ public GHClient(IProgram program)
[NullGuard.NullGuard(NullGuard.ValidationFlags.None)]
[PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
+ [ProvideService(typeof(IMenuProvider), IsAsyncQueryable = true)]
[ProvideService(typeof(IUIProvider), IsAsyncQueryable = true)]
+ [ProvideService(typeof(IUsageTracker), IsAsyncQueryable = true)]
[ProvideAutoLoad(UIContextGuids.NoSolution)]
[ProvideAutoLoad(UIContextGuids.SolutionExists)]
[Guid(ServiceProviderPackageId)]
public sealed class ServiceProviderPackage : AsyncPackage
{
- const string ServiceProviderPackageId = "D5CE1488-DEDE-426D-9E5B-BFCCFBE33E53";
+ public const string ServiceProviderPackageId = "D5CE1488-DEDE-426D-9E5B-BFCCFBE33E53";
const string StartPagePreview4PackageId = "3b764d23-faf7-486f-94c7-b3accc44a70d";
+ const string StartPagePreview5PackageId = "3b764d23-faf7-486f-94c7-b3accc44a70e";
Version vsversion;
Version VSVersion
@@ -112,31 +132,41 @@ Version VSVersion
}
}
- protected override async tasks.Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
+ protected override Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
{
AddService(typeof(IUIProvider), CreateService, true);
-
- // Load the start page package only for Dev15 Preview 4
- if (VSVersion.Major == 15 && VSVersion.Build == 25618)
- {
- var shell = await GetServiceAsync(typeof(SVsShell)) as IVsShell;
- IVsPackage startPagePackage;
- if (ErrorHandler.Failed(shell?.LoadPackage(new Guid(StartPagePreview4PackageId), out startPagePackage) ?? -1))
- {
- // ¯\_(ツ)_/¯
- }
- }
+ AddService(typeof(IUsageTracker), CreateService, true);
+ AddService(typeof(IMenuProvider), CreateService, true);
+ return Task.CompletedTask;
}
- async tasks.Task