Ejemplo n.º 1
0
        /// <summary>
        ///   Workarround for toolbar not being removed when add-in is
        ///   uninstalled.
        /// </summary>
        private void RemovePermamanentUI(DevEnvironmentVersion devEnvironmentVersion)
        {
            try
            {
                // since command removal is dealing with CommandBar objects that are in
                // different namespaces and assemblies in .NET 1.1 and later versions,
                // removal process has been placed into implementation assemblies to
                // cope with these differences. Therefore corresponding method is called
                // using reflection mechanism.
                Assembly assembly = ImplementationAssemblyLoader.LoadMainAssembly(devEnvironmentVersion.RuntimeVersion);
                Type     type     = assembly.GetType("BuildAutoIncrement.PermanentUIRemover");
                Debug.Assert(type != null);
                MethodInfo mi = type.GetMethod("Remove");
                Debug.Assert(mi != null && mi.IsStatic);
                mi.Invoke(null, new object[] { devEnvironmentVersion.ProgId });
            }
            catch (Exception e)
            {
#if DEBUG_SETUP
                ExceptionForm.Show(e, devEnvironmentVersion.ProgId);
#else
                string message = string.Format(ToolbarRemovalFailed, devEnvironmentVersion.Name) + Environment.NewLine + RemoveToolbarManually;
                MessageBox.Show(message, MessageBoxCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning);
#endif
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 ///   Check if PreloadAddinState key exists (i.e. if environment has been
 ///   started after add-in installation).
 /// </summary>
 /// <param name="devEnvironmentVersion"></param>
 /// <returns></returns>
 private bool PreloadAddinStateExists(DevEnvironmentVersion devEnvironmentVersion)
 {
     using (RegistryKey rk = Registry.CurrentUser.OpenSubKey(PreloadAddinStateKey(devEnvironmentVersion), true))
     {
         return(rk != null && devEnvironmentVersion.AddinProgId.Length > 0 && rk.GetValue(devEnvironmentVersion.AddinProgId) != null);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 ///   Deletes add-in entry in PreloadAddinState key of the current user.
 /// </summary>
 private void DeletePreloadAddinState(DevEnvironmentVersion devEnvironmentVersion)
 {
     using (RegistryKey rk = Registry.CurrentUser.OpenSubKey(PreloadAddinStateKey(devEnvironmentVersion), true))
     {
         if (rk != null && devEnvironmentVersion.AddinProgId.Length > 0)
         {
             rk.DeleteValue(devEnvironmentVersion.AddinProgId, false);
         }
     }
 }
Ejemplo n.º 4
0
 /// <summary>
 ///   Checks if a version of Visual Studio is installed by reading
 ///   the registry.
 /// </summary>
 /// <param name="devEnvironmentVersion">
 ///   Version of Visual Studio to check for.
 /// </param>
 /// <returns>
 ///   <code>true</code> if Visual Studio is installed, otherwise
 ///   <code>false</code>.
 /// </returns>
 private bool IsDevEnvironmentInstalled(DevEnvironmentVersion devEnvironmentVersion)
 {
     using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(string.Format(VisualStudioRegistryPath, devEnvironmentVersion.Version)))
     {
         if (rk == null)
         {
             return(false);
         }
         return(rk.GetValue("InstallDir") != null);
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 ///   Gets the PreloadAddinState key.
 /// </summary>
 /// <param name="devEnvironmentVersion"></param>
 /// <returns>
 ///   Full path to the registry key.
 /// </returns>
 private string PreloadAddinStateKey(DevEnvironmentVersion devEnvironmentVersion)
 {
     return(string.Format(VisualStudioRegistryPath + "\\{1}", devEnvironmentVersion.Version, PreloadAddinStateSubKey));
 }