DELETED tools/install/GACWrap.cs Index: tools/install/GACWrap.cs ================================================================== --- tools/install/GACWrap.cs +++ /dev/null @@ -1,507 +0,0 @@ -//------------------------------------------------------------- -// GACWrap.cs -// -// This implements managed wrappers to GAC API Interfaces -//------------------------------------------------------------- - -using System; -using System.Runtime.InteropServices; -using System.Text; - -namespace System.GACManagedAccess -{ - //------------------------------------------------------------- - // Interfaces defined by fusion - //------------------------------------------------------------- - [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("e707dcde-d1cd-11d2-bab9-00c04f8eceae")] - internal interface IAssemblyCache - { - [PreserveSig()] - int UninstallAssembly( - int flags, - [MarshalAs(UnmanagedType.LPWStr)] - String assemblyName, - InstallReference refData, - out AssemblyCacheUninstallDisposition disposition); - - [PreserveSig()] - int QueryAssemblyInfo( - int flags, - [MarshalAs(UnmanagedType.LPWStr)] - String assemblyName, - ref AssemblyInfo assemblyInfo); - [PreserveSig()] - int Reserved( - int flags, - IntPtr pvReserved, - out Object ppAsmItem, - [MarshalAs(UnmanagedType.LPWStr)] - String assemblyName); - [PreserveSig()] - int Reserved(out Object ppAsmScavenger); - - [PreserveSig()] - int InstallAssembly( - int flags, - [MarshalAs(UnmanagedType.LPWStr)] - String assemblyFilePath, - InstallReference refData); - }// IAssemblyCache - - [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("CD193BC0-B4BC-11d2-9833-00C04FC31D2E")] - internal interface IAssemblyName - { - [PreserveSig()] - int SetProperty( - int PropertyId, - IntPtr pvProperty, - int cbProperty); - - [PreserveSig()] - int GetProperty( - int PropertyId, - IntPtr pvProperty, - ref int pcbProperty); - - [PreserveSig()] - int Finalize(); - - [PreserveSig()] - int GetDisplayName( - StringBuilder pDisplayName, - ref int pccDisplayName, - int displayFlags); - - [PreserveSig()] - int Reserved(ref Guid guid, - Object obj1, - Object obj2, - String string1, - Int64 llFlags, - IntPtr pvReserved, - int cbReserved, - out IntPtr ppv); - - [PreserveSig()] - int GetName( - ref int pccBuffer, - StringBuilder pwzName); - - [PreserveSig()] - int GetVersion( - out int versionHi, - out int versionLow); - [PreserveSig()] - int IsEqual( - IAssemblyName pAsmName, - int cmpFlags); - - [PreserveSig()] - int Clone(out IAssemblyName pAsmName); - }// IAssemblyName - - [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("21b8916c-f28e-11d2-a473-00c04f8ef448")] - internal interface IAssemblyEnum - { - [PreserveSig()] - int GetNextAssembly( - IntPtr pvReserved, - out IAssemblyName ppName, - int flags); - [PreserveSig()] - int Reset(); - [PreserveSig()] - int Clone(out IAssemblyEnum ppEnum); - }// IAssemblyEnum - - [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("582dac66-e678-449f-aba6-6faaec8a9394")] - internal interface IInstallReferenceItem - { - // A pointer to a FUSION_INSTALL_REFERENCE structure. - // The memory is allocated by the GetReference method and is freed when - // IInstallReferenceItem is released. Callers must not hold a reference to this - // buffer after the IInstallReferenceItem object is released. - // This uses the InstallReferenceOutput object to avoid allocation - // issues with the interop layer. - // This cannot be marshaled directly - must use IntPtr - [PreserveSig()] - int GetReference( - out IntPtr pRefData, - int flags, - IntPtr pvReserced); - }// IInstallReferenceItem - - [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("56b1a988-7c0c-4aa2-8639-c3eb5a90226f")] - internal interface IInstallReferenceEnum - { - [PreserveSig()] - int GetNextInstallReferenceItem( - out IInstallReferenceItem ppRefItem, - int flags, - IntPtr pvReserced); - }// IInstallReferenceEnum - - public enum AssemblyCommitFlags - { - Default = 1, - Force = 2 - }// enum AssemblyCommitFlags - - public enum AssemblyCacheUninstallDisposition - { - Unknown = 0, - Uninstalled = 1, - StillInUse = 2, - AlreadyUninstalled = 3, - DeletePending = 4, - HasInstallReference = 5, - ReferenceNotFound = 6 - } - - [Flags] - internal enum AssemblyCacheFlags - { - GAC = 2, - } - - internal enum CreateAssemblyNameObjectFlags - { - CANOF_DEFAULT = 0, - CANOF_PARSE_DISPLAY_NAME = 1, - } - - [Flags] - internal enum AssemblyNameDisplayFlags - { - VERSION = 0x01, - CULTURE = 0x02, - PUBLIC_KEY_TOKEN = 0x04, - PROCESSORARCHITECTURE = 0x20, - RETARGETABLE = 0x80, - // This enum will change in the future to include - // more attributes. - ALL = VERSION - | CULTURE - | PUBLIC_KEY_TOKEN - | PROCESSORARCHITECTURE - | RETARGETABLE - } - - [StructLayout(LayoutKind.Sequential)] - public class InstallReference - { - public InstallReference(Guid guid, String id, String data) - { - cbSize = (int)(2 * IntPtr.Size + 16 + (id.Length + data.Length) * 2); - flags = 0; - // quiet compiler warning - if (flags == 0) { } - guidScheme = guid; - identifier = id; - description = data; - } - - public Guid GuidScheme - { - get { return guidScheme; } - } - - public String Identifier - { - get { return identifier; } - } - - public String Description - { - get { return description; } - } - - int cbSize; - int flags; - Guid guidScheme; - [MarshalAs(UnmanagedType.LPWStr)] - String identifier; - [MarshalAs(UnmanagedType.LPWStr)] - String description; - } - - [StructLayout(LayoutKind.Sequential)] - internal struct AssemblyInfo - { - public int cbAssemblyInfo; // size of this structure for future expansion - public int assemblyFlags; - public long assemblySizeInKB; - [MarshalAs(UnmanagedType.LPWStr)] - public String currentAssemblyPath; - public int cchBuf; // size of path buf. - } - - [ComVisible(false)] - public class InstallReferenceGuid - { - public static bool IsValidGuidScheme(Guid guid) - { - return (guid.Equals(UninstallSubkeyGuid) || - guid.Equals(FilePathGuid) || - guid.Equals(OpaqueGuid) || - guid.Equals(Guid.Empty)); - } - - public readonly static Guid UninstallSubkeyGuid = new Guid("8cedc215-ac4b-488b-93c0-a50a49cb2fb8"); - public readonly static Guid FilePathGuid = new Guid("b02f9d65-fb77-4f7a-afa5-b391309f11c9"); - public readonly static Guid OpaqueGuid = new Guid("2ec93463-b0c3-45e1-8364-327e96aea856"); - // these GUID cannot be used for installing into GAC. - public readonly static Guid MsiGuid = new Guid("25df0fc1-7f97-4070-add7-4b13bbfd7cb8"); - public readonly static Guid OsInstallGuid = new Guid("d16d444c-56d8-11d5-882d-0080c847b195"); - } - - [ComVisible(false)] - public static class AssemblyCache - { - public static void InstallAssembly(String assemblyPath, InstallReference reference, AssemblyCommitFlags flags) - { - if (reference != null) - { - if (!InstallReferenceGuid.IsValidGuidScheme(reference.GuidScheme)) - throw new ArgumentException("Invalid reference guid.", "guid"); - } - - IAssemblyCache ac = null; - - int hr = 0; - - hr = Utils.CreateAssemblyCache(out ac, 0); - if (hr >= 0) - { - hr = ac.InstallAssembly((int)flags, assemblyPath, reference); - } - - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - } - - // assemblyName has to be fully specified name. - // A.k.a, for v1.0/v1.1 assemblies, it should be "name, Version=xx, Culture=xx, PublicKeyToken=xx". - // For v2.0 assemblies, it should be "name, Version=xx, Culture=xx, PublicKeyToken=xx, ProcessorArchitecture=xx". - // If assemblyName is not fully specified, a random matching assembly will be uninstalled. - public static void UninstallAssembly(String assemblyName, InstallReference reference, out AssemblyCacheUninstallDisposition disp) - { - AssemblyCacheUninstallDisposition dispResult = AssemblyCacheUninstallDisposition.Uninstalled; - if (reference != null) - { - if (!InstallReferenceGuid.IsValidGuidScheme(reference.GuidScheme)) - throw new ArgumentException("Invalid reference guid.", "guid"); - } - - IAssemblyCache ac = null; - - int hr = Utils.CreateAssemblyCache(out ac, 0); - if (hr >= 0) - { - hr = ac.UninstallAssembly(0, assemblyName, reference, out dispResult); - } - - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - - disp = dispResult; - } - - // See comments in UninstallAssembly - public static String QueryAssemblyInfo(String assemblyName) - { - if (assemblyName == null) - { - throw new ArgumentException("Invalid name", "assemblyName"); - } - - AssemblyInfo aInfo = new AssemblyInfo(); - - aInfo.cchBuf = 1024; - // Get a string with the desired length - aInfo.currentAssemblyPath = new String('\0', aInfo.cchBuf); - - IAssemblyCache ac = null; - int hr = Utils.CreateAssemblyCache(out ac, 0); - if (hr >= 0) - { - hr = ac.QueryAssemblyInfo(0, assemblyName, ref aInfo); - } - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - - return aInfo.currentAssemblyPath; - } - } - - [ComVisible(false)] - public class AssemblyCacheEnum - { - // null means enumerate all the assemblies - public AssemblyCacheEnum(String assemblyName) - { - IAssemblyName fusionName = null; - int hr = 0; - - if (assemblyName != null) - { - hr = Utils.CreateAssemblyNameObject( - out fusionName, - assemblyName, - CreateAssemblyNameObjectFlags.CANOF_PARSE_DISPLAY_NAME, - IntPtr.Zero); - } - - if (hr >= 0) - { - hr = Utils.CreateAssemblyEnum( - out m_AssemblyEnum, - IntPtr.Zero, - fusionName, - AssemblyCacheFlags.GAC, - IntPtr.Zero); - } - - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - } - - public String GetNextAssembly() - { - int hr = 0; - IAssemblyName fusionName = null; - - if (done) - { - return null; - } - - // Now get next IAssemblyName from m_AssemblyEnum - hr = m_AssemblyEnum.GetNextAssembly((IntPtr)0, out fusionName, 0); - - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - - if (fusionName != null) - { - return GetFullName(fusionName); - } - else - { - done = true; - return null; - } - } - - private String GetFullName(IAssemblyName fusionAsmName) - { - StringBuilder sDisplayName = new StringBuilder(1024); - int iLen = 1024; - - int hr = fusionAsmName.GetDisplayName(sDisplayName, ref iLen, (int)AssemblyNameDisplayFlags.ALL); - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - - return sDisplayName.ToString(); - } - - private IAssemblyEnum m_AssemblyEnum = null; - private bool done; - }// class AssemblyCacheEnum - - public class AssemblyCacheInstallReferenceEnum - { - public AssemblyCacheInstallReferenceEnum(String assemblyName) - { - IAssemblyName fusionName = null; - - int hr = Utils.CreateAssemblyNameObject( - out fusionName, - assemblyName, - CreateAssemblyNameObjectFlags.CANOF_PARSE_DISPLAY_NAME, - IntPtr.Zero); - - if (hr >= 0) - { - hr = Utils.CreateInstallReferenceEnum(out refEnum, fusionName, 0, IntPtr.Zero); - } - - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - } - - public InstallReference GetNextReference() - { - IInstallReferenceItem item = null; - int hr = refEnum.GetNextInstallReferenceItem(out item, 0, IntPtr.Zero); - if ((uint)hr == 0x80070103) - { // ERROR_NO_MORE_ITEMS - return null; - } - - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - - IntPtr refData; - InstallReference instRef = new InstallReference(Guid.Empty, String.Empty, String.Empty); - - hr = item.GetReference(out refData, 0, IntPtr.Zero); - if (hr < 0) - { - Marshal.ThrowExceptionForHR(hr); - } - - Marshal.PtrToStructure(refData, instRef); - return instRef; - } - - private IInstallReferenceEnum refEnum; - } - - internal class Utils - { - [DllImport("fusion.dll")] - internal static extern int CreateAssemblyEnum( - out IAssemblyEnum ppEnum, - IntPtr pUnkReserved, - IAssemblyName pName, - AssemblyCacheFlags flags, - IntPtr pvReserved); - - [DllImport("fusion.dll")] - internal static extern int CreateAssemblyNameObject( - out IAssemblyName ppAssemblyNameObj, - [MarshalAs(UnmanagedType.LPWStr)] - String szAssemblyName, - CreateAssemblyNameObjectFlags flags, - IntPtr pvReserved); - - [DllImport("fusion.dll")] - internal static extern int CreateAssemblyCache( - out IAssemblyCache ppAsmCache, - int reserved); - - [DllImport("fusion.dll")] - internal static extern int CreateInstallReferenceEnum( - out IInstallReferenceEnum ppRefEnum, - IAssemblyName pName, - int dwFlags, - IntPtr pvReserved); - } -} DELETED tools/install/InstallDesigner.Designer.cs Index: tools/install/InstallDesigner.Designer.cs ================================================================== --- tools/install/InstallDesigner.Designer.cs +++ /dev/null @@ -1,145 +0,0 @@ -namespace install -{ - partial class InstallDesigner - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Windows.Forms.ColumnHeader columnHeader1; - System.Windows.Forms.Label label1; - System.Windows.Forms.Label label3; - System.Windows.Forms.Label label2; - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallDesigner)); - this.installList = new System.Windows.Forms.ListView(); - this.warningPanel = new System.Windows.Forms.Panel(); - this.closeButton = new System.Windows.Forms.Button(); - columnHeader1 = new System.Windows.Forms.ColumnHeader(); - label1 = new System.Windows.Forms.Label(); - label3 = new System.Windows.Forms.Label(); - label2 = new System.Windows.Forms.Label(); - this.warningPanel.SuspendLayout(); - this.SuspendLayout(); - // - // columnHeader1 - // - columnHeader1.Text = "Environment"; - columnHeader1.Width = 800; - // - // label1 - // - label1.AutoSize = true; - label1.Location = new System.Drawing.Point(13, 13); - label1.Name = "label1"; - label1.Size = new System.Drawing.Size(325, 13); - label1.TabIndex = 0; - label1.Text = "Install SQLite Design-Time Support for the following environments:"; - // - // label3 - // - label3.AutoSize = true; - label3.Location = new System.Drawing.Point(0, 0); - label3.Name = "label3"; - label3.Size = new System.Drawing.Size(13, 13); - label3.TabIndex = 5; - label3.Text = "*"; - // - // label2 - // - label2.Location = new System.Drawing.Point(10, 0); - label2.Name = "label2"; - label2.Size = new System.Drawing.Size(340, 61); - label2.TabIndex = 4; - label2.Text = resources.GetString("label2.Text"); - // - // installList - // - this.installList.CheckBoxes = true; - this.installList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - columnHeader1}); - this.installList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; - this.installList.Location = new System.Drawing.Point(13, 30); - this.installList.Name = "installList"; - this.installList.Size = new System.Drawing.Size(350, 149); - this.installList.TabIndex = 1; - this.installList.UseCompatibleStateImageBehavior = false; - this.installList.View = System.Windows.Forms.View.List; - this.installList.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.installList_ItemChecked); - // - // warningPanel - // - this.warningPanel.Controls.Add(label3); - this.warningPanel.Controls.Add(label2); - this.warningPanel.Location = new System.Drawing.Point(13, 186); - this.warningPanel.Name = "warningPanel"; - this.warningPanel.Size = new System.Drawing.Size(350, 73); - this.warningPanel.TabIndex = 2; - this.warningPanel.Visible = false; - // - // closeButton - // - this.closeButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.closeButton.Location = new System.Drawing.Point(288, 270); - this.closeButton.Name = "closeButton"; - this.closeButton.Size = new System.Drawing.Size(75, 23); - this.closeButton.TabIndex = 3; - this.closeButton.Text = "&Close"; - this.closeButton.UseVisualStyleBackColor = true; - this.closeButton.Click += new System.EventHandler(this.closeButton_Click); - // - // InstallDesigner - // - this.AcceptButton = this.closeButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.closeButton; - this.ClientSize = new System.Drawing.Size(375, 305); - this.Controls.Add(this.closeButton); - this.Controls.Add(this.warningPanel); - this.Controls.Add(this.installList); - this.Controls.Add(label1); - this.Font = new System.Drawing.Font("MS Shell Dlg 2", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "InstallDesigner"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "SQLite Designer Installation"; - this.TopMost = true; - this.warningPanel.ResumeLayout(false); - this.warningPanel.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ListView installList; - private System.Windows.Forms.Panel warningPanel; - private System.Windows.Forms.Button closeButton; - } -} DELETED tools/install/InstallDesigner.cs Index: tools/install/InstallDesigner.cs ================================================================== --- tools/install/InstallDesigner.cs +++ /dev/null @@ -1,1031 +0,0 @@ -/******************************************************** - * ADO.NET 2.0 Data Provider for SQLite Version 3.X - * Written by Robert Simpson (robert@blackcastlesoft.com) - * - * Released to the public domain, use at your own risk! - ********************************************************/ - -namespace install -{ - using System; - using System.ComponentModel; - using System.Data; - using System.Drawing; - using System.Text; - using System.Windows.Forms; - using Microsoft.Win32; - using System.IO; - using System.GACManagedAccess; - using System.Xml; - using System.Diagnostics; - using System.Collections.Generic; - - public partial class InstallDesigner : Form - { - private static Guid standardDataProviderGuid = new Guid("{0EBAAB6E-CA80-4b4a-8DDF-CBE6BF058C70}"); - private static Guid standardDataSourcesGuid = new Guid("{0EBAAB6E-CA80-4b4a-8DDF-CBE6BF058C71}"); - private static Guid standardCFDataSourcesGuid = new Guid("{0EBAAB6E-CA80-4b4a-8DDF-CBE6BF058C72}"); - private static Guid oledbDataProviderGuid = new Guid("{7F041D59-D76A-44ed-9AA2-FBF6B0548B80}"); - private static Guid oledbAltDataProviderGuid = new Guid("{7F041D59-D76A-44ed-9AA2-FBF6B0548B81}"); - private static Guid jetDataSourcesGuid = new Guid("{466CE797-67A4-4495-B75C-A3FD282E7FC3}"); - private static Guid jetAltDataSourcesGuid = new Guid("{466CE797-67A4-4495-B75C-A3FD282E7FC4}"); - private static string[] compactFrameworks = new string[] { /*"PocketPC", "SmartPhone", "WindowsCE"*/ }; - - internal bool _remove = false; - //private string _regRoot = "8.0"; - private System.Reflection.Assembly _assm = null; - private bool _ignoreChecks = true; - private string _assmLocation; - - private Dictionary _regRoots = new Dictionary(); - private List _frameworks = new List(); - - string SQLiteLocation - { - get - { - System.Reflection.Assembly assm = SQLite; - return _assmLocation; - } - } - - System.Reflection.Assembly SQLite - { - get - { - if (_assm == null) - { - Environment.CurrentDirectory = Path.GetDirectoryName(typeof(InstallDesigner).Assembly.Location); - - try - { - _assmLocation = Path.GetFullPath("..\\System.Data.SQLite.DLL"); - _assm = System.Reflection.Assembly.LoadFrom(_assmLocation); - } - catch - { - } - } - - OpenFileDialog dlg = new OpenFileDialog(); - while (_assm == null) - { - dlg.Multiselect = false; - dlg.InitialDirectory = Environment.CurrentDirectory; - dlg.FileName = "System.Data.SQLite.DLL"; - dlg.Filter = "System.Data.SQLite.DLL|System.Data.SQLite.DLL"; - if (dlg.ShowDialog() == DialogResult.OK) - { - try - { - _assmLocation = dlg.FileName; - _assm = System.Reflection.Assembly.LoadFrom(dlg.FileName); - } - catch - { - } - } - else - throw new ArgumentException("Unable to find or load System.Data.SQLite.DLL"); - } - return _assm; - } - - set - { - _assm = value; - } - } - - public InstallDesigner() - { - string[] args = Environment.GetCommandLineArgs(); - RegistryKey key; - string frameworkpath; - - //_regRoots.Add("8.0", "2005"); - //_regRoots.Add("9.0", "2008"); - _regRoots.Add("10.0", "2010"); - - using (key = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\.NETFramework")) - { - frameworkpath = key.GetValue("InstallRoot") as string; - } - - string[] frameworkfolders = Directory.GetDirectories(frameworkpath); - foreach (string framework in frameworkfolders) - { - // Don't do this on frameworks before 4.0 - string version = Path.GetFileNameWithoutExtension(framework); - if (String.Compare(version, "v4.0", StringComparison.OrdinalIgnoreCase) < 0) - continue; - - if (File.Exists(Path.Combine(framework, "CONFIG\\machine.config"))) - _frameworks.Add(Path.GetFileName(framework)); - } - - for (int n = 0; n < args.Length; n++) - { - if (String.Compare(args[n], "/regroot", true) == 0 || - String.Compare(args[n], "-regroot", true) == 0) - { - _regRoots.Add(args[n + 1], args[n + 1]); - break; - } - else if (String.Compare(args[n], "/remove", true) == 0 || - String.Compare(args[n], "-remove", true) == 0) - { - _remove = true; - } - } - - InitializeComponent(); - - foreach (KeyValuePair pair in _regRoots) - { - using (key = Registry.LocalMachine.OpenSubKey("Software\\Microsoft")) - { - AddItem(key, pair.Key, "VisualStudio", String.Format("Visual Studio {0} (full editions)", pair.Value), standardDataProviderGuid, null); - AddItem(key, pair.Key, "VWDExpress", String.Format("Visual Web Developer Express {0} Edition", pair.Value), standardDataProviderGuid, null); - - warningPanel.Visible = (AddItem(key, pair.Key, "VCSExpress", String.Format("Visual C# Express {0} Edition *", pair.Value), oledbDataProviderGuid, oledbAltDataProviderGuid) - | AddItem(key, pair.Key, "VCExpress", String.Format("Visual C++ Express {0} Edition *", pair.Value), oledbDataProviderGuid, oledbAltDataProviderGuid) - | AddItem(key, pair.Key, "VBExpress", String.Format("Visual Basic Express {0} Edition *", pair.Value), oledbDataProviderGuid, oledbAltDataProviderGuid) - | AddItem(key, pair.Key, "VJSExpress", String.Format("Visual J# Express {0} Edition *", pair.Value), oledbDataProviderGuid, oledbAltDataProviderGuid)); - } - GlobalAddRemove(pair.Key); - } - - _ignoreChecks = false; - } - - private bool AddItem(RegistryKey parent, string version, string subkeyname, string itemName, Guid lookFor, object isChecked) - { - RegistryKey subkey; - - try - { - using (subkey = parent.OpenSubKey(String.Format("{0}\\{1}", subkeyname, version))) - { - ListViewItem item = new ListViewItem(itemName); - - item.Tag = new string[] { subkeyname, version }; - - // Verify this edition has been installed and its not a fluke that the key exists - string dir = (string)subkey.GetValue("InstallDir"); - - using (RegistryKey subsubkey = subkey.OpenSubKey("Packages")) - { - if (subsubkey == null) - throw new ArgumentException("Edition not installed"); - if (subsubkey.SubKeyCount < 5) - throw new ArgumentException("Edition not installed"); - } - - using (RegistryKey subsubkey = subkey.OpenSubKey("DataProviders")) - { - if (subsubkey == null) - throw new ArgumentException("Edition not installed"); - } - - using (RegistryKey subsubkey = subkey.OpenSubKey(String.Format("DataProviders\\{0}", (isChecked == null) ? lookFor.ToString("B") : ((Guid)isChecked).ToString("B")))) - { - if (subsubkey == null) - { - DoInstallUninstall(item); - } - else - { - bool itemChecked = (subsubkey.GetValue(null) != null); - DoInstallUninstall(item); - if (_remove == false) item.Checked = itemChecked; - } - } - - installList.Items.Add(item); - if (item.Checked) - { - DoInstallUninstall(item); - } - return true; - } - } - catch - { - return false; - } - } - - private void closeButton_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void installList_ItemChecked(object sender, ItemCheckedEventArgs e) - { - if (_ignoreChecks) return; - - string[] arr = (string[])e.Item.Tag; - - DoInstallUninstall(e.Item); - - GlobalAddRemove(arr[1]); - } - - private void DoInstallUninstall(ListViewItem Item) - { - string[] arr = (string[])Item.Tag; - if (Item.Checked == false) - { - if (Item.Text.IndexOf('*') > -1) - RestoreJet(arr[0], arr[1]); - else - Uninstall(arr[0], arr[1], standardDataProviderGuid, standardDataSourcesGuid); - } - else - { - if (Item.Text.IndexOf('*') > -1) - ReplaceJet(arr[0], arr[1]); - else - Install(arr[0], arr[1], standardDataProviderGuid, standardDataSourcesGuid); - } - } - - private void GlobalAddRemove(string version) - { - bool install = false; -// bool installed; - - //// Check to see if SQLite is installed in the GAC - //try - //{ - // string file = AssemblyCache.QueryAssemblyInfo("System.Data.SQLite"); - // installed = true; - //} - //catch - //{ - // installed = false; - //} - - // Check to see if any checkboxes in the list are checked - for (int n = 0; n < installList.Items.Count; n++) - { - if (installList.Items[n].Checked == true) - { - install = true; - break; - } - } - - // If at least 1 item is checked, then install some global settings - if (install) - { - string path = Path.GetDirectoryName(SQLiteLocation); - - foreach (string framework in _frameworks) - { - using (RegistryKey key = Registry.LocalMachine.CreateSubKey(String.Format("Software\\Microsoft\\.NETFramework\\{0}\\AssemblyFoldersEx\\SQLite", framework), RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - key.SetValue(null, path); - } - } - - while (String.IsNullOrEmpty(path) == false) - { - if (File.Exists(path + "\\CompactFramework\\System.Data.SQLite.DLL") == false) - { - path = Path.GetDirectoryName(path); - } - else break; - } - - if (String.IsNullOrEmpty(path) == false) - { - path += "\\CompactFramework\\"; - - for (int n = 0; n < compactFrameworks.Length; n++) - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\v2.0.0.0\\{0}\\AssemblyFoldersEx", compactFrameworks[n]), true)) - { - - if (key != null) - { - using (RegistryKey subkey = key.CreateSubKey("SQLite", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - subkey.SetValue(null, path); - } - } - } - } - - for (int n = 0; n < compactFrameworks.Length; n++) - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\v3.5.0.0\\{0}\\AssemblyFoldersEx", compactFrameworks[n]), true)) - { - - if (key != null) - { - using (RegistryKey subkey = key.CreateSubKey("SQLite", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - subkey.SetValue(null, path); - } - } - } - } - } - - for (int n = 0; n < 2; n++) - { - foreach (string framework in _frameworks) - { - // Add factory support to the machine.config file. - try - { - string xmlFileName = Environment.ExpandEnvironmentVariables(String.Format("%WinDir%\\Microsoft.NET\\{0}\\{1}\\CONFIG\\machine.config", (n == 0) ? "Framework" : "Framework64", framework)); - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.PreserveWhitespace = true; - xmlDoc.Load(xmlFileName); - - - XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/add[@invariant=\"System.Data.SQLite\"]"); - if (xmlNode == null) - { - XmlNode xmlConfig = xmlDoc.SelectSingleNode("configuration"); - if (xmlConfig != null) - { - XmlNode xmlData = xmlConfig.SelectSingleNode("system.data"); - if (xmlData == null) - { - xmlData = xmlDoc.CreateNode(XmlNodeType.Element, "system.data", ""); - xmlConfig.AppendChild(xmlData); - } - XmlNode xmlParent = xmlData.SelectSingleNode("DbProviderFactories"); - if (xmlParent == null) - { - xmlParent = xmlDoc.CreateNode(XmlNodeType.Element, "DbProviderFactories", ""); - xmlData.AppendChild(xmlParent); - } - - //xmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "remove", ""); - //xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("invariant")); - //xmlParent.AppendChild(xmlNode); - //xmlNode.Attributes.GetNamedItem("invariant").Value = "System.Data.SQLite"; - - xmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "add", ""); - xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("name")); - xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("invariant")); - xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("description")); - xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("type")); - xmlParent.AppendChild(xmlNode); - } - } - xmlNode.Attributes.GetNamedItem("name").Value = "SQLite Data Provider"; - xmlNode.Attributes.GetNamedItem("invariant").Value = "System.Data.SQLite"; - xmlNode.Attributes.GetNamedItem("description").Value = ".Net Framework Data Provider for SQLite"; - xmlNode.Attributes.GetNamedItem("type").Value = "System.Data.SQLite.SQLiteFactory, " + SQLite.GetName().FullName; - - xmlDoc.Save(xmlFileName); - } - catch - { - } - } - } - } - else // No checkboxes are checked, remove some global settings - { - try - { - foreach (string framework in _frameworks) - { - Registry.LocalMachine.DeleteSubKey(String.Format("Software\\Microsoft\\.NETFramework\\{0}\\AssemblyFoldersEx\\SQLite", framework)); - } - - string[] versions = { /*"v2.0.0.0", "v3.5.0.0"*/ }; - for (int x = 0; x < versions.Length; x++) - { - for (int n = 0; n < compactFrameworks.Length; n++) - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\{1}\\{0}\\DataProviders", compactFrameworks[n], versions[x]), true)) - { - try - { - if (key != null) key.DeleteSubKey(standardDataProviderGuid.ToString("B")); - } - catch - { - } - } - } - } - - for (int n = 0; n < compactFrameworks.Length; n++) - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\v2.0.0.0\\{0}\\AssemblyFoldersEx", compactFrameworks[n]), true)) - { - try - { - if (key != null) key.DeleteSubKey("SQLite"); - } - catch - { - } - } - } - - for (int n = 0; n < 2; n++) - { - try - { - foreach (string framework in _frameworks) - { - // Remove any entries in the machine.config if they're still there - string xmlFileName = Environment.ExpandEnvironmentVariables(String.Format("%WinDir%\\Microsoft.NET\\{0}\\{1}\\CONFIG\\machine.config", (n == 0) ? "Framework" : "Framework64", framework)); - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.PreserveWhitespace = true; - xmlDoc.Load(xmlFileName); - - XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/add[@invariant=\"System.Data.SQLite\"]"); - - if (xmlNode != null) - xmlNode.ParentNode.RemoveChild(xmlNode); - - xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/remove[@invariant=\"System.Data.SQLite\"]"); - if (xmlNode != null) - xmlNode.ParentNode.RemoveChild(xmlNode); - - xmlDoc.Save(xmlFileName); - } - } - catch - { - } - } - } - catch - { - } - } - - try - { - if (!install) // Remove SQLite from the GAC if its there - { - AssemblyCacheUninstallDisposition disp; - - string s; - AssemblyCacheEnum entries = new AssemblyCacheEnum("System.Data.SQLite"); - while (true) - { - s = entries.GetNextAssembly(); - if (String.IsNullOrEmpty(s)) break; - - AssemblyCache.UninstallAssembly(s, null, out disp); - } - - entries = new AssemblyCacheEnum("SQLite.Designer"); - while (true) - { - s = entries.GetNextAssembly(); - if (String.IsNullOrEmpty(s)) break; - - AssemblyCache.UninstallAssembly(s, null, out disp); - } - - entries = new AssemblyCacheEnum("System.Data.SQLite.Linq"); - while (true) - { - s = entries.GetNextAssembly(); - if (String.IsNullOrEmpty(s)) break; - - AssemblyCache.UninstallAssembly(s, null, out disp); - } - - SQLite = null; - } - else // Install SQLite into the GAC - { - byte[] cfdt = Properties.Resources.System_Data_SQLite; - string tempPath = Path.GetTempPath(); - tempPath = Path.Combine(tempPath, "System.Data.SQLite.DLL"); - using (FileStream fs = File.Open(tempPath, FileMode.Create, FileAccess.Write, FileShare.None)) - { - fs.Write(cfdt, 0, cfdt.Length); - } - - try - { - AssemblyCache.InstallAssembly(tempPath, null, AssemblyCommitFlags.Default); - AssemblyCache.InstallAssembly(Path.Combine(Path.GetDirectoryName(SQLiteLocation), "x64\\System.Data.SQLite.DLL"), null, AssemblyCommitFlags.Default); - AssemblyCache.InstallAssembly(Path.Combine(Path.GetDirectoryName(SQLiteLocation), "itanium\\System.Data.SQLite.DLL"), null, AssemblyCommitFlags.Default); - } - catch - { - } - finally - { - File.Delete(tempPath); - if (File.Exists(Path.GetFullPath("..\\System.Data.SQLite.Linq.DLL")) == true) - AssemblyCache.InstallAssembly(Path.GetFullPath("..\\System.Data.SQLite.Linq.DLL"), null, AssemblyCommitFlags.Default); - - AssemblyCache.InstallAssembly(Path.GetFullPath("SQLite.Designer.DLL"), null, AssemblyCommitFlags.Default); - AssemblyCache.InstallAssembly(SQLiteLocation, null, AssemblyCommitFlags.Default); - } - } - } - catch - { - throw; - } - - FixXmlLibPaths(install, version); - } - - private void ReplaceJet(string keyname, string version) - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true)) - { - using (RegistryKey source = key.OpenSubKey(oledbDataProviderGuid.ToString("B"))) - { - using (RegistryKey dest = key.CreateSubKey(oledbAltDataProviderGuid.ToString("B"))) - { - if (source == null) return; - CopyKey(source, dest); - } - } - key.DeleteSubKeyTree(oledbDataProviderGuid.ToString("B")); - } - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataSources", keyname, version), true)) - { - using (RegistryKey source = key.OpenSubKey(jetDataSourcesGuid.ToString("B"))) - { - using (RegistryKey dest = key.CreateSubKey(jetAltDataSourcesGuid.ToString("B"))) - { - if (source == null) return; - CopyKey(source, dest); - } - } - key.DeleteSubKeyTree(jetDataSourcesGuid.ToString("B")); - } - - Install(keyname, version, oledbDataProviderGuid, jetDataSourcesGuid); - } - - private void RestoreJet(string keyname, string version) - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true)) - { - using (RegistryKey source = key.OpenSubKey(oledbAltDataProviderGuid.ToString("B"))) - { - if (source == null) return; - } - } - - Uninstall(keyname, version, oledbDataProviderGuid, jetDataSourcesGuid); - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true)) - { - using (RegistryKey source = key.OpenSubKey(oledbAltDataProviderGuid.ToString("B"))) - { - if (source != null) - { - using (RegistryKey dest = key.CreateSubKey(oledbDataProviderGuid.ToString("B"))) - { - CopyKey(source, dest); - } - key.DeleteSubKeyTree(oledbAltDataProviderGuid.ToString("B")); - } - } - } - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataSources", keyname, version), true)) - { - using (RegistryKey source = key.OpenSubKey(jetAltDataSourcesGuid.ToString("B"))) - { - if (source != null) - { - using (RegistryKey dest = key.CreateSubKey(jetDataSourcesGuid.ToString("B"))) - { - CopyKey(source, dest); - } - key.DeleteSubKeyTree(jetAltDataSourcesGuid.ToString("B")); - } - } - } - } - - private void Install(string keyname, string version, Guid provider, Guid source) - { - bool usePackage = (keyname == "VisualStudio"); - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true)) - { - using (RegistryKey subkey = key.CreateSubKey(provider.ToString("B"), RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - subkey.SetValue(null, ".NET Framework Data Provider for SQLite"); - subkey.SetValue("InvariantName", "System.Data.SQLite"); - subkey.SetValue("Technology", "{77AB9A9D-78B9-4ba7-91AC-873F5338F1D2}"); - subkey.SetValue("CodeBase", Path.GetFullPath("SQLite.Designer.DLL")); - - - if (usePackage) - subkey.SetValue("FactoryService", "{DCBE6C8D-0E57-4099-A183-98FF74C64D9D}"); - - using (RegistryKey subsubkey = subkey.CreateSubKey("SupportedObjects", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - using (RegistryKey subsubsubkey = subsubkey.CreateSubKey("DataConnectionUIControl", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - if (!usePackage) - subsubsubkey.SetValue(null, "SQLite.Designer.SQLiteConnectionUIControl"); - } - using (RegistryKey subsubsubkey = subsubkey.CreateSubKey("DataConnectionProperties", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - if (!usePackage) - subsubsubkey.SetValue(null, "SQLite.Designer.SQLiteConnectionProperties"); - } - - subsubkey.CreateSubKey("DataObjectSupport").Close(); - subsubkey.CreateSubKey("DataViewSupport").Close(); - using (RegistryKey subsubsubkey = subsubkey.CreateSubKey("DataConnectionSupport", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - if (!usePackage) - subsubsubkey.SetValue(null, "SQLite.Designer.SQLiteDataConnectionSupport"); - } - } - } - } - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataSources", keyname, version), true)) - { - using (RegistryKey subkey = key.CreateSubKey(source.ToString("B"), RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - subkey.SetValue(null, "SQLite Database File"); - using (RegistryKey subsubkey = subkey.CreateSubKey("SupportingProviders", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - subsubkey.CreateSubKey(provider.ToString("B")).Close(); - } - } - } - - //try - //{ - // using (RegistryKey key = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", true)) - // { - // string libpath = (string)key.GetValue("LIB"); - // string path = Path.GetDirectoryName(SQLiteLocation); - - // if (libpath.IndexOf(path, StringComparison.InvariantCultureIgnoreCase) == -1) - // { - // libpath += (";" + path); - // key.SetValue("LIB", libpath); - // } - // } - //} - //catch - //{ - //} - - string[] versions = { /*"v2.0.0.0", "v3.5.0.0"*/ }; - - for (int x = 0; x < versions.Length; x++) - { - for (int n = 0; n < compactFrameworks.Length; n++) - { - using (RegistryKey key = Registry.LocalMachine.CreateSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\{1}\\{0}\\DataProviders", compactFrameworks[n], versions[x]))) - { - if (key != null) - { - using (RegistryKey subkey = key.CreateSubKey(standardDataProviderGuid.ToString("B"), RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - subkey.SetValue(null, ".NET Framework Data Provider for SQLite"); - subkey.SetValue("InvariantName", "System.Data.SQLite"); - subkey.SetValue("RuntimeAssembly", "System.Data.SQLite.DLL"); - } - } - } - } - } - - if (usePackage) - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Packages", keyname, version), true)) - { - using (RegistryKey subkey = key.CreateSubKey("{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - subkey.SetValue(null, "SQLite Designer Package"); - subkey.SetValue("Class", "SQLite.Designer.SQLitePackage"); - subkey.SetValue("CodeBase", Path.GetFullPath("SQLite.Designer.DLL")); - subkey.SetValue("ID", 400); - subkey.SetValue("InprocServer32", "mscoree.dll"); - subkey.SetValue("CompanyName", "Black Castle Software, LLC"); - subkey.SetValue("MinEdition", "standard"); - subkey.SetValue("ProductName", "SQLite Data Provider"); - subkey.SetValue("ProductVersion", "1.0"); - using (RegistryKey toolboxKey = subkey.CreateSubKey("Toolbox")) - { - toolboxKey.SetValue("Default Items", 3); - } - } - } - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Menus", keyname, version), true)) - { - key.SetValue("{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}", ", 1000, 3"); - } - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Services", keyname, version), true)) - { - using (RegistryKey subkey = key.CreateSubKey("{DCBE6C8D-0E57-4099-A183-98FF74C64D9D}", RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - subkey.SetValue(null, "{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}"); - subkey.SetValue("Name", "SQLite Provider Object Factory"); - } - } - } - } - - private XmlDocument GetConfig(string keyname, string version, out string xmlFileName) - { - try - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}", keyname, version), true)) - { - xmlFileName = (string)key.GetValue("InstallDir"); - if (String.Compare(keyname, "VisualStudio", true) == 0) - xmlFileName += "devenv.exe.config"; - else - xmlFileName += keyname + ".exe.config"; - } - - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.PreserveWhitespace = true; - xmlDoc.Load(xmlFileName); - - return xmlDoc; - } - catch - { - xmlFileName = null; - } - return null; - } - - private void Uninstall(string keyname, string version, Guid provider, Guid source) - { - try - { - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true)) - { - if (key != null) key.DeleteSubKeyTree(provider.ToString("B")); - } - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataSources", keyname, version), true)) - { - if (key != null) key.DeleteSubKeyTree(source.ToString("B")); - } - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Packages", keyname, version), true)) - { - if (key != null) key.DeleteSubKeyTree("{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}"); - } - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Services", keyname, version), true)) - { - if (key != null) key.DeleteSubKeyTree("{DCBE6C8D-0E57-4099-A183-98FF74C64D9D}"); - } - - using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Menus", keyname, version), true)) - { - key.DeleteValue("{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}"); - } - - //using (RegistryKey key = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", true)) - //{ - // string libpath = (string)key.GetValue("LIB"); - // string path = ";" + Path.GetDirectoryName(SQLiteLocation); - - // libpath = libpath.Replace(path, ""); - // key.SetValue("LIB", libpath); - //} - } - catch - { - } - - // Remove factory support from the development environment config file - string xmlFileName; - XmlDocument xmlDoc = GetConfig(keyname, version, out xmlFileName); - - if (xmlDoc == null) return; - - XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/add[@invariant=\"System.Data.SQLite\"]"); - if (xmlNode != null) - xmlNode.ParentNode.RemoveChild(xmlNode); - - xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/remove[@invariant=\"System.Data.SQLite\"]"); - if (xmlNode != null) - xmlNode.ParentNode.RemoveChild(xmlNode); - - xmlDoc.Save(xmlFileName); - } - - - private static void CopyKey(RegistryKey keySource, RegistryKey keyDest) - { - if (keySource.SubKeyCount > 0) - { - string[] subkeys = keySource.GetSubKeyNames(); - for (int n = 0; n < subkeys.Length; n++) - { - using (RegistryKey subkeysource = keySource.OpenSubKey(subkeys[n])) - { - using (RegistryKey subkeydest = keyDest.CreateSubKey(subkeys[n], RegistryKeyPermissionCheck.ReadWriteSubTree)) - { - CopyKey(subkeysource, subkeydest); - } - } - } - } - string[] values = keySource.GetValueNames(); - for (int n = 0; n < values.Length; n++) - { - keyDest.SetValue(values[n], keySource.GetValue(values[n]), keySource.GetValueKind(values[n])); - } - } - - private void FixXmlLibPaths(bool install, string version) - { - string installDir = null; - RegistryKey key = null; - - try - { - key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\VisualStudio\\{0}", version)); - if (key != null) - { - try - { - installDir = (string)key.GetValue("InstallDir"); - } - catch - { - } - finally - { - if (String.IsNullOrEmpty(installDir)) - { - ((IDisposable)key).Dispose(); - key = null; - } - } - } - - if (key == null) - { - key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\VCExpress\\{0}", version)); - if (key == null) return; - } - - try - { - installDir = (string)key.GetValue("InstallDir"); - } - catch - { - } - } - finally - { - if (key != null) ((IDisposable)key).Dispose(); - } - - if (String.IsNullOrEmpty(installDir)) return; - - installDir = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(installDir))), "VC"); - - string currentDir; - string[] lookIn = new string[] { "vcpackages", "bin\\amd64", "bin\\ia64" }; - string sqlitePath = Path.GetDirectoryName(SQLiteLocation); - - foreach (string subfolder in lookIn) - { - try - { - currentDir = Path.Combine(installDir, subfolder); - FixXmlLibPaths(currentDir, "VCProjectEngine.DLL*.config", sqlitePath, install); - FixXmlLibPaths(currentDir, "AMD64.VCPlatform.config", Path.Combine(sqlitePath, "x64"), install); - FixXmlLibPaths(currentDir, "Itanium.VCPlatform.config", Path.Combine(sqlitePath, "itanium"), install); - FixXmlLibPaths(currentDir, "WCE.VCPlatform.config", Path.Combine(sqlitePath, "CompactFramework"), install); - } - catch - { - } - } - - FixLocalUserPaths(install); - } - - private void FixLocalUserPaths(bool install) - { - string file = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Microsoft\\VisualStudio\\8.0\\VCComponents.dat"); - StringBuilder output = new StringBuilder(); - string line; - string sqlitePath = Path.GetDirectoryName(SQLiteLocation); - string currPath = sqlitePath; - - try - { - using (StreamReader rd = new StreamReader(file)) - { - while (rd.EndOfStream == false) - { - line = rd.ReadLine(); - line = line.Trim(); - if (String.IsNullOrEmpty(line)) continue; - if (line[0] == '[') - { - if (line.IndexOf("Win32", StringComparison.InvariantCultureIgnoreCase) != -1) - currPath = sqlitePath; - else if (line.IndexOf("x64", StringComparison.InvariantCultureIgnoreCase) != -1) - currPath = Path.Combine(sqlitePath, "x64"); - else if (line.IndexOf("Itanium", StringComparison.InvariantCultureIgnoreCase) != -1) - currPath = Path.Combine(sqlitePath, "x64"); - else if (line.IndexOf("ARM", StringComparison.InvariantCultureIgnoreCase) != -1) - currPath = Path.Combine(sqlitePath, "CompactFramework"); - } - else if (line.StartsWith("Reference Dirs", StringComparison.InvariantCultureIgnoreCase) == true) - { - int n = line.IndexOf(";" + currPath, StringComparison.InvariantCultureIgnoreCase); - if (n > -1) line = line.Remove(n, currPath.Length + 1); - - if (install) - { - if (line[line.Length - 1] == '=') - line += currPath; - else - line += (";" + currPath); - } - } - - output.AppendLine(line); - } - rd.Close(); - } - - File.Delete(file); - using (StreamWriter writer = new StreamWriter(file, false, Encoding.Unicode)) - { - writer.Write(output.ToString()); - writer.Close(); - } - } - catch - { - } - } - - private void FixXmlLibPaths(string path, string lookFor, string sqlitePath, bool install) - { - // Win32 - string[] files = Directory.GetFiles(path, lookFor); - if (files.Length > 0) - { - foreach (string file in files) - { - FixXmlLibPath(file, sqlitePath, install); - } - } - } - - private void FixXmlLibPath(string fileName, string sqlitePath, bool install) - { - XmlDocument xmlDoc = new XmlDocument(); - xmlDoc.PreserveWhitespace = true; - xmlDoc.Load(fileName); - - XmlNodeList xmlNodes = xmlDoc.SelectNodes("VCPlatformConfigurationFile/Platform/Directories"); - if (xmlNodes == null) return; - - foreach(XmlNode xmlNode in xmlNodes) - { - string libpath = xmlNode.Attributes.GetNamedItem("Reference").Value; - if (String.Compare(libpath, sqlitePath, true) == 0) - libpath = ""; - else - { - int n = libpath.IndexOf(";" + sqlitePath, StringComparison.InvariantCultureIgnoreCase); - if (n > -1) libpath = libpath.Remove(n, sqlitePath.Length + 1); - } - - if (install) - { - if (String.IsNullOrEmpty(libpath)) libpath = sqlitePath; - else libpath += (";" + sqlitePath); - } - xmlNode.Attributes.GetNamedItem("Reference").Value = libpath; - } - - xmlDoc.Save(fileName); - } - } -} DELETED tools/install/InstallDesigner.resx Index: tools/install/InstallDesigner.resx ================================================================== --- tools/install/InstallDesigner.resx +++ /dev/null @@ -1,309 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - - False - - - False - - - Due to limitations in some Express Editions, checking affected products above will temporarily replace the Microsoft Jet designer with the SQLite designer. The Microsoft Jet designer can be restored by un-checking the box(es) above. - - - - - AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA - CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA - /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAREREREREREXd3d3d3ARERERERERERERF4uLeLiwARERER - ERERERERe4uHuLgDAREREREREREREXi4t4uLAzARERERERAAAA97i4e4uAMwAREREREXd3d/eLi3i4sD - MDARERERF/iIj3uLh7i4AzAwERERERf4iI94uLeLiwMwMBEREREX+IiPd3d3d3cDMDARAAERF/iIiPe/ - v3+/sDAwEHdwERf4iIiPe/v3+/sAMHeIdwAH+IiIiPeIiHiIgDB/+ICIh/iIiIiPe/v3+/sAf/+HB3f4 - iIiIiPd3d3d3cBf/gBEX+IiIiIiP/////xERd3ERF/iIiIiIiIiIiHARERERERf4iIiIiIiIiIhwERER - EREX+IiIiIiIiIiIcBERERERF/iIiIiIiIiIiHARERERERf4iIiIiIiIiIhwEREREREX//////////// - cBERERERF3d3d3d3d3d3d3AREREREREREXgBERF4ARERERERERERERF/ARERfwEREREREREREREReAER - EXgBEREREREREREREQcBEREHARERERERERERERBwcBEQcHARERERERERERF4iHcBeIh3ARERERERERER - f/iHAX/4hwEREREREREREX//hwF//4cBEREREREREREX/4ARF/+AEREREREREREREYiBERGIgREREf// - AB///wAP//8AB///AAP/gAAB/4AAAP+AAAD/gAAA/4AAAMeAAACDgAAAAAAAAAAAAAAAAAAAg4AAA8eA - AAP/gAAD/4AAA/+AAAP/gAAD/4AAA/+AAAP//Hx///x8f//8fH///Hx///g4P//wEB//8BAf//AQH//4 - OD///Hx/KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACA - gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAREREXd3dwERER - ERe4e4ABERERF4t4sDAREQAHuHuAMBERf3eLeLAwERF/h3d3cDCAgX+Ie/e/AA8Af4iHd3dwgIF/iIiI - dxEREX////9wERERd3d3d3AREREREQEREREREREYCBERERERERDwERERERERGAgREREREREREREREf4D - ERH+AYiP/gB3d/AAMDDwAAER8ACIiBAAv38AADAwEANwEfADiIjwA/v3/38AMP4/dwD+P4iI/j+IiP// - gDAoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA - AACAAIAAgIAAAICAgADA3MAA8MqmAKo/KgD/PyoAAF8qAFVfKgCqXyoA/18qAAB/KgBVfyoAqn8qAP9/ - KgAAnyoAVZ8qAKqfKgD/nyoAAL8qAFW/KgCqvyoA/78qAADfKgBV3yoAqt8qAP/fKgAA/yoAVf8qAKr/ - KgD//yoAAABVAFUAVQCqAFUA/wBVAAAfVQBVH1UAqh9VAP8fVQAAP1UAVT9VAKo/VQD/P1UAAF9VAFVf - VQCqX1UA/19VAAB/VQBVf1UAqn9VAP9/VQAAn1UAVZ9VAKqfVQD/n1UAAL9VAFW/VQCqv1UA/79VAADf - VQBV31UAqt9VAP/fVQAA/1UAVf9VAKr/VQD//1UAAAB/AFUAfwCqAH8A/wB/AAAffwBVH38Aqh9/AP8f - fwAAP38AVT9/AKo/fwD/P38AAF9/AFVffwCqX38A/19/AAB/fwBVf38Aqn9/AP9/fwAAn38AVZ9/AKqf - fwD/n38AAL9/AFW/fwCqv38A/79/AADffwBV338Aqt9/AP/ffwAA/38AVf9/AKr/fwD//38AAACqAFUA - qgCqAKoA/wCqAAAfqgBVH6oAqh+qAP8fqgAAP6oAVT+qAKo/qgD/P6oAAF+qAFVfqgCqX6oA/1+qAAB/ - qgBVf6oAqn+qAP9/qgAAn6oAVZ+qAKqfqgD/n6oAAL+qAFW/qgCqv6oA/7+qAADfqgBV36oAqt+qAP/f - qgAA/6oAVf+qAKr/qgD//6oAAADUAFUA1ACqANQA/wDUAAAf1ABVH9QAqh/UAP8f1AAAP9QAVT/UAKo/ - 1AD/P9QAAF/UAFVf1ACqX9QA/1/UAAB/1ABVf9QAqn/UAP9/1AAAn9QAVZ/UAKqf1AD/n9QAAL/UAFW/ - 1ACqv9QA/7/UAADf1ABV39QAqt/UAP/f1AAA/9QAVf/UAKr/1AD//9QAVQD/AKoA/wAAH/8AVR//AKof - /wD/H/8AAD//AFU//wCqP/8A/z//AABf/wBVX/8Aql//AP9f/wAAf/8AVX//AKp//wD/f/8AAJ//AFWf - /wCqn/8A/5//AAC//wBVv/8Aqr//AP+//wAA3/8AVd//AKrf/wD/3/8AVf//AKr//wD/zMwA/8z/AP// - MwD//2YA//+ZAP//zAAAfwAAVX8AAKp/AAD/fwAAAJ8AAFWfAACqnwAA/58AAAC/AABVvwAAqr8AAP+/ - AAAA3wAAVd8AAKrfAAD/3wAAVf8AAKr/AAAAACoAVQAqAKoAKgD/ACoAAB8qAFUfKgCqHyoA/x8qAAA/ - KgBVPyoA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAAAAAAD//wAA////AP39/f39/f39/f39/f39 - /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39 - /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/YF9fVlVWVVVVf39/f39/f39/f39 - /f39/f39/f39/f39pcuoylSkpMakVP39/f39/f39/f39/f39/f39/f39/f2pqcvLVMrKpMZ8LP39/f39 - /f39/f39/f39/f39/f39/anP0KkDy6jLpHxUeP39/f39/f39/f39/f39/f39/f39qc/Pz1nLy6ikfFR8 - eP39/f39/f39/f39/f39/f39/f2p0K7QWc+py8Z8VHx8/f39/f39/f39/f0yMTIxMjEyManP0M99z8+t - z3xUfHz9/f39/f39/f39XggJCYIJgoKDqfb29gf29tDTfFR8fP39/f39/f39/YKzrwgICAirCAiqy9DT - 0IHPy8vLVHx8/f39/f39/f39htH2r6+vrwivCNQIy/eFMS0wWXxUfHz9/VoHNjL9/f2Gs/b29q/2r6+v - CNQIpVXQLNBUqcvKfP2ChtSCWjX9/YL/9q/29q/2rwjRrwgHqVWpVctVqcul/V7/rwiCMjYyhv//9vav - 9q/2r68Ir4JZhquCMVr3Df39gvb2rwhagl6C//////bR9q/2r/avr68ICAjUhoMx/f2G1P//CV79/Qn/ - //////az9vavr9EIr6+vCKsJhg39/f0Igl6G/f39gv////////b2r/b2r/avCNGvCAiCMv39/f39/f39 - /f2G////////////9q/2r/avrwivCIMx/f39/f39/f39/f2G//////////////b2r/avr68IB/39/f39 - /f39/f39/f2GgoaCgl73Xl5eWl5aWgc2Bzb9/f39/f39/f39/f39/f39/f1eMf39/f39/V4x/f39/f39 - /f39/f39/f39/f39/f39/YIy/f39/f39gjL9/f39/f39/f39/f39/f39/f39/f1aNgcy/f39/Vo2BzL9 - /f39/f39/f39/f39/f39/f39gobUgjYH/f2ChtSCNgf9/f39/f39/f39/f39/f39/f1e/68IgjL9/V7/ - rwiCMv39/f39/f39/f39/f39/f39/ffR/68IB/3999H/rwgH/f39/f39/f39/f39/f39/f39CAj//wle - /f0ICP//CV79/f39/f39/f39/f39/f39/f39CYL3hv39/f0JgveG/f39/f39/f39/f39/f39/f39/f39 - /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3///////////// - /////8Af///AD///wAf//8AD///AAf//wAH/wAAB/4AAAf8AAAH/AAABhwAAAQMAAAEAAAADAAAAAwMA - AAOHAAAD/wAAA/+AAAf/wAAP//z8///8/P//+Hh///AwP//wMD//8DA///AwP//4eH///////////ygA - AAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA - gACAgAAAgICAAMDcwADwyqYAqj8qAP8/KgAAXyoAVV8qAKpfKgD/XyoAAH8qAFV/KgCqfyoA/38qAACf - KgBVnyoAqp8qAP+fKgAAvyoAVb8qAKq/KgD/vyoAAN8qAFXfKgCq3yoA/98qAAD/KgBV/yoAqv8qAP// - KgAAAFUAVQBVAKoAVQD/AFUAAB9VAFUfVQCqH1UA/x9VAAA/VQBVP1UAqj9VAP8/VQAAX1UAVV9VAKpf - VQD/X1UAAH9VAFV/VQCqf1UA/39VAACfVQBVn1UAqp9VAP+fVQAAv1UAVb9VAKq/VQD/v1UAAN9VAFXf - VQCq31UA/99VAAD/VQBV/1UAqv9VAP//VQAAAH8AVQB/AKoAfwD/AH8AAB9/AFUffwCqH38A/x9/AAA/ - fwBVP38Aqj9/AP8/fwAAX38AVV9/AKpffwD/X38AAH9/AFV/fwCqf38A/39/AACffwBVn38Aqp9/AP+f - fwAAv38AVb9/AKq/fwD/v38AAN9/AFXffwCq338A/99/AAD/fwBV/38Aqv9/AP//fwAAAKoAVQCqAKoA - qgD/AKoAAB+qAFUfqgCqH6oA/x+qAAA/qgBVP6oAqj+qAP8/qgAAX6oAVV+qAKpfqgD/X6oAAH+qAFV/ - qgCqf6oA/3+qAACfqgBVn6oAqp+qAP+fqgAAv6oAVb+qAKq/qgD/v6oAAN+qAFXfqgCq36oA/9+qAAD/ - qgBV/6oAqv+qAP//qgAAANQAVQDUAKoA1AD/ANQAAB/UAFUf1ACqH9QA/x/UAAA/1ABVP9QAqj/UAP8/ - 1AAAX9QAVV/UAKpf1AD/X9QAAH/UAFV/1ACqf9QA/3/UAACf1ABVn9QAqp/UAP+f1AAAv9QAVb/UAKq/ - 1AD/v9QAAN/UAFXf1ACq39QA/9/UAAD/1ABV/9QAqv/UAP//1ABVAP8AqgD/AAAf/wBVH/8Aqh//AP8f - /wAAP/8AVT//AKo//wD/P/8AAF//AFVf/wCqX/8A/1//AAB//wBVf/8Aqn//AP9//wAAn/8AVZ//AKqf - /wD/n/8AAL//AFW//wCqv/8A/7//AADf/wBV3/8Aqt//AP/f/wBV//8Aqv//AP/MzAD/zP8A//8zAP// - ZgD//5kA///MAAB/AABVfwAAqn8AAP9/AAAAnwAAVZ8AAKqfAAD/nwAAAL8AAFW/AACqvwAA/78AAADf - AABV3wAAqt8AAP/fAABV/wAAqv8AAAAAKgBVACoAqgAqAP8AKgAAHyoAVR8qAKofKgD/HyoAAD8qAFU/ - KgDw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAAAAAAAP//AAD///8A/f39/f39/f39/f39/f39/f39 - /f39/YF9fVlVWVVV/f39/f39/f2ly6jGVKTGpCz9/f39/f39qc/Qz1nLqcZUeP39/f39/anQrdBZz8uk - VHz9/f39/f2p0NDPfc+uz1R8/f39/f0xqfb29vf209BUfP39/f0yr/epgYUxLCx9VHz99f39WtH2r6lV - pTGlVKmlXv/19V7/9q/2rzAHVf39/f1e/f1e///29q+v1PX9/f39/f39/fdeXlpaBzH9/f39/f39/f39 - /f31/f39/f39/f39/f39/f399f39/f39/f39/f39/f39Xv/1/f39/f39/f39/f39/f1e/f39/f39/f// - /f38A/39/AH9/fwA/f38AKnQ/ABZz/gAxnzwAHz9sAD9/QAH/f2wBzIx+A8yMf9/qc//f33P/j/PfP9/ - fP0oAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAZpKo/2GMov9bhJz/VX2V/0Bec/9LcIr/RmmE/0Fjf/83V3T/FExpMQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGrtv/R8fw/ye67/8Vsuz/BWSI/wGn6f8Ao+b/AKDi/wCc - 4P8QbJP/FExpMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFm34P9azvL/U83y/0PG8f8eb4v/JLnu/xiz - 7f8Nruv/AJ/i/wd7q/8UTGn/FExpMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWbjg/23W8v9p1fP/WM/y/yl0 - jP83wfD/Kbrv/xu17f8AoeP/BH6x/wdWev8QcJn/FExpMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZueL/ftzz/33e - 9P9t2PT/NnmM/0zK8v89xPD/Lb3w/wCj5f8Agrb/BFmA/wZ7p/8Ocpv/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFm6 - 4/+N5PT/kOX1/4Lf9f9Cfo3/Y9Pz/1HN8v9BxfD/AKbn/wCCtv8AXYX/BH2q/wl5pv8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiXFfRolxX/+Gblv/hGtZ/4FoVf9+ZVL/e2JP/3lg - TP92XUr/Wbzn/4rh9P+K4fT/iuH0/02Ilv9+3PP/dNjy/2jT8f9o0/H/AIK2/wBdhf8FgbD/CXmm/wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIlxX0aumYr/0sC2/9C9s//Ou7H/zLmu/8u2 - q//KtKn/x7Km/8awpP9qxOv/3fT7/930+//d9Pv/h5yj/8/w+//P8Pv/u+n6/7Xo+v8AiMD/AF2F/wWB - sP8Jeab/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw6+i//Pv7P/m3tr/4NTO/9/S - yv/dzsf/2szD/9jJwf/Wxr3/1MK6/7q+vv9qxOv/q/D3/6rw9/+d6/b/W5Sf/3fb9P9h0vP/Scnx/zS/ - 8P8AXYX/BYKz/wl5pv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEsKP/9/Px//Xw - 7v/y7ev/7+rn/+7m4//r49//6N/b/+bc1v/k2NL/4dTO/8TLzv9qxOv/fK6z/3issv8/YGb/K0tT/yVI - Uf84hp7/KYCd/xZjff8AiMD/CXmm/wAAAAC+r6UxppGDwI12ZPiFbFr4hmtZwIJoVTEAAAAAAAAAAMWx - pP/59/X/9/Tz//Xy7//z7uz/8Ovo/+/o5P/t5OH/6uHd/+fd2P/k2tT/4tfQ/8XO0P9fsNP/T25x/5/r - 9v8uS1H/n+v2/zJsfP9Dtdj/NcDw/yG37v8LfKz/AAAAALytosDHurD/18fB/8Otof+dg3P/h21awAAA - AAAAAAAAxbKk//v6+f/5+Pb/+PXz//bz8P/07+7/8uzq//Dq5v/u5uL/6+Pe/+jf2v/l29b/49jS/3Js - af9Zven/KVhs/1m96f8pV2v/Wb3p/y5hd/9Zven/RrXm/zGt4/8AAAAAsZ6Q+Pn39v/w6uj/3M7G/8Ku - of+IcF34hm5b/4RrWf/GsqX//f39//z6+v/7+fj/+fb1//fz8v/18O7/8u7s//Dr6P/u5+T/7OTg/+nh - 3P/m3df/uK+r/3Ntav/Ivbb/3M7H/7Cjnv9uZWH/o5KK/8GqnP9sUj7/AAAAAAAAAAC4ppn4+fj3//// - ///w6+j/1snA/5N7avjHsab/s5qK/8azpf////////3+//37+//7+vn/+fj2//f18//18vD/8+/t//Hs - 6f/v6eX/7ebi/+vj3v/o39r/5tvV/+LY0v/g1M3/3c/J/9vMxf/Nuq//xKyg/29VQf8AAAAAAAAAAM3A - tsDb0sv/+vj3//n49//KvbT/q5eJwAAAAAAAAAAAx7Om///////////////+//38/f/8+/r/+vn4//j2 - 9f/38/L/9fDv//Lt6v/w6uf/7ufj/+vk3//p4Nz/5t3X/+TZ0//h1c//39HL/9C9tP/FsKT/cllF/wAA - AAAAAAAA3NHKMc/Bt8C7qZz4tqOW+MKzqMDEtasxAAAAAAAAAADHtaf///////////////////////7+ - /f/8/Pv/+/r4//r39v/39fL/9vLv//Pv7f/y7On/7+nl/+zl4f/q4t3/597Z/+Xb1f/i19H/08K6/8iz - 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 - - - DELETED tools/install/Program.cs Index: tools/install/Program.cs ================================================================== --- tools/install/Program.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace install -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(Application.ExecutablePath); - - InstallDesigner designer = new InstallDesigner(); - if (designer._remove == false) - designer.ShowDialog(); - } - } -} DELETED tools/install/Properties/AssemblyInfo.cs Index: tools/install/Properties/AssemblyInfo.cs ================================================================== --- tools/install/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("System.Data.SQLite Designer Installer")] -[assembly: AssemblyDescription("ADO.NET Data Provider for SQLite")] -[assembly: AssemblyCompany("http://system.data.sqlite.org/")] -[assembly: AssemblyProduct("System.Data.SQLite")] -[assembly: AssemblyCopyright("Public Domain")] - -#if DEBUG -[assembly: AssemblyConfiguration("Debug")] -#else -[assembly: AssemblyConfiguration("Release")] -#endif - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] DELETED tools/install/Properties/Resources.Designer.cs Index: tools/install/Properties/Resources.Designer.cs ================================================================== --- tools/install/Properties/Resources.Designer.cs +++ /dev/null @@ -1,70 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.1 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace install.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("install.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - internal static byte[] System_Data_SQLite { - get { - object obj = ResourceManager.GetObject("System_Data_SQLite", resourceCulture); - return ((byte[])(obj)); - } - } - } -} DELETED tools/install/Properties/Resources.resx Index: tools/install/Properties/Resources.resx ================================================================== --- tools/install/Properties/Resources.resx +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\System.Data.SQLite.dll;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - DELETED tools/install/Resources/System.Data.SQLite.dll Index: tools/install/Resources/System.Data.SQLite.dll ================================================================== --- tools/install/Resources/System.Data.SQLite.dll +++ /dev/null cannot compute difference between binary files DELETED tools/install/app.config Index: tools/install/app.config ================================================================== --- tools/install/app.config +++ /dev/null @@ -1,3 +0,0 @@ - - - DELETED tools/install/install.exe.manifest Index: tools/install/install.exe.manifest ================================================================== --- tools/install/install.exe.manifest +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - DELETED tools/install/install.ico Index: tools/install/install.ico ================================================================== --- tools/install/install.ico +++ /dev/null cannot compute difference between binary files