Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add ProviderFlags configuration property and associated handling to the design-time components installer. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | designOptions |
Files: | files | file ages | folders |
SHA1: |
940f8b3976c0ca829fbb2d3077b82e2a |
User & Date: | mistachkin 2014-08-02 03:57:33.046 |
Context
2014-08-02
| ||
05:02 | Fix missing call to SQLiteOptions.GetProviderName. check-in: f294bad7b4 user: mistachkin tags: designOptions | |
03:57 | Add ProviderFlags configuration property and associated handling to the design-time components installer. check-in: 940f8b3976 user: mistachkin tags: designOptions | |
03:27 | For the design-time components installer, remove ConfigInvariantName as a Package class property. check-in: fad33d0e23 user: mistachkin tags: designOptions | |
Changes
Changes to tools/install/Installer.cs.
︙ | ︙ | |||
93 94 95 96 97 98 99 | /////////////////////////////////////////////////////////////////////////// #region Public Enumerations [Flags()] public enum InstallFlags { | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | /////////////////////////////////////////////////////////////////////////// #region Public Enumerations [Flags()] public enum InstallFlags { #region Normal Values None = 0x0, GlobalAssemblyCache = 0x1, AssemblyFolders = 0x2, DbProviderFactory = 0x4, VsPackage = 0x8, VsPackageGlobalAssemblyCache = 0x10, VsDataSource = 0x20, VsDataProvider = 0x40, VsDevEnvSetup = 0x80, #endregion /////////////////////////////////////////////////////////////////////// #region Composite Values Framework = GlobalAssemblyCache | AssemblyFolders | DbProviderFactory, /////////////////////////////////////////////////////////////////////// Vs = VsPackage | VsPackageGlobalAssemblyCache | VsDataSource | VsDataProvider | VsDevEnvSetup, /////////////////////////////////////////////////////////////////////// All = Framework | Vs, /////////////////////////////////////////////////////////////////////// AllExceptGlobalAssemblyCache = All & ~(GlobalAssemblyCache | VsPackageGlobalAssemblyCache), #endregion /////////////////////////////////////////////////////////////////////// #region Suggested Default Values Default = All #endregion } /////////////////////////////////////////////////////////////////////////// [Flags()] public enum ProviderFlags { #region Normal Values None = 0x0, SystemEf6MustBeGlobal = 0x1, DidLinqWarning = 0x2, DidEf6Warning = 0x4, ForceLinqEnabled = 0x8, ForceLinqDisabled = 0x10, ForceEf6Enabled = 0x20, ForceEf6Disabled = 0x40, #endregion /////////////////////////////////////////////////////////////////////// #region Suggested Default Values Default = None #endregion } /////////////////////////////////////////////////////////////////////////// [Flags()] public enum TracePriority { #region Normal Values None = 0x0, Lowest = 0x1, Lower = 0x2, Low = 0x4, MediumLow = 0x8, Medium = 0x10, MediumHigh = 0x20, High = 0x40, Higher = 0x80, Highest = 0x100, #endregion /////////////////////////////////////////////////////////////////////// #region Suggested Default Flags Default = Medium #endregion } #endregion /////////////////////////////////////////////////////////////////////////// #region Installer Class #if NET_40 || NET_45 || NET_451 |
︙ | ︙ | |||
1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 | string designerFileName, string registryVersion, string configVersion, string vsVersionSuffix, string debugFormat, string traceFormat, InstallFlags installFlags, TracePriority debugPriority, TracePriority tracePriority, bool perUser, bool install, bool wow64, bool noRuntimeVersion, bool noDesktop, | > | 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 | string designerFileName, string registryVersion, string configVersion, string vsVersionSuffix, string debugFormat, string traceFormat, InstallFlags installFlags, ProviderFlags providerFlags, TracePriority debugPriority, TracePriority tracePriority, bool perUser, bool install, bool wow64, bool noRuntimeVersion, bool noDesktop, |
︙ | ︙ | |||
2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 | this.designerFileName = designerFileName; this.registryVersion = registryVersion; this.configVersion = configVersion; this.vsVersionSuffix = vsVersionSuffix; 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; | > | 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 | this.designerFileName = designerFileName; this.registryVersion = registryVersion; this.configVersion = configVersion; this.vsVersionSuffix = vsVersionSuffix; this.debugFormat = debugFormat; this.traceFormat = traceFormat; this.installFlags = installFlags; this.providerFlags = providerFlags; this.debugPriority = debugPriority; this.tracePriority = tracePriority; this.perUser = perUser; this.install = install; this.wow64 = wow64; this.noRuntimeVersion = noRuntimeVersion; this.noDesktop = noDesktop; |
︙ | ︙ | |||
2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 | TraceOps.DebugAndTrace(TracePriority.Highest, debugCallback, traceCallback, "Entity Framework 6 assembly was not resolved.", traceCategory); return false; } #endregion /////////////////////////////////////////////////////////////////// #region Public Static Methods public static void BreakIntoDebugger() { Console.WriteLine( | > > > > > > > > > > | | | 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 | TraceOps.DebugAndTrace(TracePriority.Highest, debugCallback, traceCallback, "Entity Framework 6 assembly was not resolved.", traceCategory); return false; } /////////////////////////////////////////////////////////////////// private static bool IsSystemEf6AssemblyGlobal() { if (systemEf6Assembly == null) return false; return systemEf6Assembly.GlobalAssemblyCache; } #endregion /////////////////////////////////////////////////////////////////// #region Public Static Methods public static void BreakIntoDebugger() { Console.WriteLine( "Attach a debugger to process {0} and press " + "any key to continue.", (thisProcess != null) ? thisProcess.Id.ToString() : "<unknown>"); try { Console.ReadKey(true); /* throw */ } catch (InvalidOperationException) // Console.ReadKey |
︙ | ︙ | |||
2251 2252 2253 2254 2255 2256 2257 | ref directory, ref coreFileName, ref linqFileName, ref ef6FileName, ref designerFileName); return new Configuration( thisAssembly, null, directory, coreFileName, linqFileName, ef6FileName, designerFileName, null, null, null, TraceOps.DebugFormat, TraceOps.TraceFormat, | | | | | | 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 | ref directory, ref coreFileName, ref linqFileName, ref ef6FileName, ref designerFileName); return new Configuration( thisAssembly, null, directory, coreFileName, linqFileName, ef6FileName, designerFileName, null, null, null, TraceOps.DebugFormat, TraceOps.TraceFormat, InstallFlags.Default, ProviderFlags.Default, TracePriority.Default, TracePriority.Default, false, true, false, false, false, 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, |
︙ | ︙ | |||
2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 | return false; continue; } configuration.perUser = (bool)value; } else if (MatchOption(newArg, "registryVersion")) { configuration.registryVersion = text; } else if (MatchOption(newArg, "strict")) { bool? value = ParseBoolean(text); | > > > > > > > > > > > > > > > > > > > > > | 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 | return false; continue; } configuration.perUser = (bool)value; } else if (MatchOption(newArg, "providerFlags")) { object value = ParseEnum( typeof(ProviderFlags), text, true); if (value == null) { error = TraceOps.DebugAndTrace( TracePriority.Lowest, debugCallback, traceCallback, String.Format( "Invalid provider flags value: {0}", ForDisplay(text)), traceCategory); if (strict) return false; continue; } configuration.providerFlags = (ProviderFlags)value; } else if (MatchOption(newArg, "registryVersion")) { configuration.registryVersion = text; } else if (MatchOption(newArg, "strict")) { bool? value = ParseBoolean(text); |
︙ | ︙ | |||
3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 | return ((installFlags & hasFlags) == hasFlags); else return ((installFlags & hasFlags) != InstallFlags.None); } /////////////////////////////////////////////////////////////////// public bool IsLinqSupported() { // // NOTE: Return non-zero if the System.Data.SQLite.Linq // assembly should be processed during the install. // If the target is Visual Studio 2005, this must // return zero. // return !noNetFx35 || !noNetFx40 || !noNetFx45 || !noNetFx451; } /////////////////////////////////////////////////////////////////// public bool IsEf6Supported() { // // NOTE: Return non-zero if the System.Data.SQLite.EF6 // assembly should be processed during the install. | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | < < > > > > | > > > > > > > > > | 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 | return ((installFlags & hasFlags) == hasFlags); else return ((installFlags & hasFlags) != InstallFlags.None); } /////////////////////////////////////////////////////////////////// public bool HasFlags( ProviderFlags hasFlags, bool all ) { if (all) return ((providerFlags & hasFlags) == hasFlags); else return ((providerFlags & hasFlags) != ProviderFlags.None); } /////////////////////////////////////////////////////////////////// public bool IsLinqSupported() { // // NOTE: Check to see if the caller has forced LINQ support to // be enabled -OR- disabled, thereby bypassing the need // for "automatic detection" by this method. // if (HasFlags(ProviderFlags.ForceLinqEnabled, true)) { if (!HasFlags(ProviderFlags.DidLinqWarning, true)) { TraceOps.DebugAndTrace(TracePriority.MediumHigh, debugCallback, traceCallback, "Forced to enable support for \"Linq\".", traceCategory); providerFlags |= ProviderFlags.DidLinqWarning; } return true; } else if (HasFlags(ProviderFlags.ForceLinqDisabled, true)) { if (!HasFlags(ProviderFlags.DidLinqWarning, true)) { TraceOps.DebugAndTrace(TracePriority.MediumHigh, debugCallback, traceCallback, "Forced to disable support for \"Linq\".", traceCategory); providerFlags |= ProviderFlags.DidLinqWarning; } return false; } // // NOTE: Return non-zero if the System.Data.SQLite.Linq // assembly should be processed during the install. // If the target is Visual Studio 2005, this must // return zero. // return !noNetFx35 || !noNetFx40 || !noNetFx45 || !noNetFx451; } /////////////////////////////////////////////////////////////////// public bool IsEf6Supported() { // // NOTE: Check to see if the caller has forced EF6 support to // be enabled -OR- disabled, thereby bypassing the need // for "automatic detection" by this method. // if (HasFlags(ProviderFlags.ForceEf6Enabled, true)) { if (!HasFlags(ProviderFlags.DidEf6Warning, true)) { TraceOps.DebugAndTrace(TracePriority.MediumHigh, debugCallback, traceCallback, "Forced to enable support for \"Ef6\".", traceCategory); providerFlags |= ProviderFlags.DidEf6Warning; } return true; } else if (HasFlags(ProviderFlags.ForceEf6Disabled, true)) { if (!HasFlags(ProviderFlags.DidEf6Warning, true)) { TraceOps.DebugAndTrace(TracePriority.MediumHigh, debugCallback, traceCallback, "Forced to disable support for \"Ef6\".", traceCategory); providerFlags |= ProviderFlags.DidEf6Warning; } return false; } // // NOTE: Return non-zero if the System.Data.SQLite.EF6 // assembly should be processed during the install. // If the target is Visual Studio 2005 or Visual Studio // 2008, this must return zero. // if (noNetFx40 && noNetFx45 && noNetFx451) return false; // // NOTE: Also, if the EF6 core assembly is unavailable, this // must return zero. // if (!IsSystemEf6AssemblyAvailable()) return false; // // NOTE: Finally, if the EF6 core assembly is not available // globally [and this is a requirement for the current // install], return zero. // return HasFlags(ProviderFlags.SystemEf6MustBeGlobal, true) ? IsSystemEf6AssemblyGlobal() : true; } /////////////////////////////////////////////////////////////////// public AssemblyName GetCoreAssemblyName() /* REQUIRED */ { if (coreAssemblyName == null) |
︙ | ︙ | |||
3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 | traceCallback(String.Format(NameAndValueFormat, "TraceFormat", ForDisplay(traceFormat)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "InstallFlags", ForDisplay(installFlags)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "DebugPriority", ForDisplay(debugPriority)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "TracePriority", ForDisplay(tracePriority)), | > > > > | 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 | traceCallback(String.Format(NameAndValueFormat, "TraceFormat", ForDisplay(traceFormat)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "InstallFlags", ForDisplay(installFlags)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "ProviderFlags", ForDisplay(providerFlags)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "DebugPriority", ForDisplay(debugPriority)), traceCategory); traceCallback(String.Format(NameAndValueFormat, "TracePriority", ForDisplay(tracePriority)), |
︙ | ︙ | |||
3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 | traceCategory); traceCallback(String.Format(NameAndValueFormat, "AssemblyConfiguration", ForDisplay(GetAssemblyConfiguration(assembly))), traceCategory); } /////////////////////////////////////////////////////////// traceCallback(String.Format(NameAndValueFormat, "IsLinqSupported", ForDisplay(IsLinqSupported())), traceCategory); | > > > > > > > > > > > > | 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 | traceCategory); traceCallback(String.Format(NameAndValueFormat, "AssemblyConfiguration", ForDisplay(GetAssemblyConfiguration(assembly))), traceCategory); } /////////////////////////////////////////////////////////// traceCallback(String.Format(NameAndValueFormat, "IsSystemEf6AssemblyAvailable", ForDisplay( IsSystemEf6AssemblyAvailable())), traceCategory); traceCallback(String.Format(NameAndValueFormat, "IsSystemEf6AssemblyGlobal", ForDisplay( IsSystemEf6AssemblyGlobal())), traceCategory); /////////////////////////////////////////////////////////// traceCallback(String.Format(NameAndValueFormat, "IsLinqSupported", ForDisplay(IsLinqSupported())), traceCategory); |
︙ | ︙ | |||
3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 | private InstallFlags installFlags; public InstallFlags InstallFlags { get { return installFlags; } set { installFlags = value; } } /////////////////////////////////////////////////////////////////// private TracePriority debugPriority; public TracePriority DebugPriority { get { return debugPriority; } | > > > > > > > > > | 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 | private InstallFlags installFlags; public InstallFlags InstallFlags { get { return installFlags; } set { installFlags = value; } } /////////////////////////////////////////////////////////////////// private ProviderFlags providerFlags; public ProviderFlags ProviderFlags { get { return providerFlags; } set { providerFlags = value; } } /////////////////////////////////////////////////////////////////// private TracePriority debugPriority; public TracePriority DebugPriority { get { return debugPriority; } |
︙ | ︙ |