private void synchronizeVsixButton() { VsixButton.InvokeSafe(() => { var vsixVersion = launcher.SdkVersionManager.VsixVersion; var latestPkg = vsixVersion.LatestAvailablePackage; var currentPkg = vsixVersion.InstalledPackage; // No version, remote nor local if (latestPkg == null) { VsixButton.Text = "Install"; VsixButton.Enabled = false; return; } VsixButton.Enabled = true; if (currentPkg == null) { VsixButton.Text = "Install"; return; } VsixButton.Text = latestPkg.Version > currentPkg.Version ? "Upgrade to " + latestPkg.Version.Version : "Re-Install"; }); }
// Checks the VSIX status and recommend to install the latest plugin to the user (if available) private void ProposeVSIXInstallIfNecessary() { VsixButton.InvokeSafe(() => { var vsixVersion = launcher.SdkVersionManager.VsixVersion; var latestPkg = vsixVersion.LatestAvailablePackage; var currentPkg = vsixVersion.InstalledPackage; if (latestPkg == null) { // No VSIX on the server return; } bool installPossible = false; bool upgradePossible = false; if (currentPkg == null) { installPossible = true; } else { upgradePossible = latestPkg.Version > currentPkg.Version; } // No install nor upgrade possible if (!installPossible && !upgradePossible) { return; } // Propose install var confirmResult = MessageBox.Show("We recommend " + (installPossible? "installing": "upgrading") + " the Visual Studio integration for Paradox.\nInstall plugin for Visual Studio? ", "Visual Studio Integration", MessageBoxButtons.YesNo); if (confirmResult == DialogResult.No) { return; } launcher.InstallVsixPackage(vsixVersion.InstalledPackage, vsixVersion.LatestAvailablePackage); }); }