Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Support modifying registry settings in the per-user hive for Visual Studio 2012. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
483a2c72afad376bb4c5da4d019a2f7b |
User & Date: | mistachkin 2012-09-16 04:03:49.583 |
Context
2012-09-16
| ||
04:32 | Support a version suffix to access the Visual Studio registry hive. This appears to be necessary only for Visual Studio 2012. check-in: 5d058ec6a5 user: mistachkin tags: trunk | |
04:03 | Support modifying registry settings in the per-user hive for Visual Studio 2012. check-in: 483a2c72af user: mistachkin tags: trunk | |
03:35 | Only set the 'Assembly' attribute if the package assembly is placed into the GAC. check-in: 3c650f7744 user: mistachkin tags: trunk | |
Changes
Changes to Setup/SQLite.iss.
︙ | ︙ | |||
114 115 116 117 118 119 120 | #if Year == "2008" Components: {#InstallerCondition}; Tasks: gac\vs2008; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx40 true -noNetFx45 true -noVs2005 true -noVs2010 true -noVs2012 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup() #endif #if Year == "2010" Components: {#InstallerCondition}; Tasks: gac\vs2010; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx45 true -noVs2005 true -noVs2008 true -noVs2012 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup() #endif #if Year == "2012" | | | | 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | #if Year == "2008" Components: {#InstallerCondition}; Tasks: gac\vs2008; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx40 true -noNetFx45 true -noVs2005 true -noVs2010 true -noVs2012 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup() #endif #if Year == "2010" Components: {#InstallerCondition}; Tasks: gac\vs2010; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx45 true -noVs2005 true -noVs2008 true -noVs2012 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup() #endif #if Year == "2012" Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-perUser true -install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx40 true -noVs2005 true -noVs2008 true -noVs2010 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup() #endif #endif [UninstallRun] #if Pos("NativeOnly", AppConfiguration) == 0 && AppProcessor == "x86" #if Year == "2012" Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-perUser true -install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx40 true -noVs2005 true -noVs2008 true -noVs2010 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup() #endif #if Year == "2010" Components: {#InstallerCondition}; Tasks: gac\vs2010; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx45 true -noVs2005 true -noVs2008 true -noVs2012 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup() #endif #if Year == "2008" Components: {#InstallerCondition}; Tasks: gac\vs2008; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx40 true -noNetFx45 true -noVs2005 true -noVs2010 true -noVs2012 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup() #endif |
︙ | ︙ |
Changes to tools/install/Installer.cs.
︙ | ︙ | |||
1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 | string registryVersion, string configVersion, string debugFormat, string traceFormat, InstallFlags installFlags, TracePriority debugPriority, TracePriority tracePriority, bool install, bool wow64, bool noRuntimeVersion, bool noDesktop, bool noCompact, bool noNetFx20, bool noNetFx40, | > | 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 | string registryVersion, string configVersion, string debugFormat, string traceFormat, InstallFlags installFlags, TracePriority debugPriority, TracePriority tracePriority, bool perUser, bool install, bool wow64, bool noRuntimeVersion, bool noDesktop, bool noCompact, bool noNetFx20, bool noNetFx40, |
︙ | ︙ | |||
1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 | this.registryVersion = registryVersion; this.configVersion = configVersion; this.debugFormat = debugFormat; this.traceFormat = traceFormat; this.installFlags = installFlags; this.debugPriority = debugPriority; this.tracePriority = tracePriority; this.install = install; this.wow64 = wow64; this.noRuntimeVersion = noRuntimeVersion; this.noDesktop = noDesktop; this.noCompact = noCompact; this.noNetFx20 = noNetFx20; this.noNetFx40 = noNetFx40; | > | 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 | this.registryVersion = registryVersion; this.configVersion = configVersion; this.debugFormat = debugFormat; this.traceFormat = traceFormat; this.installFlags = installFlags; this.debugPriority = debugPriority; this.tracePriority = tracePriority; this.perUser = perUser; this.install = install; this.wow64 = wow64; this.noRuntimeVersion = noRuntimeVersion; this.noDesktop = noDesktop; this.noCompact = noCompact; this.noNetFx20 = noNetFx20; this.noNetFx40 = noNetFx40; |
︙ | ︙ | |||
2114 2115 2116 2117 2118 2119 2120 | ref directory, ref coreFileName, ref linqFileName, ref designerFileName); return new Configuration(thisAssembly, null, directory, coreFileName, linqFileName, designerFileName, null, null, TraceOps.DebugFormat, TraceOps.TraceFormat, InstallFlags.Default, TracePriority.Default, | | | | 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 | ref directory, ref coreFileName, ref linqFileName, ref designerFileName); return new Configuration(thisAssembly, null, directory, coreFileName, linqFileName, designerFileName, null, null, TraceOps.DebugFormat, TraceOps.TraceFormat, InstallFlags.Default, TracePriority.Default, TracePriority.Default, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, false, false); } /////////////////////////////////////////////////////////////////// [MethodImpl(MethodImplOptions.NoInlining)] public static bool FromArgs( string[] args, |
︙ | ︙ | |||
2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 | if (strict) return false; continue; } configuration.noVs2012 = (bool)value; } else if (MatchOption(newArg, "registryVersion")) { configuration.registryVersion = text; } else if (MatchOption(newArg, "strict")) { | > > > > > > > > > > > > > > > > > > > > > | 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 | if (strict) return false; continue; } configuration.noVs2012 = (bool)value; } else if (MatchOption(newArg, "perUser")) { bool? value = ParseBoolean(text); if (value == null) { error = TraceOps.DebugAndTrace( TracePriority.Lowest, debugCallback, traceCallback, String.Format( "Invalid {0} boolean value: {1}", ForDisplay(arg), ForDisplay(text)), traceCategory); if (strict) return false; continue; } configuration.perUser = (bool)value; } else if (MatchOption(newArg, "registryVersion")) { configuration.registryVersion = text; } else if (MatchOption(newArg, "strict")) { |
︙ | ︙ | |||
3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 | traceCallback(String.Format(NameAndValueFormat, "DebugPriority", ForDisplay(debugPriority)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "TracePriority", ForDisplay(tracePriority)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "Install", ForDisplay(install)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "Wow64", ForDisplay(wow64)), | > > > > | 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 | traceCallback(String.Format(NameAndValueFormat, "DebugPriority", ForDisplay(debugPriority)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "TracePriority", ForDisplay(tracePriority)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "PerUser", ForDisplay(perUser)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "Install", ForDisplay(install)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "Wow64", ForDisplay(wow64)), |
︙ | ︙ | |||
3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 | private TracePriority tracePriority; public TracePriority TracePriority { get { return tracePriority; } set { tracePriority = value; } } /////////////////////////////////////////////////////////////////// private bool install; public bool Install { get { return install; } | > > > > > > > > > | 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 | private TracePriority tracePriority; public TracePriority TracePriority { get { return tracePriority; } set { tracePriority = value; } } /////////////////////////////////////////////////////////////////// private bool perUser; public bool PerUser { get { return perUser; } set { perUser = value; } } /////////////////////////////////////////////////////////////////// private bool install; public bool Install { get { return install; } |
︙ | ︙ | |||
3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 | // is true, we *know* that we must be running on a 64-bit // operating system as well. However, if this is false, we // do not necessarily know that we are running on a 32-bit // operating system, due to WoW64 (Win32-on-Win64), etc. // return (IntPtr.Size == sizeof(long)); // NOTE: Pointer is 64-bits? } /////////////////////////////////////////////////////////////////////// private static string GetRootKeyName( bool wow64 ) { | > > > > > > > > > > > | 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 | // is true, we *know* that we must be running on a 64-bit // operating system as well. However, if this is false, we // do not necessarily know that we are running on a 32-bit // operating system, due to WoW64 (Win32-on-Win64), etc. // return (IntPtr.Size == sizeof(long)); // NOTE: Pointer is 64-bits? } /////////////////////////////////////////////////////////////////////// private static bool IsSupportedRootKey( MockRegistry registry, MockRegistryKey rootKey ) { return Object.ReferenceEquals(rootKey, registry.CurrentUser) || Object.ReferenceEquals(rootKey, registry.LocalMachine); } /////////////////////////////////////////////////////////////////////// private static string GetRootKeyName( bool wow64 ) { |
︙ | ︙ | |||
4248 4249 4250 4251 4252 4253 4254 | if (rootKey == null) { error = "invalid root key"; return false; } | < | | 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 | if (rootKey == null) { error = "invalid root key"; return false; } if (!IsSupportedRootKey(registry, rootKey)) { error = "root key must be per-user or per-machine"; return false; } if (frameworkList.Names == null) { |
︙ | ︙ | |||
4450 4451 4452 4453 4454 4455 4456 | if (rootKey == null) { error = "invalid root key"; return false; } | < | | 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 | if (rootKey == null) { error = "invalid root key"; return false; } if (!IsSupportedRootKey(registry, rootKey)) { error = "root key must be per-user or per-machine"; return false; } if (frameworkList.Names == null) { |
︙ | ︙ | |||
4670 4671 4672 4673 4674 4675 4676 | if (rootKey == null) { error = "invalid root key"; return false; } | < | | 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 | if (rootKey == null) { error = "invalid root key"; return false; } if (!IsSupportedRootKey(registry, rootKey)) { error = "root key must be per-user or per-machine"; return false; } if (vsList.Versions == null) { |
︙ | ︙ | |||
6003 6004 6005 6006 6007 6008 6009 | InstallFlags.GlobalAssemblyCache, true) && configuration.HasFlags( InstallFlags.VsPackageGlobalAssemblyCache, true), ref package); /////////////////////////////////////////////////////////// | | > | 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 | InstallFlags.GlobalAssemblyCache, true) && configuration.HasFlags( InstallFlags.VsPackageGlobalAssemblyCache, true), ref package); /////////////////////////////////////////////////////////// InitializeFrameworkList(configuration.PerUser ? registry.CurrentUser : registry.LocalMachine, configuration, ref frameworkList); InitializeVsList(registry.LocalMachine, configuration, ref vsList); #endregion /////////////////////////////////////////////////////////// |
︙ | ︙ |