System.Data.SQLite
Check-in [6eff911e63]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Remove old VS designer installer.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 6eff911e634edade590f7a9bb3d4d781d32beeab
User & Date: mistachkin 2011-08-09 06:01:40
Context
2011-08-09
06:27
Remove incorrect DocumentationFile element from some project files. check-in: 15b1d9e667 user: mistachkin tags: trunk
06:01
Remove old VS designer installer. check-in: 6eff911e63 user: mistachkin tags: trunk
2011-07-29
20:35
Update SQLite core to latest, including the os_win.c fixes and the new SQLITE_FCNTL_PERSIST_WAL file control. check-in: f9c2d67ad2 user: mistachkin tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Deleted tools/install/GACWrap.cs.

     1         -//-------------------------------------------------------------
     2         -// GACWrap.cs
     3         -//
     4         -// This implements managed wrappers to GAC API Interfaces
     5         -//-------------------------------------------------------------
     6         -
     7         -using System;
     8         -using System.Runtime.InteropServices;
     9         -using System.Text;
    10         -
    11         -namespace System.GACManagedAccess
    12         -{
    13         -  //-------------------------------------------------------------
    14         -  // Interfaces defined by fusion
    15         -  //-------------------------------------------------------------
    16         -  [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("e707dcde-d1cd-11d2-bab9-00c04f8eceae")]
    17         -  internal interface IAssemblyCache
    18         -  {
    19         -    [PreserveSig()]
    20         -    int UninstallAssembly(
    21         -                        int flags,
    22         -                        [MarshalAs(UnmanagedType.LPWStr)]
    23         -                            String assemblyName,
    24         -                        InstallReference refData,
    25         -                        out AssemblyCacheUninstallDisposition disposition);
    26         -
    27         -    [PreserveSig()]
    28         -    int QueryAssemblyInfo(
    29         -                        int flags,
    30         -                        [MarshalAs(UnmanagedType.LPWStr)]
    31         -                            String assemblyName,
    32         -                        ref AssemblyInfo assemblyInfo);
    33         -    [PreserveSig()]
    34         -    int Reserved(
    35         -                        int flags,
    36         -                        IntPtr pvReserved,
    37         -                        out Object ppAsmItem,
    38         -                        [MarshalAs(UnmanagedType.LPWStr)]
    39         -                            String assemblyName);
    40         -    [PreserveSig()]
    41         -    int Reserved(out Object ppAsmScavenger);
    42         -
    43         -    [PreserveSig()]
    44         -    int InstallAssembly(
    45         -                        int flags,
    46         -                        [MarshalAs(UnmanagedType.LPWStr)]
    47         -                            String assemblyFilePath,
    48         -                        InstallReference refData);
    49         -  }// IAssemblyCache
    50         -
    51         -  [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("CD193BC0-B4BC-11d2-9833-00C04FC31D2E")]
    52         -  internal interface IAssemblyName
    53         -  {
    54         -    [PreserveSig()]
    55         -    int SetProperty(
    56         -            int PropertyId,
    57         -            IntPtr pvProperty,
    58         -            int cbProperty);
    59         -
    60         -    [PreserveSig()]
    61         -    int GetProperty(
    62         -            int PropertyId,
    63         -            IntPtr pvProperty,
    64         -            ref int pcbProperty);
    65         -
    66         -    [PreserveSig()]
    67         -    int Finalize();
    68         -
    69         -    [PreserveSig()]
    70         -    int GetDisplayName(
    71         -            StringBuilder pDisplayName,
    72         -            ref int pccDisplayName,
    73         -            int displayFlags);
    74         -
    75         -    [PreserveSig()]
    76         -    int Reserved(ref Guid guid,
    77         -        Object obj1,
    78         -        Object obj2,
    79         -        String string1,
    80         -        Int64 llFlags,
    81         -        IntPtr pvReserved,
    82         -        int cbReserved,
    83         -        out IntPtr ppv);
    84         -
    85         -    [PreserveSig()]
    86         -    int GetName(
    87         -            ref int pccBuffer,
    88         -            StringBuilder pwzName);
    89         -
    90         -    [PreserveSig()]
    91         -    int GetVersion(
    92         -            out int versionHi,
    93         -            out int versionLow);
    94         -    [PreserveSig()]
    95         -    int IsEqual(
    96         -            IAssemblyName pAsmName,
    97         -            int cmpFlags);
    98         -
    99         -    [PreserveSig()]
   100         -    int Clone(out IAssemblyName pAsmName);
   101         -  }// IAssemblyName
   102         -
   103         -  [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("21b8916c-f28e-11d2-a473-00c04f8ef448")]
   104         -  internal interface IAssemblyEnum
   105         -  {
   106         -    [PreserveSig()]
   107         -    int GetNextAssembly(
   108         -            IntPtr pvReserved,
   109         -            out IAssemblyName ppName,
   110         -            int flags);
   111         -    [PreserveSig()]
   112         -    int Reset();
   113         -    [PreserveSig()]
   114         -    int Clone(out IAssemblyEnum ppEnum);
   115         -  }// IAssemblyEnum
   116         -
   117         -  [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("582dac66-e678-449f-aba6-6faaec8a9394")]
   118         -  internal interface IInstallReferenceItem
   119         -  {
   120         -    // A pointer to a FUSION_INSTALL_REFERENCE structure. 
   121         -    // The memory is allocated by the GetReference method and is freed when 
   122         -    // IInstallReferenceItem is released. Callers must not hold a reference to this 
   123         -    // buffer after the IInstallReferenceItem object is released. 
   124         -    // This uses the InstallReferenceOutput object to avoid allocation 
   125         -    // issues with the interop layer. 
   126         -    // This cannot be marshaled directly - must use IntPtr 
   127         -    [PreserveSig()]
   128         -    int GetReference(
   129         -            out IntPtr pRefData,
   130         -            int flags,
   131         -            IntPtr pvReserced);
   132         -  }// IInstallReferenceItem
   133         -
   134         -  [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("56b1a988-7c0c-4aa2-8639-c3eb5a90226f")]
   135         -  internal interface IInstallReferenceEnum
   136         -  {
   137         -    [PreserveSig()]
   138         -    int GetNextInstallReferenceItem(
   139         -            out IInstallReferenceItem ppRefItem,
   140         -            int flags,
   141         -            IntPtr pvReserced);
   142         -  }// IInstallReferenceEnum
   143         -
   144         -  public enum AssemblyCommitFlags
   145         -  {
   146         -    Default = 1,
   147         -    Force = 2
   148         -  }// enum AssemblyCommitFlags
   149         -
   150         -  public enum AssemblyCacheUninstallDisposition
   151         -  {
   152         -    Unknown = 0,
   153         -    Uninstalled = 1,
   154         -    StillInUse = 2,
   155         -    AlreadyUninstalled = 3,
   156         -    DeletePending = 4,
   157         -    HasInstallReference = 5,
   158         -    ReferenceNotFound = 6
   159         -  }
   160         -
   161         -  [Flags]
   162         -  internal enum AssemblyCacheFlags
   163         -  {
   164         -    GAC = 2,
   165         -  }
   166         -
   167         -  internal enum CreateAssemblyNameObjectFlags
   168         -  {
   169         -    CANOF_DEFAULT = 0,
   170         -    CANOF_PARSE_DISPLAY_NAME = 1,
   171         -  }
   172         -
   173         -  [Flags]
   174         -  internal enum AssemblyNameDisplayFlags
   175         -  {
   176         -    VERSION = 0x01,
   177         -    CULTURE = 0x02,
   178         -    PUBLIC_KEY_TOKEN = 0x04,
   179         -    PROCESSORARCHITECTURE = 0x20,
   180         -    RETARGETABLE = 0x80,
   181         -    // This enum will change in the future to include
   182         -    // more attributes.
   183         -    ALL = VERSION
   184         -                                | CULTURE
   185         -                                | PUBLIC_KEY_TOKEN
   186         -                                | PROCESSORARCHITECTURE
   187         -                                | RETARGETABLE
   188         -  }
   189         -
   190         -  [StructLayout(LayoutKind.Sequential)]
   191         -  public class InstallReference
   192         -  {
   193         -    public InstallReference(Guid guid, String id, String data)
   194         -    {
   195         -      cbSize = (int)(2 * IntPtr.Size + 16 + (id.Length + data.Length) * 2);
   196         -      flags = 0;
   197         -      // quiet compiler warning 
   198         -      if (flags == 0) { }
   199         -      guidScheme = guid;
   200         -      identifier = id;
   201         -      description = data;
   202         -    }
   203         -
   204         -    public Guid GuidScheme
   205         -    {
   206         -      get { return guidScheme; }
   207         -    }
   208         -
   209         -    public String Identifier
   210         -    {
   211         -      get { return identifier; }
   212         -    }
   213         -
   214         -    public String Description
   215         -    {
   216         -      get { return description; }
   217         -    }
   218         -
   219         -    int cbSize;
   220         -    int flags;
   221         -    Guid guidScheme;
   222         -    [MarshalAs(UnmanagedType.LPWStr)]
   223         -    String identifier;
   224         -    [MarshalAs(UnmanagedType.LPWStr)]
   225         -    String description;
   226         -  }
   227         -
   228         -  [StructLayout(LayoutKind.Sequential)]
   229         -  internal struct AssemblyInfo
   230         -  {
   231         -    public int cbAssemblyInfo; // size of this structure for future expansion
   232         -    public int assemblyFlags;
   233         -    public long assemblySizeInKB;
   234         -    [MarshalAs(UnmanagedType.LPWStr)]
   235         -    public String currentAssemblyPath;
   236         -    public int cchBuf; // size of path buf.
   237         -  }
   238         -
   239         -  [ComVisible(false)]
   240         -  public class InstallReferenceGuid
   241         -  {
   242         -    public static bool IsValidGuidScheme(Guid guid)
   243         -    {
   244         -      return (guid.Equals(UninstallSubkeyGuid) ||
   245         -              guid.Equals(FilePathGuid) ||
   246         -              guid.Equals(OpaqueGuid) ||
   247         -              guid.Equals(Guid.Empty));
   248         -    }
   249         -
   250         -    public readonly static Guid UninstallSubkeyGuid = new Guid("8cedc215-ac4b-488b-93c0-a50a49cb2fb8");
   251         -    public readonly static Guid FilePathGuid = new Guid("b02f9d65-fb77-4f7a-afa5-b391309f11c9");
   252         -    public readonly static Guid OpaqueGuid = new Guid("2ec93463-b0c3-45e1-8364-327e96aea856");
   253         -    // these GUID cannot be used for installing into GAC.
   254         -    public readonly static Guid MsiGuid = new Guid("25df0fc1-7f97-4070-add7-4b13bbfd7cb8");
   255         -    public readonly static Guid OsInstallGuid = new Guid("d16d444c-56d8-11d5-882d-0080c847b195");
   256         -  }
   257         -
   258         -  [ComVisible(false)]
   259         -  public static class AssemblyCache
   260         -  {
   261         -    public static void InstallAssembly(String assemblyPath, InstallReference reference, AssemblyCommitFlags flags)
   262         -    {
   263         -      if (reference != null)
   264         -      {
   265         -        if (!InstallReferenceGuid.IsValidGuidScheme(reference.GuidScheme))
   266         -          throw new ArgumentException("Invalid reference guid.", "guid");
   267         -      }
   268         -
   269         -      IAssemblyCache ac = null;
   270         -
   271         -      int hr = 0;
   272         -
   273         -      hr = Utils.CreateAssemblyCache(out ac, 0);
   274         -      if (hr >= 0)
   275         -      {
   276         -        hr = ac.InstallAssembly((int)flags, assemblyPath, reference);
   277         -      }
   278         -
   279         -      if (hr < 0)
   280         -      {
   281         -        Marshal.ThrowExceptionForHR(hr);
   282         -      }
   283         -    }
   284         -
   285         -    // assemblyName has to be fully specified name. 
   286         -    // A.k.a, for v1.0/v1.1 assemblies, it should be "name, Version=xx, Culture=xx, PublicKeyToken=xx".
   287         -    // For v2.0 assemblies, it should be "name, Version=xx, Culture=xx, PublicKeyToken=xx, ProcessorArchitecture=xx".
   288         -    // If assemblyName is not fully specified, a random matching assembly will be uninstalled. 
   289         -    public static void UninstallAssembly(String assemblyName, InstallReference reference, out AssemblyCacheUninstallDisposition disp)
   290         -    {
   291         -      AssemblyCacheUninstallDisposition dispResult = AssemblyCacheUninstallDisposition.Uninstalled;
   292         -      if (reference != null)
   293         -      {
   294         -        if (!InstallReferenceGuid.IsValidGuidScheme(reference.GuidScheme))
   295         -          throw new ArgumentException("Invalid reference guid.", "guid");
   296         -      }
   297         -
   298         -      IAssemblyCache ac = null;
   299         -
   300         -      int hr = Utils.CreateAssemblyCache(out ac, 0);
   301         -      if (hr >= 0)
   302         -      {
   303         -        hr = ac.UninstallAssembly(0, assemblyName, reference, out dispResult);
   304         -      }
   305         -
   306         -      if (hr < 0)
   307         -      {
   308         -        Marshal.ThrowExceptionForHR(hr);
   309         -      }
   310         -
   311         -      disp = dispResult;
   312         -    }
   313         -
   314         -    // See comments in UninstallAssembly
   315         -    public static String QueryAssemblyInfo(String assemblyName)
   316         -    {
   317         -      if (assemblyName == null)
   318         -      {
   319         -        throw new ArgumentException("Invalid name", "assemblyName");
   320         -      }
   321         -
   322         -      AssemblyInfo aInfo = new AssemblyInfo();
   323         -
   324         -      aInfo.cchBuf = 1024;
   325         -      // Get a string with the desired length
   326         -      aInfo.currentAssemblyPath = new String('\0', aInfo.cchBuf);
   327         -
   328         -      IAssemblyCache ac = null;
   329         -      int hr = Utils.CreateAssemblyCache(out ac, 0);
   330         -      if (hr >= 0)
   331         -      {
   332         -        hr = ac.QueryAssemblyInfo(0, assemblyName, ref aInfo);
   333         -      }
   334         -      if (hr < 0)
   335         -      {
   336         -        Marshal.ThrowExceptionForHR(hr);
   337         -      }
   338         -
   339         -      return aInfo.currentAssemblyPath;
   340         -    }
   341         -  }
   342         -
   343         -  [ComVisible(false)]
   344         -  public class AssemblyCacheEnum
   345         -  {
   346         -    // null means enumerate all the assemblies
   347         -    public AssemblyCacheEnum(String assemblyName)
   348         -    {
   349         -      IAssemblyName fusionName = null;
   350         -      int hr = 0;
   351         -
   352         -      if (assemblyName != null)
   353         -      {
   354         -        hr = Utils.CreateAssemblyNameObject(
   355         -                out fusionName,
   356         -                assemblyName,
   357         -                CreateAssemblyNameObjectFlags.CANOF_PARSE_DISPLAY_NAME,
   358         -                IntPtr.Zero);
   359         -      }
   360         -
   361         -      if (hr >= 0)
   362         -      {
   363         -        hr = Utils.CreateAssemblyEnum(
   364         -                out m_AssemblyEnum,
   365         -                IntPtr.Zero,
   366         -                fusionName,
   367         -                AssemblyCacheFlags.GAC,
   368         -                IntPtr.Zero);
   369         -      }
   370         -
   371         -      if (hr < 0)
   372         -      {
   373         -        Marshal.ThrowExceptionForHR(hr);
   374         -      }
   375         -    }
   376         -
   377         -    public String GetNextAssembly()
   378         -    {
   379         -      int hr = 0;
   380         -      IAssemblyName fusionName = null;
   381         -
   382         -      if (done)
   383         -      {
   384         -        return null;
   385         -      }
   386         -
   387         -      // Now get next IAssemblyName from m_AssemblyEnum
   388         -      hr = m_AssemblyEnum.GetNextAssembly((IntPtr)0, out fusionName, 0);
   389         -
   390         -      if (hr < 0)
   391         -      {
   392         -        Marshal.ThrowExceptionForHR(hr);
   393         -      }
   394         -
   395         -      if (fusionName != null)
   396         -      {
   397         -        return GetFullName(fusionName);
   398         -      }
   399         -      else
   400         -      {
   401         -        done = true;
   402         -        return null;
   403         -      }
   404         -    }
   405         -
   406         -    private String GetFullName(IAssemblyName fusionAsmName)
   407         -    {
   408         -      StringBuilder sDisplayName = new StringBuilder(1024);
   409         -      int iLen = 1024;
   410         -
   411         -      int hr = fusionAsmName.GetDisplayName(sDisplayName, ref iLen, (int)AssemblyNameDisplayFlags.ALL);
   412         -      if (hr < 0)
   413         -      {
   414         -        Marshal.ThrowExceptionForHR(hr);
   415         -      }
   416         -
   417         -      return sDisplayName.ToString();
   418         -    }
   419         -
   420         -    private IAssemblyEnum m_AssemblyEnum = null;
   421         -    private bool done;
   422         -  }// class AssemblyCacheEnum
   423         -
   424         -  public class AssemblyCacheInstallReferenceEnum
   425         -  {
   426         -    public AssemblyCacheInstallReferenceEnum(String assemblyName)
   427         -    {
   428         -      IAssemblyName fusionName = null;
   429         -
   430         -      int hr = Utils.CreateAssemblyNameObject(
   431         -                  out fusionName,
   432         -                  assemblyName,
   433         -                  CreateAssemblyNameObjectFlags.CANOF_PARSE_DISPLAY_NAME,
   434         -                  IntPtr.Zero);
   435         -
   436         -      if (hr >= 0)
   437         -      {
   438         -        hr = Utils.CreateInstallReferenceEnum(out refEnum, fusionName, 0, IntPtr.Zero);
   439         -      }
   440         -
   441         -      if (hr < 0)
   442         -      {
   443         -        Marshal.ThrowExceptionForHR(hr);
   444         -      }
   445         -    }
   446         -
   447         -    public InstallReference GetNextReference()
   448         -    {
   449         -      IInstallReferenceItem item = null;
   450         -      int hr = refEnum.GetNextInstallReferenceItem(out item, 0, IntPtr.Zero);
   451         -      if ((uint)hr == 0x80070103)
   452         -      {   // ERROR_NO_MORE_ITEMS
   453         -        return null;
   454         -      }
   455         -
   456         -      if (hr < 0)
   457         -      {
   458         -        Marshal.ThrowExceptionForHR(hr);
   459         -      }
   460         -
   461         -      IntPtr refData;
   462         -      InstallReference instRef = new InstallReference(Guid.Empty, String.Empty, String.Empty);
   463         -
   464         -      hr = item.GetReference(out refData, 0, IntPtr.Zero);
   465         -      if (hr < 0)
   466         -      {
   467         -        Marshal.ThrowExceptionForHR(hr);
   468         -      }
   469         -
   470         -      Marshal.PtrToStructure(refData, instRef);
   471         -      return instRef;
   472         -    }
   473         -
   474         -    private IInstallReferenceEnum refEnum;
   475         -  }
   476         -
   477         -  internal class Utils
   478         -  {
   479         -    [DllImport("fusion.dll")]
   480         -    internal static extern int CreateAssemblyEnum(
   481         -            out IAssemblyEnum ppEnum,
   482         -            IntPtr pUnkReserved,
   483         -            IAssemblyName pName,
   484         -            AssemblyCacheFlags flags,
   485         -            IntPtr pvReserved);
   486         -
   487         -    [DllImport("fusion.dll")]
   488         -    internal static extern int CreateAssemblyNameObject(
   489         -            out IAssemblyName ppAssemblyNameObj,
   490         -            [MarshalAs(UnmanagedType.LPWStr)]
   491         -                String szAssemblyName,
   492         -            CreateAssemblyNameObjectFlags flags,
   493         -            IntPtr pvReserved);
   494         -
   495         -    [DllImport("fusion.dll")]
   496         -    internal static extern int CreateAssemblyCache(
   497         -            out IAssemblyCache ppAsmCache,
   498         -            int reserved);
   499         -
   500         -    [DllImport("fusion.dll")]
   501         -    internal static extern int CreateInstallReferenceEnum(
   502         -            out IInstallReferenceEnum ppRefEnum,
   503         -            IAssemblyName pName,
   504         -            int dwFlags,
   505         -            IntPtr pvReserved);
   506         -  }
   507         -}

Deleted tools/install/InstallDesigner.Designer.cs.

     1         -namespace install
     2         -{
     3         -  partial class InstallDesigner
     4         -  {
     5         -    /// <summary>
     6         -    /// Required designer variable.
     7         -    /// </summary>
     8         -    private System.ComponentModel.IContainer components = null;
     9         -
    10         -    /// <summary>
    11         -    /// Clean up any resources being used.
    12         -    /// </summary>
    13         -    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    14         -    protected override void Dispose(bool disposing)
    15         -    {
    16         -      if (disposing && (components != null))
    17         -      {
    18         -        components.Dispose();
    19         -      }
    20         -      base.Dispose(disposing);
    21         -    }
    22         -
    23         -    #region Windows Form Designer generated code
    24         -
    25         -    /// <summary>
    26         -    /// Required method for Designer support - do not modify
    27         -    /// the contents of this method with the code editor.
    28         -    /// </summary>
    29         -    private void InitializeComponent()
    30         -    {
    31         -      System.Windows.Forms.ColumnHeader columnHeader1;
    32         -      System.Windows.Forms.Label label1;
    33         -      System.Windows.Forms.Label label3;
    34         -      System.Windows.Forms.Label label2;
    35         -      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallDesigner));
    36         -      this.installList = new System.Windows.Forms.ListView();
    37         -      this.warningPanel = new System.Windows.Forms.Panel();
    38         -      this.closeButton = new System.Windows.Forms.Button();
    39         -      columnHeader1 = new System.Windows.Forms.ColumnHeader();
    40         -      label1 = new System.Windows.Forms.Label();
    41         -      label3 = new System.Windows.Forms.Label();
    42         -      label2 = new System.Windows.Forms.Label();
    43         -      this.warningPanel.SuspendLayout();
    44         -      this.SuspendLayout();
    45         -      // 
    46         -      // columnHeader1
    47         -      // 
    48         -      columnHeader1.Text = "Environment";
    49         -      columnHeader1.Width = 800;
    50         -      // 
    51         -      // label1
    52         -      // 
    53         -      label1.AutoSize = true;
    54         -      label1.Location = new System.Drawing.Point(13, 13);
    55         -      label1.Name = "label1";
    56         -      label1.Size = new System.Drawing.Size(325, 13);
    57         -      label1.TabIndex = 0;
    58         -      label1.Text = "Install SQLite Design-Time Support for the following environments:";
    59         -      // 
    60         -      // label3
    61         -      // 
    62         -      label3.AutoSize = true;
    63         -      label3.Location = new System.Drawing.Point(0, 0);
    64         -      label3.Name = "label3";
    65         -      label3.Size = new System.Drawing.Size(13, 13);
    66         -      label3.TabIndex = 5;
    67         -      label3.Text = "*";
    68         -      // 
    69         -      // label2
    70         -      // 
    71         -      label2.Location = new System.Drawing.Point(10, 0);
    72         -      label2.Name = "label2";
    73         -      label2.Size = new System.Drawing.Size(340, 61);
    74         -      label2.TabIndex = 4;
    75         -      label2.Text = resources.GetString("label2.Text");
    76         -      // 
    77         -      // installList
    78         -      // 
    79         -      this.installList.CheckBoxes = true;
    80         -      this.installList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
    81         -            columnHeader1});
    82         -      this.installList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
    83         -      this.installList.Location = new System.Drawing.Point(13, 30);
    84         -      this.installList.Name = "installList";
    85         -      this.installList.Size = new System.Drawing.Size(350, 149);
    86         -      this.installList.TabIndex = 1;
    87         -      this.installList.UseCompatibleStateImageBehavior = false;
    88         -      this.installList.View = System.Windows.Forms.View.List;
    89         -      this.installList.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.installList_ItemChecked);
    90         -      // 
    91         -      // warningPanel
    92         -      // 
    93         -      this.warningPanel.Controls.Add(label3);
    94         -      this.warningPanel.Controls.Add(label2);
    95         -      this.warningPanel.Location = new System.Drawing.Point(13, 186);
    96         -      this.warningPanel.Name = "warningPanel";
    97         -      this.warningPanel.Size = new System.Drawing.Size(350, 73);
    98         -      this.warningPanel.TabIndex = 2;
    99         -      this.warningPanel.Visible = false;
   100         -      // 
   101         -      // closeButton
   102         -      // 
   103         -      this.closeButton.DialogResult = System.Windows.Forms.DialogResult.OK;
   104         -      this.closeButton.Location = new System.Drawing.Point(288, 270);
   105         -      this.closeButton.Name = "closeButton";
   106         -      this.closeButton.Size = new System.Drawing.Size(75, 23);
   107         -      this.closeButton.TabIndex = 3;
   108         -      this.closeButton.Text = "&Close";
   109         -      this.closeButton.UseVisualStyleBackColor = true;
   110         -      this.closeButton.Click += new System.EventHandler(this.closeButton_Click);
   111         -      // 
   112         -      // InstallDesigner
   113         -      // 
   114         -      this.AcceptButton = this.closeButton;
   115         -      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
   116         -      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
   117         -      this.CancelButton = this.closeButton;
   118         -      this.ClientSize = new System.Drawing.Size(375, 305);
   119         -      this.Controls.Add(this.closeButton);
   120         -      this.Controls.Add(this.warningPanel);
   121         -      this.Controls.Add(this.installList);
   122         -      this.Controls.Add(label1);
   123         -      this.Font = new System.Drawing.Font("MS Shell Dlg 2", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
   124         -      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
   125         -      this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
   126         -      this.MaximizeBox = false;
   127         -      this.MinimizeBox = false;
   128         -      this.Name = "InstallDesigner";
   129         -      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
   130         -      this.Text = "SQLite Designer Installation";
   131         -      this.TopMost = true;
   132         -      this.warningPanel.ResumeLayout(false);
   133         -      this.warningPanel.PerformLayout();
   134         -      this.ResumeLayout(false);
   135         -      this.PerformLayout();
   136         -
   137         -    }
   138         -
   139         -    #endregion
   140         -
   141         -    private System.Windows.Forms.ListView installList;
   142         -    private System.Windows.Forms.Panel warningPanel;
   143         -    private System.Windows.Forms.Button closeButton;
   144         -  }
   145         -}

Deleted tools/install/InstallDesigner.cs.

     1         -/********************************************************
     2         - * ADO.NET 2.0 Data Provider for SQLite Version 3.X
     3         - * Written by Robert Simpson (robert@blackcastlesoft.com)
     4         - * 
     5         - * Released to the public domain, use at your own risk!
     6         - ********************************************************/
     7         -
     8         -namespace install
     9         -{
    10         -  using System;
    11         -  using System.ComponentModel;
    12         -  using System.Data;
    13         -  using System.Drawing;
    14         -  using System.Text;
    15         -  using System.Windows.Forms;
    16         -  using Microsoft.Win32;
    17         -  using System.IO;
    18         -  using System.GACManagedAccess;
    19         -  using System.Xml;
    20         -  using System.Diagnostics;
    21         -  using System.Collections.Generic;
    22         -
    23         -  public partial class InstallDesigner : Form
    24         -  {
    25         -    private static Guid standardDataProviderGuid = new Guid("{0EBAAB6E-CA80-4b4a-8DDF-CBE6BF058C70}");
    26         -    private static Guid standardDataSourcesGuid = new Guid("{0EBAAB6E-CA80-4b4a-8DDF-CBE6BF058C71}");
    27         -    private static Guid standardCFDataSourcesGuid = new Guid("{0EBAAB6E-CA80-4b4a-8DDF-CBE6BF058C72}");
    28         -    private static Guid oledbDataProviderGuid = new Guid("{7F041D59-D76A-44ed-9AA2-FBF6B0548B80}");
    29         -    private static Guid oledbAltDataProviderGuid = new Guid("{7F041D59-D76A-44ed-9AA2-FBF6B0548B81}");
    30         -    private static Guid jetDataSourcesGuid = new Guid("{466CE797-67A4-4495-B75C-A3FD282E7FC3}");
    31         -    private static Guid jetAltDataSourcesGuid = new Guid("{466CE797-67A4-4495-B75C-A3FD282E7FC4}");
    32         -    private static string[] compactFrameworks = new string[] { /*"PocketPC", "SmartPhone", "WindowsCE"*/ };
    33         -
    34         -    internal bool _remove = false;
    35         -    //private string _regRoot = "8.0";
    36         -    private System.Reflection.Assembly _assm = null;
    37         -    private bool _ignoreChecks = true;
    38         -    private string _assmLocation;
    39         -
    40         -    private Dictionary<string, string> _regRoots = new Dictionary<string,string>();
    41         -    private List<string> _frameworks = new List<string>();
    42         -
    43         -    string SQLiteLocation
    44         -    {
    45         -      get
    46         -      {
    47         -        System.Reflection.Assembly assm = SQLite;
    48         -        return _assmLocation;
    49         -      }
    50         -    }
    51         -
    52         -    System.Reflection.Assembly SQLite
    53         -    {
    54         -      get
    55         -      {
    56         -        if (_assm == null)
    57         -        {
    58         -          Environment.CurrentDirectory = Path.GetDirectoryName(typeof(InstallDesigner).Assembly.Location);
    59         -
    60         -          try
    61         -          {
    62         -            _assmLocation = Path.GetFullPath("..\\System.Data.SQLite.DLL");
    63         -            _assm = System.Reflection.Assembly.LoadFrom(_assmLocation);
    64         -          }
    65         -          catch
    66         -          {
    67         -          }
    68         -        }
    69         -
    70         -        OpenFileDialog dlg = new OpenFileDialog();
    71         -        while (_assm == null)
    72         -        {
    73         -          dlg.Multiselect = false;
    74         -          dlg.InitialDirectory = Environment.CurrentDirectory;
    75         -          dlg.FileName = "System.Data.SQLite.DLL";
    76         -          dlg.Filter = "System.Data.SQLite.DLL|System.Data.SQLite.DLL";
    77         -          if (dlg.ShowDialog() == DialogResult.OK)
    78         -          {
    79         -            try
    80         -            {
    81         -              _assmLocation = dlg.FileName;
    82         -              _assm = System.Reflection.Assembly.LoadFrom(dlg.FileName);
    83         -            }
    84         -            catch
    85         -            {
    86         -            }
    87         -          }
    88         -          else
    89         -            throw new ArgumentException("Unable to find or load System.Data.SQLite.DLL");
    90         -        }
    91         -        return _assm;
    92         -      }
    93         -
    94         -      set
    95         -      {
    96         -        _assm = value;
    97         -      }
    98         -    }
    99         -
   100         -    public InstallDesigner()
   101         -    {
   102         -      string[] args = Environment.GetCommandLineArgs();
   103         -      RegistryKey key;
   104         -      string frameworkpath;
   105         -
   106         -      //_regRoots.Add("8.0", "2005");
   107         -      //_regRoots.Add("9.0", "2008");
   108         -      _regRoots.Add("10.0", "2010");
   109         -
   110         -      using (key = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\.NETFramework"))
   111         -      {
   112         -        frameworkpath = key.GetValue("InstallRoot") as string;
   113         -      }
   114         -
   115         -      string[] frameworkfolders = Directory.GetDirectories(frameworkpath);
   116         -      foreach (string framework in frameworkfolders)
   117         -      {
   118         -        // Don't do this on frameworks before 4.0
   119         -        string version = Path.GetFileNameWithoutExtension(framework);
   120         -        if (String.Compare(version, "v4.0", StringComparison.OrdinalIgnoreCase) < 0)
   121         -          continue;
   122         -
   123         -        if (File.Exists(Path.Combine(framework, "CONFIG\\machine.config")))
   124         -          _frameworks.Add(Path.GetFileName(framework));
   125         -      }
   126         -
   127         -      for (int n = 0; n < args.Length; n++)
   128         -      {
   129         -        if (String.Compare(args[n], "/regroot", true) == 0 ||
   130         -          String.Compare(args[n], "-regroot", true) == 0)
   131         -        {
   132         -          _regRoots.Add(args[n + 1], args[n + 1]);
   133         -          break;
   134         -        }
   135         -        else if (String.Compare(args[n], "/remove", true) == 0 ||
   136         -          String.Compare(args[n], "-remove", true) == 0)
   137         -        {
   138         -          _remove = true;
   139         -        }
   140         -      }
   141         -
   142         -      InitializeComponent();
   143         -
   144         -      foreach (KeyValuePair<string, string> pair in _regRoots)
   145         -      {
   146         -        using (key = Registry.LocalMachine.OpenSubKey("Software\\Microsoft"))
   147         -        {
   148         -          AddItem(key, pair.Key, "VisualStudio", String.Format("Visual Studio {0} (full editions)", pair.Value), standardDataProviderGuid, null);
   149         -          AddItem(key, pair.Key, "VWDExpress", String.Format("Visual Web Developer Express {0} Edition", pair.Value), standardDataProviderGuid, null);
   150         -
   151         -          warningPanel.Visible = (AddItem(key, pair.Key, "VCSExpress", String.Format("Visual C# Express {0} Edition *", pair.Value), oledbDataProviderGuid, oledbAltDataProviderGuid)
   152         -           | AddItem(key, pair.Key, "VCExpress", String.Format("Visual C++ Express {0} Edition *", pair.Value), oledbDataProviderGuid, oledbAltDataProviderGuid)
   153         -           | AddItem(key, pair.Key, "VBExpress", String.Format("Visual Basic Express {0} Edition *", pair.Value), oledbDataProviderGuid, oledbAltDataProviderGuid)
   154         -           | AddItem(key, pair.Key, "VJSExpress", String.Format("Visual J# Express {0} Edition *", pair.Value), oledbDataProviderGuid, oledbAltDataProviderGuid));
   155         -        }
   156         -        GlobalAddRemove(pair.Key);
   157         -      }
   158         -
   159         -      _ignoreChecks = false;
   160         -    }
   161         -
   162         -    private bool AddItem(RegistryKey parent, string version, string subkeyname, string itemName, Guid lookFor, object isChecked)
   163         -    {
   164         -      RegistryKey subkey;
   165         -
   166         -      try
   167         -      {
   168         -        using (subkey = parent.OpenSubKey(String.Format("{0}\\{1}", subkeyname, version)))
   169         -        {
   170         -          ListViewItem item = new ListViewItem(itemName);
   171         -
   172         -          item.Tag = new string[] { subkeyname, version };
   173         -
   174         -          // Verify this edition has been installed and its not a fluke that the key exists
   175         -          string dir = (string)subkey.GetValue("InstallDir");
   176         -
   177         -          using (RegistryKey subsubkey = subkey.OpenSubKey("Packages"))
   178         -          {
   179         -            if (subsubkey == null)
   180         -              throw new ArgumentException("Edition not installed");
   181         -            if (subsubkey.SubKeyCount < 5)
   182         -              throw new ArgumentException("Edition not installed");
   183         -          }
   184         -          
   185         -          using (RegistryKey subsubkey = subkey.OpenSubKey("DataProviders"))
   186         -          {
   187         -            if (subsubkey == null)
   188         -              throw new ArgumentException("Edition not installed");
   189         -          }
   190         -
   191         -          using (RegistryKey subsubkey = subkey.OpenSubKey(String.Format("DataProviders\\{0}", (isChecked == null) ? lookFor.ToString("B") : ((Guid)isChecked).ToString("B"))))
   192         -          {
   193         -            if (subsubkey == null)
   194         -            {
   195         -              DoInstallUninstall(item);
   196         -            }
   197         -            else
   198         -            {
   199         -              bool itemChecked = (subsubkey.GetValue(null) != null);
   200         -              DoInstallUninstall(item);
   201         -              if (_remove == false) item.Checked = itemChecked;
   202         -            }
   203         -          }
   204         -
   205         -          installList.Items.Add(item);
   206         -          if (item.Checked)
   207         -          {
   208         -            DoInstallUninstall(item);
   209         -          }
   210         -          return true;
   211         -        }
   212         -      }
   213         -      catch
   214         -      {
   215         -        return false;
   216         -      }
   217         -    }
   218         -
   219         -    private void closeButton_Click(object sender, EventArgs e)
   220         -    {
   221         -      this.Close();
   222         -    }
   223         -
   224         -    private void installList_ItemChecked(object sender, ItemCheckedEventArgs e)
   225         -    {
   226         -      if (_ignoreChecks) return;
   227         -
   228         -      string[] arr = (string[])e.Item.Tag;
   229         -
   230         -      DoInstallUninstall(e.Item);
   231         -
   232         -      GlobalAddRemove(arr[1]);
   233         -    }
   234         -
   235         -    private void DoInstallUninstall(ListViewItem Item)
   236         -    {
   237         -      string[] arr = (string[])Item.Tag;
   238         -      if (Item.Checked == false)
   239         -      {
   240         -        if (Item.Text.IndexOf('*') > -1)
   241         -          RestoreJet(arr[0], arr[1]);
   242         -        else
   243         -          Uninstall(arr[0], arr[1], standardDataProviderGuid, standardDataSourcesGuid);
   244         -      }
   245         -      else
   246         -      {
   247         -        if (Item.Text.IndexOf('*') > -1)
   248         -          ReplaceJet(arr[0], arr[1]);
   249         -        else
   250         -          Install(arr[0], arr[1], standardDataProviderGuid, standardDataSourcesGuid);
   251         -      }
   252         -    }
   253         -
   254         -    private void GlobalAddRemove(string version)
   255         -    {
   256         -      bool install = false;
   257         -//      bool installed;
   258         -
   259         -      //// Check to see if SQLite is installed in the GAC
   260         -      //try
   261         -      //{
   262         -      //  string file = AssemblyCache.QueryAssemblyInfo("System.Data.SQLite");
   263         -      //  installed = true;
   264         -      //}
   265         -      //catch
   266         -      //{
   267         -      //  installed = false;
   268         -      //}
   269         -
   270         -      // Check to see if any checkboxes in the list are checked
   271         -      for (int n = 0; n < installList.Items.Count; n++)
   272         -      {
   273         -        if (installList.Items[n].Checked == true)
   274         -        {
   275         -          install = true;
   276         -          break;
   277         -        }
   278         -      }
   279         -
   280         -      // If at least 1 item is checked, then install some global settings
   281         -      if (install)
   282         -      {
   283         -        string path = Path.GetDirectoryName(SQLiteLocation);
   284         -
   285         -        foreach (string framework in _frameworks)
   286         -        {
   287         -          using (RegistryKey key = Registry.LocalMachine.CreateSubKey(String.Format("Software\\Microsoft\\.NETFramework\\{0}\\AssemblyFoldersEx\\SQLite", framework), RegistryKeyPermissionCheck.ReadWriteSubTree))
   288         -          {
   289         -            key.SetValue(null, path);
   290         -          }
   291         -        }
   292         -
   293         -        while (String.IsNullOrEmpty(path) == false)
   294         -        {
   295         -          if (File.Exists(path + "\\CompactFramework\\System.Data.SQLite.DLL") == false)
   296         -          {
   297         -            path = Path.GetDirectoryName(path);
   298         -          }
   299         -          else break;
   300         -        }
   301         -
   302         -        if (String.IsNullOrEmpty(path) == false)
   303         -        {
   304         -          path += "\\CompactFramework\\";
   305         -
   306         -          for (int n = 0; n < compactFrameworks.Length; n++)
   307         -          {
   308         -            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\v2.0.0.0\\{0}\\AssemblyFoldersEx", compactFrameworks[n]), true))
   309         -            {
   310         -
   311         -              if (key != null)
   312         -              {
   313         -                using (RegistryKey subkey = key.CreateSubKey("SQLite", RegistryKeyPermissionCheck.ReadWriteSubTree))
   314         -                {
   315         -                  subkey.SetValue(null, path);
   316         -                }
   317         -              }
   318         -            }
   319         -          }
   320         -
   321         -          for (int n = 0; n < compactFrameworks.Length; n++)
   322         -          {
   323         -            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\v3.5.0.0\\{0}\\AssemblyFoldersEx", compactFrameworks[n]), true))
   324         -            {
   325         -
   326         -              if (key != null)
   327         -              {
   328         -                using (RegistryKey subkey = key.CreateSubKey("SQLite", RegistryKeyPermissionCheck.ReadWriteSubTree))
   329         -                {
   330         -                  subkey.SetValue(null, path);
   331         -                }
   332         -              }
   333         -            }
   334         -          }
   335         -        }
   336         -
   337         -        for (int n = 0; n < 2; n++)
   338         -        {
   339         -          foreach (string framework in _frameworks)
   340         -          {
   341         -            // Add factory support to the machine.config file.
   342         -            try
   343         -            {
   344         -              string xmlFileName = Environment.ExpandEnvironmentVariables(String.Format("%WinDir%\\Microsoft.NET\\{0}\\{1}\\CONFIG\\machine.config", (n == 0) ? "Framework" : "Framework64", framework));
   345         -              XmlDocument xmlDoc = new XmlDocument();
   346         -              xmlDoc.PreserveWhitespace = true;
   347         -              xmlDoc.Load(xmlFileName);
   348         -
   349         -
   350         -              XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/add[@invariant=\"System.Data.SQLite\"]");
   351         -              if (xmlNode == null)
   352         -              {
   353         -                XmlNode xmlConfig = xmlDoc.SelectSingleNode("configuration");
   354         -                if (xmlConfig != null)
   355         -                {
   356         -                  XmlNode xmlData = xmlConfig.SelectSingleNode("system.data");
   357         -                  if (xmlData == null)
   358         -                  {
   359         -                    xmlData = xmlDoc.CreateNode(XmlNodeType.Element, "system.data", "");
   360         -                    xmlConfig.AppendChild(xmlData);
   361         -                  }
   362         -                  XmlNode xmlParent = xmlData.SelectSingleNode("DbProviderFactories");
   363         -                  if (xmlParent == null)
   364         -                  {
   365         -                    xmlParent = xmlDoc.CreateNode(XmlNodeType.Element, "DbProviderFactories", "");
   366         -                    xmlData.AppendChild(xmlParent);
   367         -                  }
   368         -
   369         -                  //xmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "remove", "");
   370         -                  //xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("invariant"));
   371         -                  //xmlParent.AppendChild(xmlNode);
   372         -                  //xmlNode.Attributes.GetNamedItem("invariant").Value = "System.Data.SQLite";
   373         -
   374         -                  xmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "add", "");
   375         -                  xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("name"));
   376         -                  xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("invariant"));
   377         -                  xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("description"));
   378         -                  xmlNode.Attributes.SetNamedItem(xmlDoc.CreateAttribute("type"));
   379         -                  xmlParent.AppendChild(xmlNode);
   380         -                }
   381         -              }
   382         -              xmlNode.Attributes.GetNamedItem("name").Value = "SQLite Data Provider";
   383         -              xmlNode.Attributes.GetNamedItem("invariant").Value = "System.Data.SQLite";
   384         -              xmlNode.Attributes.GetNamedItem("description").Value = ".Net Framework Data Provider for SQLite";
   385         -              xmlNode.Attributes.GetNamedItem("type").Value = "System.Data.SQLite.SQLiteFactory, " + SQLite.GetName().FullName;
   386         -
   387         -              xmlDoc.Save(xmlFileName);
   388         -            }
   389         -            catch
   390         -            {
   391         -            }
   392         -          }
   393         -        }
   394         -      }
   395         -      else // No checkboxes are checked, remove some global settings
   396         -      {
   397         -        try
   398         -        {
   399         -          foreach (string framework in _frameworks)
   400         -          {
   401         -            Registry.LocalMachine.DeleteSubKey(String.Format("Software\\Microsoft\\.NETFramework\\{0}\\AssemblyFoldersEx\\SQLite", framework));
   402         -          }
   403         -
   404         -          string[] versions = { /*"v2.0.0.0", "v3.5.0.0"*/ };
   405         -          for (int x = 0; x < versions.Length; x++)
   406         -          {
   407         -            for (int n = 0; n < compactFrameworks.Length; n++)
   408         -            {
   409         -              using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\{1}\\{0}\\DataProviders", compactFrameworks[n], versions[x]), true))
   410         -              {
   411         -                try
   412         -                {
   413         -                  if (key != null) key.DeleteSubKey(standardDataProviderGuid.ToString("B"));
   414         -                }
   415         -                catch
   416         -                {
   417         -                }
   418         -              }
   419         -            }
   420         -          }
   421         -
   422         -          for (int n = 0; n < compactFrameworks.Length; n++)
   423         -          {
   424         -            using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\v2.0.0.0\\{0}\\AssemblyFoldersEx", compactFrameworks[n]), true))
   425         -            {
   426         -              try
   427         -              {
   428         -                if (key != null) key.DeleteSubKey("SQLite");
   429         -              }
   430         -              catch
   431         -              {
   432         -              }
   433         -            }
   434         -          }
   435         -
   436         -          for (int n = 0; n < 2; n++)
   437         -          {
   438         -            try
   439         -            {
   440         -              foreach (string framework in _frameworks)
   441         -              {
   442         -                // Remove any entries in the machine.config if they're still there
   443         -                string xmlFileName = Environment.ExpandEnvironmentVariables(String.Format("%WinDir%\\Microsoft.NET\\{0}\\{1}\\CONFIG\\machine.config", (n == 0) ? "Framework" : "Framework64", framework));
   444         -                XmlDocument xmlDoc = new XmlDocument();
   445         -                xmlDoc.PreserveWhitespace = true;
   446         -                xmlDoc.Load(xmlFileName);
   447         -
   448         -                XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/add[@invariant=\"System.Data.SQLite\"]");
   449         -
   450         -                if (xmlNode != null)
   451         -                  xmlNode.ParentNode.RemoveChild(xmlNode);
   452         -
   453         -                xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/remove[@invariant=\"System.Data.SQLite\"]");
   454         -                if (xmlNode != null)
   455         -                  xmlNode.ParentNode.RemoveChild(xmlNode);
   456         -
   457         -                xmlDoc.Save(xmlFileName);
   458         -              }
   459         -            }
   460         -            catch
   461         -            {
   462         -            }
   463         -          }
   464         -        }
   465         -        catch
   466         -        {
   467         -        }
   468         -      }
   469         -
   470         -      try
   471         -      {
   472         -        if (!install) // Remove SQLite from the GAC if its there
   473         -        {
   474         -          AssemblyCacheUninstallDisposition disp;
   475         -
   476         -          string s;
   477         -          AssemblyCacheEnum entries = new AssemblyCacheEnum("System.Data.SQLite");
   478         -          while (true)
   479         -          {
   480         -            s = entries.GetNextAssembly();
   481         -            if (String.IsNullOrEmpty(s)) break;
   482         -
   483         -            AssemblyCache.UninstallAssembly(s, null, out disp);
   484         -          }
   485         -
   486         -          entries = new AssemblyCacheEnum("SQLite.Designer");
   487         -          while (true)
   488         -          {
   489         -            s = entries.GetNextAssembly();
   490         -            if (String.IsNullOrEmpty(s)) break;
   491         -
   492         -            AssemblyCache.UninstallAssembly(s, null, out disp);
   493         -          }
   494         -
   495         -          entries = new AssemblyCacheEnum("System.Data.SQLite.Linq");
   496         -          while (true)
   497         -          {
   498         -            s = entries.GetNextAssembly();
   499         -            if (String.IsNullOrEmpty(s)) break;
   500         -
   501         -            AssemblyCache.UninstallAssembly(s, null, out disp);
   502         -          }
   503         -          
   504         -          SQLite = null;
   505         -        }
   506         -        else // Install SQLite into the GAC
   507         -        {
   508         -          byte[] cfdt = Properties.Resources.System_Data_SQLite;
   509         -          string tempPath = Path.GetTempPath();
   510         -          tempPath = Path.Combine(tempPath, "System.Data.SQLite.DLL");
   511         -          using (FileStream fs = File.Open(tempPath, FileMode.Create, FileAccess.Write, FileShare.None))
   512         -          {
   513         -            fs.Write(cfdt, 0, cfdt.Length);
   514         -          }
   515         -
   516         -          try
   517         -          {
   518         -            AssemblyCache.InstallAssembly(tempPath, null, AssemblyCommitFlags.Default);
   519         -            AssemblyCache.InstallAssembly(Path.Combine(Path.GetDirectoryName(SQLiteLocation), "x64\\System.Data.SQLite.DLL"), null, AssemblyCommitFlags.Default);
   520         -            AssemblyCache.InstallAssembly(Path.Combine(Path.GetDirectoryName(SQLiteLocation), "itanium\\System.Data.SQLite.DLL"), null, AssemblyCommitFlags.Default);
   521         -          }
   522         -          catch
   523         -          {
   524         -          }
   525         -          finally
   526         -          {
   527         -            File.Delete(tempPath);
   528         -            if (File.Exists(Path.GetFullPath("..\\System.Data.SQLite.Linq.DLL")) == true)
   529         -              AssemblyCache.InstallAssembly(Path.GetFullPath("..\\System.Data.SQLite.Linq.DLL"), null, AssemblyCommitFlags.Default);
   530         -
   531         -            AssemblyCache.InstallAssembly(Path.GetFullPath("SQLite.Designer.DLL"), null, AssemblyCommitFlags.Default);
   532         -            AssemblyCache.InstallAssembly(SQLiteLocation, null, AssemblyCommitFlags.Default);
   533         -          }
   534         -        }
   535         -      }
   536         -      catch
   537         -      {
   538         -        throw;
   539         -      }
   540         -
   541         -      FixXmlLibPaths(install, version);
   542         -    }
   543         -
   544         -    private void ReplaceJet(string keyname, string version)
   545         -    {
   546         -      using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true))
   547         -      {
   548         -        using (RegistryKey source = key.OpenSubKey(oledbDataProviderGuid.ToString("B")))
   549         -        {
   550         -          using (RegistryKey dest = key.CreateSubKey(oledbAltDataProviderGuid.ToString("B")))
   551         -          {
   552         -            if (source == null) return;
   553         -            CopyKey(source, dest);
   554         -          }
   555         -        }
   556         -        key.DeleteSubKeyTree(oledbDataProviderGuid.ToString("B"));
   557         -      }
   558         -
   559         -      using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataSources", keyname, version), true))
   560         -      {
   561         -        using (RegistryKey source = key.OpenSubKey(jetDataSourcesGuid.ToString("B")))
   562         -        {
   563         -          using (RegistryKey dest = key.CreateSubKey(jetAltDataSourcesGuid.ToString("B")))
   564         -          {
   565         -            if (source == null) return;
   566         -            CopyKey(source, dest);
   567         -          }
   568         -        }
   569         -        key.DeleteSubKeyTree(jetDataSourcesGuid.ToString("B"));
   570         -      }
   571         -
   572         -      Install(keyname, version, oledbDataProviderGuid, jetDataSourcesGuid);
   573         -    }
   574         -
   575         -    private void RestoreJet(string keyname, string version)
   576         -    {
   577         -      using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true))
   578         -      {
   579         -        using (RegistryKey source = key.OpenSubKey(oledbAltDataProviderGuid.ToString("B")))
   580         -        {
   581         -          if (source == null) return;
   582         -        }
   583         -      }
   584         -
   585         -      Uninstall(keyname, version, oledbDataProviderGuid, jetDataSourcesGuid);
   586         -
   587         -      using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true))
   588         -      {
   589         -        using (RegistryKey source = key.OpenSubKey(oledbAltDataProviderGuid.ToString("B")))
   590         -        {
   591         -          if (source != null)
   592         -          {
   593         -            using (RegistryKey dest = key.CreateSubKey(oledbDataProviderGuid.ToString("B")))
   594         -            {
   595         -              CopyKey(source, dest);
   596         -            }
   597         -            key.DeleteSubKeyTree(oledbAltDataProviderGuid.ToString("B"));
   598         -          }
   599         -        }
   600         -      }
   601         -
   602         -      using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataSources", keyname, version), true))
   603         -      {
   604         -        using (RegistryKey source = key.OpenSubKey(jetAltDataSourcesGuid.ToString("B")))
   605         -        {
   606         -          if (source != null)
   607         -          {
   608         -            using (RegistryKey dest = key.CreateSubKey(jetDataSourcesGuid.ToString("B")))
   609         -            {
   610         -              CopyKey(source, dest);
   611         -            }
   612         -            key.DeleteSubKeyTree(jetAltDataSourcesGuid.ToString("B"));
   613         -          }
   614         -        }
   615         -      }
   616         -    }
   617         -
   618         -    private void Install(string keyname, string version, Guid provider, Guid source)
   619         -    {
   620         -      bool usePackage = (keyname == "VisualStudio");
   621         -
   622         -      using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true))
   623         -      {
   624         -        using (RegistryKey subkey = key.CreateSubKey(provider.ToString("B"), RegistryKeyPermissionCheck.ReadWriteSubTree))
   625         -        {
   626         -          subkey.SetValue(null, ".NET Framework Data Provider for SQLite");
   627         -          subkey.SetValue("InvariantName", "System.Data.SQLite");
   628         -          subkey.SetValue("Technology", "{77AB9A9D-78B9-4ba7-91AC-873F5338F1D2}");
   629         -          subkey.SetValue("CodeBase", Path.GetFullPath("SQLite.Designer.DLL"));
   630         -          
   631         -
   632         -          if (usePackage)
   633         -           subkey.SetValue("FactoryService", "{DCBE6C8D-0E57-4099-A183-98FF74C64D9D}");
   634         -
   635         -          using (RegistryKey subsubkey = subkey.CreateSubKey("SupportedObjects", RegistryKeyPermissionCheck.ReadWriteSubTree))
   636         -          {
   637         -            using (RegistryKey subsubsubkey = subsubkey.CreateSubKey("DataConnectionUIControl", RegistryKeyPermissionCheck.ReadWriteSubTree))
   638         -            {
   639         -              if (!usePackage)
   640         -                subsubsubkey.SetValue(null, "SQLite.Designer.SQLiteConnectionUIControl");
   641         -            }
   642         -            using (RegistryKey subsubsubkey = subsubkey.CreateSubKey("DataConnectionProperties", RegistryKeyPermissionCheck.ReadWriteSubTree))
   643         -            {
   644         -              if (!usePackage)
   645         -                subsubsubkey.SetValue(null, "SQLite.Designer.SQLiteConnectionProperties");
   646         -            }
   647         -
   648         -            subsubkey.CreateSubKey("DataObjectSupport").Close();
   649         -            subsubkey.CreateSubKey("DataViewSupport").Close();
   650         -            using (RegistryKey subsubsubkey = subsubkey.CreateSubKey("DataConnectionSupport", RegistryKeyPermissionCheck.ReadWriteSubTree))
   651         -            {
   652         -              if (!usePackage)
   653         -                subsubsubkey.SetValue(null, "SQLite.Designer.SQLiteDataConnectionSupport");
   654         -            }
   655         -          }
   656         -        }
   657         -      }
   658         -
   659         -      using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataSources", keyname, version), true))
   660         -      {
   661         -        using (RegistryKey subkey = key.CreateSubKey(source.ToString("B"), RegistryKeyPermissionCheck.ReadWriteSubTree))
   662         -        {
   663         -          subkey.SetValue(null, "SQLite Database File");
   664         -          using (RegistryKey subsubkey = subkey.CreateSubKey("SupportingProviders", RegistryKeyPermissionCheck.ReadWriteSubTree))
   665         -          {
   666         -            subsubkey.CreateSubKey(provider.ToString("B")).Close();
   667         -          }
   668         -        }
   669         -      }
   670         -
   671         -      //try
   672         -      //{
   673         -      //  using (RegistryKey key = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", true))
   674         -      //  {
   675         -      //    string libpath = (string)key.GetValue("LIB");
   676         -      //    string path = Path.GetDirectoryName(SQLiteLocation);
   677         -
   678         -      //    if (libpath.IndexOf(path, StringComparison.InvariantCultureIgnoreCase) == -1)
   679         -      //    {
   680         -      //      libpath += (";" + path);
   681         -      //      key.SetValue("LIB", libpath);
   682         -      //    }
   683         -      //  }
   684         -      //}
   685         -      //catch
   686         -      //{
   687         -      //}
   688         -
   689         -      string[] versions = { /*"v2.0.0.0", "v3.5.0.0"*/ };
   690         -
   691         -      for (int x = 0; x < versions.Length; x++)
   692         -      {
   693         -        for (int n = 0; n < compactFrameworks.Length; n++)
   694         -        {
   695         -          using (RegistryKey key = Registry.LocalMachine.CreateSubKey(String.Format("Software\\Microsoft\\.NETCompactFramework\\{1}\\{0}\\DataProviders", compactFrameworks[n], versions[x])))
   696         -          {
   697         -            if (key != null)
   698         -            {
   699         -              using (RegistryKey subkey = key.CreateSubKey(standardDataProviderGuid.ToString("B"), RegistryKeyPermissionCheck.ReadWriteSubTree))
   700         -              {
   701         -                subkey.SetValue(null, ".NET Framework Data Provider for SQLite");
   702         -                subkey.SetValue("InvariantName", "System.Data.SQLite");
   703         -                subkey.SetValue("RuntimeAssembly", "System.Data.SQLite.DLL");
   704         -              }
   705         -            }
   706         -          }
   707         -        }
   708         -      }
   709         -
   710         -      if (usePackage)
   711         -      {
   712         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Packages", keyname, version), true))
   713         -        {
   714         -          using (RegistryKey subkey = key.CreateSubKey("{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}", RegistryKeyPermissionCheck.ReadWriteSubTree))
   715         -          {
   716         -            subkey.SetValue(null, "SQLite Designer Package");
   717         -            subkey.SetValue("Class", "SQLite.Designer.SQLitePackage");
   718         -            subkey.SetValue("CodeBase", Path.GetFullPath("SQLite.Designer.DLL"));
   719         -            subkey.SetValue("ID", 400);
   720         -            subkey.SetValue("InprocServer32", "mscoree.dll");
   721         -            subkey.SetValue("CompanyName", "Black Castle Software, LLC");
   722         -            subkey.SetValue("MinEdition", "standard");
   723         -            subkey.SetValue("ProductName", "SQLite Data Provider");
   724         -            subkey.SetValue("ProductVersion", "1.0");
   725         -            using (RegistryKey toolboxKey = subkey.CreateSubKey("Toolbox"))
   726         -            {
   727         -              toolboxKey.SetValue("Default Items", 3);
   728         -            }
   729         -          }
   730         -        }
   731         -
   732         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Menus", keyname, version), true))
   733         -        {
   734         -          key.SetValue("{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}", ", 1000, 3");
   735         -        }
   736         -
   737         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Services", keyname, version), true))
   738         -        {
   739         -          using (RegistryKey subkey = key.CreateSubKey("{DCBE6C8D-0E57-4099-A183-98FF74C64D9D}", RegistryKeyPermissionCheck.ReadWriteSubTree))
   740         -          {
   741         -            subkey.SetValue(null, "{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}");
   742         -            subkey.SetValue("Name", "SQLite Provider Object Factory");
   743         -          }
   744         -        }
   745         -      }
   746         -    }
   747         -
   748         -    private XmlDocument GetConfig(string keyname, string version, out string xmlFileName)
   749         -    {
   750         -      try
   751         -      {
   752         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}", keyname, version), true))
   753         -        {
   754         -          xmlFileName = (string)key.GetValue("InstallDir");
   755         -          if (String.Compare(keyname, "VisualStudio", true) == 0)
   756         -            xmlFileName += "devenv.exe.config";
   757         -          else
   758         -            xmlFileName += keyname + ".exe.config";
   759         -        }
   760         -
   761         -        XmlDocument xmlDoc = new XmlDocument();
   762         -        xmlDoc.PreserveWhitespace = true;
   763         -        xmlDoc.Load(xmlFileName);
   764         -
   765         -        return xmlDoc;
   766         -      }
   767         -      catch
   768         -      {
   769         -        xmlFileName = null;
   770         -      }
   771         -      return null;
   772         -    }
   773         -
   774         -    private void Uninstall(string keyname, string version, Guid provider, Guid source)
   775         -    {
   776         -      try
   777         -      {
   778         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname, version), true))
   779         -        {
   780         -          if (key != null) key.DeleteSubKeyTree(provider.ToString("B"));
   781         -        }
   782         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\DataSources", keyname, version), true))
   783         -        {
   784         -          if (key != null) key.DeleteSubKeyTree(source.ToString("B"));
   785         -        }
   786         -
   787         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Packages", keyname, version), true))
   788         -        {
   789         -          if (key != null) key.DeleteSubKeyTree("{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}");
   790         -        }
   791         -
   792         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Services", keyname, version), true))
   793         -        {
   794         -          if (key != null) key.DeleteSubKeyTree("{DCBE6C8D-0E57-4099-A183-98FF74C64D9D}");
   795         -        }
   796         -
   797         -        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\{0}\\{1}\\Menus", keyname, version), true))
   798         -        {
   799         -          key.DeleteValue("{DCBE6C8D-0E57-4099-A183-98FF74C64D9C}");
   800         -        }
   801         -
   802         -        //using (RegistryKey key = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", true))
   803         -        //{
   804         -        //  string libpath = (string)key.GetValue("LIB");
   805         -        //  string path = ";" + Path.GetDirectoryName(SQLiteLocation);
   806         -
   807         -        //  libpath = libpath.Replace(path, "");
   808         -        //  key.SetValue("LIB", libpath);
   809         -        //}
   810         -      }
   811         -      catch
   812         -      {
   813         -      }
   814         -
   815         -      // Remove factory support from the development environment config file
   816         -      string xmlFileName;
   817         -      XmlDocument xmlDoc = GetConfig(keyname, version, out xmlFileName);
   818         -
   819         -      if (xmlDoc == null) return;
   820         -
   821         -      XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/add[@invariant=\"System.Data.SQLite\"]");
   822         -      if (xmlNode != null)
   823         -        xmlNode.ParentNode.RemoveChild(xmlNode);
   824         -
   825         -      xmlNode = xmlDoc.SelectSingleNode("configuration/system.data/DbProviderFactories/remove[@invariant=\"System.Data.SQLite\"]");
   826         -      if (xmlNode != null)
   827         -        xmlNode.ParentNode.RemoveChild(xmlNode);
   828         -
   829         -      xmlDoc.Save(xmlFileName);
   830         -    }
   831         -
   832         -
   833         -    private static void CopyKey(RegistryKey keySource, RegistryKey keyDest)
   834         -    {
   835         -      if (keySource.SubKeyCount > 0)
   836         -      {
   837         -        string[] subkeys = keySource.GetSubKeyNames();
   838         -        for (int n = 0; n < subkeys.Length; n++)
   839         -        {
   840         -          using (RegistryKey subkeysource = keySource.OpenSubKey(subkeys[n]))
   841         -          {
   842         -            using (RegistryKey subkeydest = keyDest.CreateSubKey(subkeys[n], RegistryKeyPermissionCheck.ReadWriteSubTree))
   843         -            {
   844         -              CopyKey(subkeysource, subkeydest);
   845         -            }
   846         -          }
   847         -        }
   848         -      }
   849         -      string[] values = keySource.GetValueNames();
   850         -      for (int n = 0; n < values.Length; n++)
   851         -      {
   852         -        keyDest.SetValue(values[n], keySource.GetValue(values[n]), keySource.GetValueKind(values[n]));
   853         -      }
   854         -    }
   855         -
   856         -    private void FixXmlLibPaths(bool install, string version)
   857         -    {
   858         -      string installDir = null;
   859         -      RegistryKey key = null;
   860         -
   861         -      try
   862         -      {
   863         -        key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\VisualStudio\\{0}", version));
   864         -        if (key != null)
   865         -        {
   866         -          try
   867         -          {
   868         -            installDir = (string)key.GetValue("InstallDir");
   869         -          }
   870         -          catch
   871         -          {
   872         -          }
   873         -          finally
   874         -          {
   875         -            if (String.IsNullOrEmpty(installDir))
   876         -            {
   877         -              ((IDisposable)key).Dispose();
   878         -              key = null;
   879         -            }
   880         -          }
   881         -        }
   882         -
   883         -        if (key == null)
   884         -        {
   885         -          key = Registry.LocalMachine.OpenSubKey(String.Format("Software\\Microsoft\\VCExpress\\{0}", version));
   886         -          if (key == null) return;
   887         -        }
   888         -
   889         -        try
   890         -        {
   891         -          installDir = (string)key.GetValue("InstallDir");
   892         -        }
   893         -        catch
   894         -        {
   895         -        }
   896         -      }
   897         -      finally
   898         -      {
   899         -        if (key != null) ((IDisposable)key).Dispose();
   900         -      }
   901         -
   902         -      if (String.IsNullOrEmpty(installDir)) return;
   903         -
   904         -      installDir = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(installDir))), "VC");
   905         -
   906         -      string currentDir;
   907         -      string[] lookIn = new string[] { "vcpackages", "bin\\amd64", "bin\\ia64" };
   908         -      string sqlitePath = Path.GetDirectoryName(SQLiteLocation);
   909         -
   910         -      foreach (string subfolder in lookIn)
   911         -      {
   912         -        try
   913         -        {
   914         -          currentDir = Path.Combine(installDir, subfolder);
   915         -          FixXmlLibPaths(currentDir, "VCProjectEngine.DLL*.config", sqlitePath, install);
   916         -          FixXmlLibPaths(currentDir, "AMD64.VCPlatform.config", Path.Combine(sqlitePath, "x64"), install);
   917         -          FixXmlLibPaths(currentDir, "Itanium.VCPlatform.config", Path.Combine(sqlitePath, "itanium"), install);
   918         -          FixXmlLibPaths(currentDir, "WCE.VCPlatform.config", Path.Combine(sqlitePath, "CompactFramework"), install);
   919         -        }
   920         -        catch
   921         -        {
   922         -        }
   923         -      }
   924         -
   925         -      FixLocalUserPaths(install);
   926         -    }
   927         -
   928         -    private void FixLocalUserPaths(bool install)
   929         -    {
   930         -      string file = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Microsoft\\VisualStudio\\8.0\\VCComponents.dat");
   931         -      StringBuilder output = new StringBuilder();
   932         -      string line;
   933         -      string sqlitePath = Path.GetDirectoryName(SQLiteLocation);
   934         -      string currPath = sqlitePath;
   935         -
   936         -      try
   937         -      {
   938         -        using (StreamReader rd = new StreamReader(file))
   939         -        {
   940         -          while (rd.EndOfStream == false)
   941         -          {
   942         -            line = rd.ReadLine();
   943         -            line = line.Trim();
   944         -            if (String.IsNullOrEmpty(line)) continue;
   945         -            if (line[0] == '[')
   946         -            {
   947         -              if (line.IndexOf("Win32", StringComparison.InvariantCultureIgnoreCase) != -1)
   948         -                currPath = sqlitePath;
   949         -              else if (line.IndexOf("x64", StringComparison.InvariantCultureIgnoreCase) != -1)
   950         -                currPath = Path.Combine(sqlitePath, "x64");
   951         -              else if (line.IndexOf("Itanium", StringComparison.InvariantCultureIgnoreCase) != -1)
   952         -                currPath = Path.Combine(sqlitePath, "x64");
   953         -              else if (line.IndexOf("ARM", StringComparison.InvariantCultureIgnoreCase) != -1)
   954         -                currPath = Path.Combine(sqlitePath, "CompactFramework");
   955         -            }
   956         -            else if (line.StartsWith("Reference Dirs", StringComparison.InvariantCultureIgnoreCase) == true)
   957         -            {
   958         -              int n = line.IndexOf(";" + currPath, StringComparison.InvariantCultureIgnoreCase);
   959         -              if (n > -1) line = line.Remove(n, currPath.Length + 1);
   960         -
   961         -              if (install)
   962         -              {
   963         -                if (line[line.Length - 1] == '=')
   964         -                  line += currPath;
   965         -                else
   966         -                  line += (";" + currPath);
   967         -              }
   968         -            }
   969         -
   970         -            output.AppendLine(line);
   971         -          }
   972         -          rd.Close();
   973         -        }
   974         -
   975         -        File.Delete(file);
   976         -        using (StreamWriter writer = new StreamWriter(file, false, Encoding.Unicode))
   977         -        {          
   978         -          writer.Write(output.ToString());
   979         -          writer.Close();
   980         -        }
   981         -      }
   982         -      catch
   983         -      {
   984         -      }
   985         -    }
   986         -
   987         -    private void FixXmlLibPaths(string path, string lookFor, string sqlitePath, bool install)
   988         -    {
   989         -      // Win32
   990         -      string[] files = Directory.GetFiles(path, lookFor);
   991         -      if (files.Length > 0)
   992         -      {
   993         -        foreach (string file in files)
   994         -        {
   995         -          FixXmlLibPath(file, sqlitePath, install);
   996         -        }
   997         -      }
   998         -    }
   999         -
  1000         -    private void FixXmlLibPath(string fileName, string sqlitePath, bool install)
  1001         -    {
  1002         -      XmlDocument xmlDoc = new XmlDocument();
  1003         -      xmlDoc.PreserveWhitespace = true;
  1004         -      xmlDoc.Load(fileName);
  1005         -      
  1006         -      XmlNodeList xmlNodes = xmlDoc.SelectNodes("VCPlatformConfigurationFile/Platform/Directories");
  1007         -      if (xmlNodes == null) return;
  1008         -
  1009         -      foreach(XmlNode xmlNode in xmlNodes)
  1010         -      {
  1011         -        string libpath = xmlNode.Attributes.GetNamedItem("Reference").Value;
  1012         -        if (String.Compare(libpath, sqlitePath, true) == 0)
  1013         -          libpath = "";
  1014         -        else
  1015         -        {
  1016         -          int n = libpath.IndexOf(";" + sqlitePath, StringComparison.InvariantCultureIgnoreCase);
  1017         -          if (n > -1) libpath = libpath.Remove(n, sqlitePath.Length + 1);
  1018         -        }
  1019         -
  1020         -        if (install)
  1021         -        {
  1022         -          if (String.IsNullOrEmpty(libpath)) libpath = sqlitePath;
  1023         -          else libpath += (";" + sqlitePath);
  1024         -        }
  1025         -        xmlNode.Attributes.GetNamedItem("Reference").Value = libpath;
  1026         -      }
  1027         -
  1028         -      xmlDoc.Save(fileName);
  1029         -    }
  1030         -  }
  1031         -}

Deleted tools/install/InstallDesigner.resx.

     1         -<?xml version="1.0" encoding="utf-8"?>
     2         -<root>
     3         -  <!-- 
     4         -    Microsoft ResX Schema 
     5         -    
     6         -    Version 2.0
     7         -    
     8         -    The primary goals of this format is to allow a simple XML format 
     9         -    that is mostly human readable. The generation and parsing of the 
    10         -    various data types are done through the TypeConverter classes 
    11         -    associated with the data types.
    12         -    
    13         -    Example:
    14         -    
    15         -    ... ado.net/XML headers & schema ...
    16         -    <resheader name="resmimetype">text/microsoft-resx</resheader>
    17         -    <resheader name="version">2.0</resheader>
    18         -    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    19         -    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    20         -    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    21         -    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    22         -    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
    23         -        <value>[base64 mime encoded serialized .NET Framework object]</value>
    24         -    </data>
    25         -    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    26         -        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
    27         -        <comment>This is a comment</comment>
    28         -    </data>
    29         -                
    30         -    There are any number of "resheader" rows that contain simple 
    31         -    name/value pairs.
    32         -    
    33         -    Each data row contains a name, and value. The row also contains a 
    34         -    type or mimetype. Type corresponds to a .NET class that support 
    35         -    text/value conversion through the TypeConverter architecture. 
    36         -    Classes that don't support this are serialized and stored with the 
    37         -    mimetype set.
    38         -    
    39         -    The mimetype is used for serialized objects, and tells the 
    40         -    ResXResourceReader how to depersist the object. This is currently not 
    41         -    extensible. For a given mimetype the value must be set accordingly:
    42         -    
    43         -    Note - application/x-microsoft.net.object.binary.base64 is the format 
    44         -    that the ResXResourceWriter will generate, however the reader can 
    45         -    read any of the formats listed below.
    46         -    
    47         -    mimetype: application/x-microsoft.net.object.binary.base64
    48         -    value   : The object must be serialized with 
    49         -            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    50         -            : and then encoded with base64 encoding.
    51         -    
    52         -    mimetype: application/x-microsoft.net.object.soap.base64
    53         -    value   : The object must be serialized with 
    54         -            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
    55         -            : and then encoded with base64 encoding.
    56         -
    57         -    mimetype: application/x-microsoft.net.object.bytearray.base64
    58         -    value   : The object must be serialized into a byte array 
    59         -            : using a System.ComponentModel.TypeConverter
    60         -            : and then encoded with base64 encoding.
    61         -    -->
    62         -  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    63         -    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    64         -    <xsd:element name="root" msdata:IsDataSet="true">
    65         -      <xsd:complexType>
    66         -        <xsd:choice maxOccurs="unbounded">
    67         -          <xsd:element name="metadata">
    68         -            <xsd:complexType>
    69         -              <xsd:sequence>
    70         -                <xsd:element name="value" type="xsd:string" minOccurs="0" />
    71         -              </xsd:sequence>
    72         -              <xsd:attribute name="name" use="required" type="xsd:string" />
    73         -              <xsd:attribute name="type" type="xsd:string" />
    74         -              <xsd:attribute name="mimetype" type="xsd:string" />
    75         -              <xsd:attribute ref="xml:space" />
    76         -            </xsd:complexType>
    77         -          </xsd:element>
    78         -          <xsd:element name="assembly">
    79         -            <xsd:complexType>
    80         -              <xsd:attribute name="alias" type="xsd:string" />
    81         -              <xsd:attribute name="name" type="xsd:string" />
    82         -            </xsd:complexType>
    83         -          </xsd:element>
    84         -          <xsd:element name="data">
    85         -            <xsd:complexType>
    86         -              <xsd:sequence>
    87         -                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    88         -                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    89         -              </xsd:sequence>
    90         -              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
    91         -              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
    92         -              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
    93         -              <xsd:attribute ref="xml:space" />
    94         -            </xsd:complexType>
    95         -          </xsd:element>
    96         -          <xsd:element name="resheader">
    97         -            <xsd:complexType>
    98         -              <xsd:sequence>
    99         -                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   100         -              </xsd:sequence>
   101         -              <xsd:attribute name="name" type="xsd:string" use="required" />
   102         -            </xsd:complexType>
   103         -          </xsd:element>
   104         -        </xsd:choice>
   105         -      </xsd:complexType>
   106         -    </xsd:element>
   107         -  </xsd:schema>
   108         -  <resheader name="resmimetype">
   109         -    <value>text/microsoft-resx</value>
   110         -  </resheader>
   111         -  <resheader name="version">
   112         -    <value>2.0</value>
   113         -  </resheader>
   114         -  <resheader name="reader">
   115         -    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   116         -  </resheader>
   117         -  <resheader name="writer">
   118         -    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   119         -  </resheader>
   120         -  <metadata name="columnHeader1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
   121         -    <value>False</value>
   122         -  </metadata>
   123         -  <metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
   124         -    <value>False</value>
   125         -  </metadata>
   126         -  <metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
   127         -    <value>False</value>
   128         -  </metadata>
   129         -  <metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
   130         -    <value>False</value>
   131         -  </metadata>
   132         -  <data name="label2.Text" xml:space="preserve">
   133         -    <value>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.</value>
   134         -  </data>
   135         -  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   136         -  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
   137         -    <value>
   138         -        AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
   139         -        CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA
   140         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA
   141         -        /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAREREREREREXd3d3d3ARERERERERERERF4uLeLiwARERER
   142         -        ERERERERe4uHuLgDAREREREREREREXi4t4uLAzARERERERAAAA97i4e4uAMwAREREREXd3d/eLi3i4sD
   143         -        MDARERERF/iIj3uLh7i4AzAwERERERf4iI94uLeLiwMwMBEREREX+IiPd3d3d3cDMDARAAERF/iIiPe/
   144         -        v3+/sDAwEHdwERf4iIiPe/v3+/sAMHeIdwAH+IiIiPeIiHiIgDB/+ICIh/iIiIiPe/v3+/sAf/+HB3f4
   145         -        iIiIiPd3d3d3cBf/gBEX+IiIiIiP/////xERd3ERF/iIiIiIiIiIiHARERERERf4iIiIiIiIiIhwERER
   146         -        EREX+IiIiIiIiIiIcBERERERF/iIiIiIiIiIiHARERERERf4iIiIiIiIiIhwEREREREX////////////
   147         -        cBERERERF3d3d3d3d3d3d3AREREREREREXgBERF4ARERERERERERERF/ARERfwEREREREREREREReAER
   148         -        EXgBEREREREREREREQcBEREHARERERERERERERBwcBEQcHARERERERERERF4iHcBeIh3ARERERERERER
   149         -        f/iHAX/4hwEREREREREREX//hwF//4cBEREREREREREX/4ARF/+AEREREREREREREYiBERGIgREREf//
   150         -        AB///wAP//8AB///AAP/gAAB/4AAAP+AAAD/gAAA/4AAAMeAAACDgAAAAAAAAAAAAAAAAAAAg4AAA8eA
   151         -        AAP/gAAD/4AAA/+AAAP/gAAD/4AAA/+AAAP//Hx///x8f//8fH///Hx///g4P//wEB//8BAf//AQH//4
   152         -        OD///Hx/KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACA
   153         -        gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAREREXd3dwERER
   154         -        ERe4e4ABERERF4t4sDAREQAHuHuAMBERf3eLeLAwERF/h3d3cDCAgX+Ie/e/AA8Af4iHd3dwgIF/iIiI
   155         -        dxEREX////9wERERd3d3d3AREREREQEREREREREYCBERERERERDwERERERERGAgREREREREREREREf4D
   156         -        ERH+AYiP/gB3d/AAMDDwAAER8ACIiBAAv38AADAwEANwEfADiIjwA/v3/38AMP4/dwD+P4iI/j+IiP//
   157         -        gDAoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA
   158         -        AACAAIAAgIAAAICAgADA3MAA8MqmAKo/KgD/PyoAAF8qAFVfKgCqXyoA/18qAAB/KgBVfyoAqn8qAP9/
   159         -        KgAAnyoAVZ8qAKqfKgD/nyoAAL8qAFW/KgCqvyoA/78qAADfKgBV3yoAqt8qAP/fKgAA/yoAVf8qAKr/
   160         -        KgD//yoAAABVAFUAVQCqAFUA/wBVAAAfVQBVH1UAqh9VAP8fVQAAP1UAVT9VAKo/VQD/P1UAAF9VAFVf
   161         -        VQCqX1UA/19VAAB/VQBVf1UAqn9VAP9/VQAAn1UAVZ9VAKqfVQD/n1UAAL9VAFW/VQCqv1UA/79VAADf
   162         -        VQBV31UAqt9VAP/fVQAA/1UAVf9VAKr/VQD//1UAAAB/AFUAfwCqAH8A/wB/AAAffwBVH38Aqh9/AP8f
   163         -        fwAAP38AVT9/AKo/fwD/P38AAF9/AFVffwCqX38A/19/AAB/fwBVf38Aqn9/AP9/fwAAn38AVZ9/AKqf
   164         -        fwD/n38AAL9/AFW/fwCqv38A/79/AADffwBV338Aqt9/AP/ffwAA/38AVf9/AKr/fwD//38AAACqAFUA
   165         -        qgCqAKoA/wCqAAAfqgBVH6oAqh+qAP8fqgAAP6oAVT+qAKo/qgD/P6oAAF+qAFVfqgCqX6oA/1+qAAB/
   166         -        qgBVf6oAqn+qAP9/qgAAn6oAVZ+qAKqfqgD/n6oAAL+qAFW/qgCqv6oA/7+qAADfqgBV36oAqt+qAP/f
   167         -        qgAA/6oAVf+qAKr/qgD//6oAAADUAFUA1ACqANQA/wDUAAAf1ABVH9QAqh/UAP8f1AAAP9QAVT/UAKo/
   168         -        1AD/P9QAAF/UAFVf1ACqX9QA/1/UAAB/1ABVf9QAqn/UAP9/1AAAn9QAVZ/UAKqf1AD/n9QAAL/UAFW/
   169         -        1ACqv9QA/7/UAADf1ABV39QAqt/UAP/f1AAA/9QAVf/UAKr/1AD//9QAVQD/AKoA/wAAH/8AVR//AKof
   170         -        /wD/H/8AAD//AFU//wCqP/8A/z//AABf/wBVX/8Aql//AP9f/wAAf/8AVX//AKp//wD/f/8AAJ//AFWf
   171         -        /wCqn/8A/5//AAC//wBVv/8Aqr//AP+//wAA3/8AVd//AKrf/wD/3/8AVf//AKr//wD/zMwA/8z/AP//
   172         -        MwD//2YA//+ZAP//zAAAfwAAVX8AAKp/AAD/fwAAAJ8AAFWfAACqnwAA/58AAAC/AABVvwAAqr8AAP+/
   173         -        AAAA3wAAVd8AAKrfAAD/3wAAVf8AAKr/AAAAACoAVQAqAKoAKgD/ACoAAB8qAFUfKgCqHyoA/x8qAAA/
   174         -        KgBVPyoA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAAAAAAD//wAA////AP39/f39/f39/f39/f39
   175         -        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
   176         -        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/YF9fVlVWVVVVf39/f39/f39/f39
   177         -        /f39/f39/f39/f39pcuoylSkpMakVP39/f39/f39/f39/f39/f39/f39/f2pqcvLVMrKpMZ8LP39/f39
   178         -        /f39/f39/f39/f39/f39/anP0KkDy6jLpHxUeP39/f39/f39/f39/f39/f39/f39qc/Pz1nLy6ikfFR8
   179         -        eP39/f39/f39/f39/f39/f39/f2p0K7QWc+py8Z8VHx8/f39/f39/f39/f0yMTIxMjEyManP0M99z8+t
   180         -        z3xUfHz9/f39/f39/f39XggJCYIJgoKDqfb29gf29tDTfFR8fP39/f39/f39/YKzrwgICAirCAiqy9DT
   181         -        0IHPy8vLVHx8/f39/f39/f39htH2r6+vrwivCNQIy/eFMS0wWXxUfHz9/VoHNjL9/f2Gs/b29q/2r6+v
   182         -        CNQIpVXQLNBUqcvKfP2ChtSCWjX9/YL/9q/29q/2rwjRrwgHqVWpVctVqcul/V7/rwiCMjYyhv//9vav
   183         -        9q/2r68Ir4JZhquCMVr3Df39gvb2rwhagl6C//////bR9q/2r/avr68ICAjUhoMx/f2G1P//CV79/Qn/
   184         -        //////az9vavr9EIr6+vCKsJhg39/f0Igl6G/f39gv////////b2r/b2r/avCNGvCAiCMv39/f39/f39
   185         -        /f2G////////////9q/2r/avrwivCIMx/f39/f39/f39/f2G//////////////b2r/avr68IB/39/f39
   186         -        /f39/f39/f2GgoaCgl73Xl5eWl5aWgc2Bzb9/f39/f39/f39/f39/f39/f1eMf39/f39/V4x/f39/f39
   187         -        /f39/f39/f39/f39/f39/YIy/f39/f39gjL9/f39/f39/f39/f39/f39/f39/f1aNgcy/f39/Vo2BzL9
   188         -        /f39/f39/f39/f39/f39/f39gobUgjYH/f2ChtSCNgf9/f39/f39/f39/f39/f39/f1e/68IgjL9/V7/
   189         -        rwiCMv39/f39/f39/f39/f39/f39/ffR/68IB/3999H/rwgH/f39/f39/f39/f39/f39/f39CAj//wle
   190         -        /f0ICP//CV79/f39/f39/f39/f39/f39/f39CYL3hv39/f0JgveG/f39/f39/f39/f39/f39/f39/f39
   191         -        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3/////////////
   192         -        /////8Af///AD///wAf//8AD///AAf//wAH/wAAB/4AAAf8AAAH/AAABhwAAAQMAAAEAAAADAAAAAwMA
   193         -        AAOHAAAD/wAAA/+AAAf/wAAP//z8///8/P//+Hh///AwP//wMD//8DA///AwP//4eH///////////ygA
   194         -        AAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA
   195         -        gACAgAAAgICAAMDcwADwyqYAqj8qAP8/KgAAXyoAVV8qAKpfKgD/XyoAAH8qAFV/KgCqfyoA/38qAACf
   196         -        KgBVnyoAqp8qAP+fKgAAvyoAVb8qAKq/KgD/vyoAAN8qAFXfKgCq3yoA/98qAAD/KgBV/yoAqv8qAP//
   197         -        KgAAAFUAVQBVAKoAVQD/AFUAAB9VAFUfVQCqH1UA/x9VAAA/VQBVP1UAqj9VAP8/VQAAX1UAVV9VAKpf
   198         -        VQD/X1UAAH9VAFV/VQCqf1UA/39VAACfVQBVn1UAqp9VAP+fVQAAv1UAVb9VAKq/VQD/v1UAAN9VAFXf
   199         -        VQCq31UA/99VAAD/VQBV/1UAqv9VAP//VQAAAH8AVQB/AKoAfwD/AH8AAB9/AFUffwCqH38A/x9/AAA/
   200         -        fwBVP38Aqj9/AP8/fwAAX38AVV9/AKpffwD/X38AAH9/AFV/fwCqf38A/39/AACffwBVn38Aqp9/AP+f
   201         -        fwAAv38AVb9/AKq/fwD/v38AAN9/AFXffwCq338A/99/AAD/fwBV/38Aqv9/AP//fwAAAKoAVQCqAKoA
   202         -        qgD/AKoAAB+qAFUfqgCqH6oA/x+qAAA/qgBVP6oAqj+qAP8/qgAAX6oAVV+qAKpfqgD/X6oAAH+qAFV/
   203         -        qgCqf6oA/3+qAACfqgBVn6oAqp+qAP+fqgAAv6oAVb+qAKq/qgD/v6oAAN+qAFXfqgCq36oA/9+qAAD/
   204         -        qgBV/6oAqv+qAP//qgAAANQAVQDUAKoA1AD/ANQAAB/UAFUf1ACqH9QA/x/UAAA/1ABVP9QAqj/UAP8/
   205         -        1AAAX9QAVV/UAKpf1AD/X9QAAH/UAFV/1ACqf9QA/3/UAACf1ABVn9QAqp/UAP+f1AAAv9QAVb/UAKq/
   206         -        1AD/v9QAAN/UAFXf1ACq39QA/9/UAAD/1ABV/9QAqv/UAP//1ABVAP8AqgD/AAAf/wBVH/8Aqh//AP8f
   207         -        /wAAP/8AVT//AKo//wD/P/8AAF//AFVf/wCqX/8A/1//AAB//wBVf/8Aqn//AP9//wAAn/8AVZ//AKqf
   208         -        /wD/n/8AAL//AFW//wCqv/8A/7//AADf/wBV3/8Aqt//AP/f/wBV//8Aqv//AP/MzAD/zP8A//8zAP//
   209         -        ZgD//5kA///MAAB/AABVfwAAqn8AAP9/AAAAnwAAVZ8AAKqfAAD/nwAAAL8AAFW/AACqvwAA/78AAADf
   210         -        AABV3wAAqt8AAP/fAABV/wAAqv8AAAAAKgBVACoAqgAqAP8AKgAAHyoAVR8qAKofKgD/HyoAAD8qAFU/
   211         -        KgDw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAAAAAAAP//AAD///8A/f39/f39/f39/f39/f39/f39
   212         -        /f39/YF9fVlVWVVV/f39/f39/f2ly6jGVKTGpCz9/f39/f39qc/Qz1nLqcZUeP39/f39/anQrdBZz8uk
   213         -        VHz9/f39/f2p0NDPfc+uz1R8/f39/f0xqfb29vf209BUfP39/f0yr/epgYUxLCx9VHz99f39WtH2r6lV
   214         -        pTGlVKmlXv/19V7/9q/2rzAHVf39/f1e/f1e///29q+v1PX9/f39/f39/fdeXlpaBzH9/f39/f39/f39
   215         -        /f31/f39/f39/f39/f39/f399f39/f39/f39/f39/f39Xv/1/f39/f39/f39/f39/f1e/f39/f39/f//
   216         -        /f38A/39/AH9/fwA/f38AKnQ/ABZz/gAxnzwAHz9sAD9/QAH/f2wBzIx+A8yMf9/qc//f33P/j/PfP9/
   217         -        fP0oAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   218         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   219         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   220         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   221         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   222         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   223         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   224         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   225         -        AAAAAAAAAAAAAAAAAAAAAAAAZpKo/2GMov9bhJz/VX2V/0Bec/9LcIr/RmmE/0Fjf/83V3T/FExpMQAA
   226         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   227         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGrtv/R8fw/ye67/8Vsuz/BWSI/wGn6f8Ao+b/AKDi/wCc
   228         -        4P8QbJP/FExpMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   229         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFm34P9azvL/U83y/0PG8f8eb4v/JLnu/xiz
   230         -        7f8Nruv/AJ/i/wd7q/8UTGn/FExpMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   231         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWbjg/23W8v9p1fP/WM/y/yl0
   232         -        jP83wfD/Kbrv/xu17f8AoeP/BH6x/wdWev8QcJn/FExpMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   233         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZueL/ftzz/33e
   234         -        9P9t2PT/NnmM/0zK8v89xPD/Lb3w/wCj5f8Agrb/BFmA/wZ7p/8Ocpv/AAAAAAAAAAAAAAAAAAAAAAAA
   235         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFm6
   236         -        4/+N5PT/kOX1/4Lf9f9Cfo3/Y9Pz/1HN8v9BxfD/AKbn/wCCtv8AXYX/BH2q/wl5pv8AAAAAAAAAAAAA
   237         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiXFfRolxX/+Gblv/hGtZ/4FoVf9+ZVL/e2JP/3lg
   238         -        TP92XUr/Wbzn/4rh9P+K4fT/iuH0/02Ilv9+3PP/dNjy/2jT8f9o0/H/AIK2/wBdhf8FgbD/CXmm/wAA
   239         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIlxX0aumYr/0sC2/9C9s//Ou7H/zLmu/8u2
   240         -        q//KtKn/x7Km/8awpP9qxOv/3fT7/930+//d9Pv/h5yj/8/w+//P8Pv/u+n6/7Xo+v8AiMD/AF2F/wWB
   241         -        sP8Jeab/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw6+i//Pv7P/m3tr/4NTO/9/S
   242         -        yv/dzsf/2szD/9jJwf/Wxr3/1MK6/7q+vv9qxOv/q/D3/6rw9/+d6/b/W5Sf/3fb9P9h0vP/Scnx/zS/
   243         -        8P8AXYX/BYKz/wl5pv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEsKP/9/Px//Xw
   244         -        7v/y7ev/7+rn/+7m4//r49//6N/b/+bc1v/k2NL/4dTO/8TLzv9qxOv/fK6z/3issv8/YGb/K0tT/yVI
   245         -        Uf84hp7/KYCd/xZjff8AiMD/CXmm/wAAAAC+r6UxppGDwI12ZPiFbFr4hmtZwIJoVTEAAAAAAAAAAMWx
   246         -        pP/59/X/9/Tz//Xy7//z7uz/8Ovo/+/o5P/t5OH/6uHd/+fd2P/k2tT/4tfQ/8XO0P9fsNP/T25x/5/r
   247         -        9v8uS1H/n+v2/zJsfP9Dtdj/NcDw/yG37v8LfKz/AAAAALytosDHurD/18fB/8Otof+dg3P/h21awAAA
   248         -        AAAAAAAAxbKk//v6+f/5+Pb/+PXz//bz8P/07+7/8uzq//Dq5v/u5uL/6+Pe/+jf2v/l29b/49jS/3Js
   249         -        af9Zven/KVhs/1m96f8pV2v/Wb3p/y5hd/9Zven/RrXm/zGt4/8AAAAAsZ6Q+Pn39v/w6uj/3M7G/8Ku
   250         -        of+IcF34hm5b/4RrWf/GsqX//f39//z6+v/7+fj/+fb1//fz8v/18O7/8u7s//Dr6P/u5+T/7OTg/+nh
   251         -        3P/m3df/uK+r/3Ntav/Ivbb/3M7H/7Cjnv9uZWH/o5KK/8GqnP9sUj7/AAAAAAAAAAC4ppn4+fj3////
   252         -        ///w6+j/1snA/5N7avjHsab/s5qK/8azpf////////3+//37+//7+vn/+fj2//f18//18vD/8+/t//Hs
   253         -        6f/v6eX/7ebi/+vj3v/o39r/5tvV/+LY0v/g1M3/3c/J/9vMxf/Nuq//xKyg/29VQf8AAAAAAAAAAM3A
   254         -        tsDb0sv/+vj3//n49//KvbT/q5eJwAAAAAAAAAAAx7Om///////////////+//38/f/8+/r/+vn4//j2
   255         -        9f/38/L/9fDv//Lt6v/w6uf/7ufj/+vk3//p4Nz/5t3X/+TZ0//h1c//39HL/9C9tP/FsKT/cllF/wAA
   256         -        AAAAAAAA3NHKMc/Bt8C7qZz4tqOW+MKzqMDEtasxAAAAAAAAAADHtaf///////////////////////7+
   257         -        /f/8/Pv/+/r4//r39v/39fL/9vLv//Pv7f/y7On/7+nl/+zl4f/q4t3/597Z/+Xb1f/i19H/08K6/8iz
   258         -        qP91XEn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMi1qMr////a////////
   259         -        /////////////////v/9/Pz//Pv6//r4+P/49vT/9vPx//Xw7v/y7er/8Orm/+3m4//r5N//6eDb/+bc
   260         -        1//cz8j/y7er/3lfTP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiXFfMcWx
   261         -        pLL////N////6v////T////////////////+/f3//fz7//v6+f/69vX/9/Tz//Xy7//z7uz/8evo/+/o
   262         -        5f/s5eH/6uHd/+Ta1f+Gblz/hm5cRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   263         -        AAAAAAAAiXFfMcWxpLLDr6LTwK2e6L2pnP+7ppj/t6SV/7Wgkf+xnI3/rpmJ/6uVhf+nkoH/pI59/6CK
   264         -        ev+chnX/mIJx/5V+bf+Remj/inJg/4ZuXEYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   265         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALOaiv+Ea1n/AAAAAAAAAAAAAAAAAAAAAAAA
   266         -        AAAAAAAAs5qK/4RrWf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   267         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx7Gm/4ZuW/8AAAAAAAAAAAAA
   268         -        AAAAAAAAAAAAAAAAAADHsab/hm5b/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   269         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvq+lMaaRg8CNdmT4hWxa+IZr
   270         -        WcCCaFUxAAAAAAAAAAC+r6UxppGDwI12ZPiFbFr4hmtZwIJoVTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   271         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8raLAx7qw/9fH
   272         -        wf/DraH/nYNz/4dtWsAAAAAAAAAAALytosDHurD/18fB/8Otof+dg3P/h21awAAAAAAAAAAAAAAAAAAA
   273         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGe
   274         -        kPj59/b/8Oro/9zOxv/CrqH/iHBd+AAAAAAAAAAAsZ6Q+Pn39v/w6uj/3M7G/8Kuof+IcF34AAAAAAAA
   275         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   276         -        AAAAAAAAuKaZ+Pn49///////8Ovo/9bJwP+Te2r4AAAAAAAAAAC4ppn4+fj3///////w6+j/1snA/5N7
   277         -        avgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   278         -        AAAAAAAAAAAAAAAAAADNwLbA29LL//r49//5+Pf/yr20/6uXicAAAAAAAAAAAM3AtsDb0sv/+vj3//n4
   279         -        9//KvbT/q5eJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   280         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAANzRyjHPwbfAu6mc+LajlvjCs6jAxLWrMQAAAAAAAAAA3NHKMc/B
   281         -        t8C7qZz4tqOW+MKzqMDEtasxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   282         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   283         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   284         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   285         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
   286         -        ////////////////wA///8AH///AA///wAH//8AB///AAf+AAAH/AAAB/wAAAf8AAAEDAAABAwAAAQAA
   287         -        AAMAAAADAwAAAwMAAAP/AAAD/wAAA/+AAAf//Pz///z8///wMD//8DA///AwP//wMD//8DA///AwP///
   288         -        ////////KAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   289         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   290         -        AAAAAAAAAAAAAAAAAABmkqj/YYyi/1uEnP9VfZX/QF5z/0twiv9GaYT/N1d0/wAAAAAAAAAAAAAAAAAA
   291         -        AAAAAAAAAAAAAAAAAAAAAAAARq7b/0fH8P8nuu//FbLs/wVkiP8Bp+n/AKPm/wCc4P8UTGn/AAAAAAAA
   292         -        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFm54v9+3PP/fd70/23Y9P82eYz/TMry/z3E8P8Ao+X/BFmA/w5y
   293         -        m/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZuuP/jeT0/5Dl9f+C3/X/Qn6N/2PT8/9RzfL/AKbn/wBd
   294         -        hf8Jeab/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWbzn/4rh9P+K4fT/iuH0/02Ilv9+3PP/dNjy/2jT
   295         -        8f8AXYX/CXmm/wAAAAAAAAAAAAAAAAAAAAAAAAAAdVtG/2rE6//d9Pv/3fT7/930+/+HnKP/z/D7/8/w
   296         -        +/+16Pr/AF2F/wl5pv8AAAAAAAAAAAAAAAD///8xhW1a/+3m4/+/p5r/asTr/3yus/94rLL/P2Bm/ytL
   297         -        U/8lSFH/OIae/xZjff8Jeab/Y0gzO2NIM/9jSDM7////apeAb//28vH/8u3q/+3m4/9fsNP/T25x/zOr
   298         -        1/8uS1H/LqnX/zJsfP9Dtdj/Ma3j/66ai///////Y0gz/2NIM/+plIT//fv8//n39//28/D/8u3q/+3n
   299         -        4/8pWGz/pox7/ylXa/8AAAAAAAAAAAAAAABjSDM7rpqL/2NIMzv///95sp2O///////8/Pv/+vj3//by
   300         -        8f/y7er/6eDb/9/Sy/9pTjr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////RgAAAAC2oZP/rpqL/6eR
   301         -        gf+fiXn/l4Bv/4dvXf94X0z/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   302         -        AAAAAAAAY0gz/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   303         -        AAAAAAAAY0gzP2NIM/9jSDM/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   304         -        AAAAAAAAAAAAAK6ai///////Y0gz/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
   305         -        AAAAAAAAAAAAAAAAAABjSDM/rpqL/2NIMz8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA/AMAAPwB
   306         -        AAD8AAAA/AAAAPwAAAD4AAAA4AAAAAAAAAAABwAAAAcAAOgPAAD/fwAA/j8AAP4/AAD+PwAA
   307         -</value>
   308         -  </data>
   309         -</root>

Deleted tools/install/Program.cs.

     1         -using System;
     2         -using System.Collections.Generic;
     3         -using System.Windows.Forms;
     4         -
     5         -namespace install
     6         -{
     7         -  static class Program
     8         -  {
     9         -    /// <summary>
    10         -    /// The main entry point for the application.
    11         -    /// </summary>
    12         -    [STAThread]
    13         -    static void Main()
    14         -    {
    15         -      Application.EnableVisualStyles();
    16         -      Application.SetCompatibleTextRenderingDefault(false);
    17         -      Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
    18         -
    19         -      InstallDesigner designer = new InstallDesigner();
    20         -      if (designer._remove == false)
    21         -        designer.ShowDialog();
    22         -    }
    23         -  }
    24         -}

Deleted tools/install/Properties/AssemblyInfo.cs.

     1         -using System.Reflection;
     2         -using System.Runtime.CompilerServices;
     3         -using System.Runtime.InteropServices;
     4         -
     5         -// General Information about an assembly is controlled through the following 
     6         -// set of attributes. Change these attribute values to modify the information
     7         -// associated with an assembly.
     8         -[assembly: AssemblyTitle("System.Data.SQLite Designer Installer")]
     9         -[assembly: AssemblyDescription("ADO.NET Data Provider for SQLite")]
    10         -[assembly: AssemblyCompany("http://system.data.sqlite.org/")]
    11         -[assembly: AssemblyProduct("System.Data.SQLite")]
    12         -[assembly: AssemblyCopyright("Public Domain")]
    13         -
    14         -#if DEBUG
    15         -[assembly: AssemblyConfiguration("Debug")]
    16         -#else
    17         -[assembly: AssemblyConfiguration("Release")]
    18         -#endif
    19         -
    20         -// Setting ComVisible to false makes the types in this assembly not visible 
    21         -// to COM components.  If you need to access a type in this assembly from 
    22         -// COM, set the ComVisible attribute to true on that type.
    23         -[assembly: ComVisible(false)]
    24         -
    25         -// Version information for an assembly consists of the following four values:
    26         -//
    27         -//      Major Version
    28         -//      Minor Version 
    29         -//      Build Number
    30         -//      Revision
    31         -//
    32         -[assembly: AssemblyVersion("1.0.0.*")]
    33         -[assembly: AssemblyFileVersion("1.0.0.0")]

Deleted tools/install/Properties/Resources.Designer.cs.

     1         -//------------------------------------------------------------------------------
     2         -// <auto-generated>
     3         -//     This code was generated by a tool.
     4         -//     Runtime Version:4.0.30319.1
     5         -//
     6         -//     Changes to this file may cause incorrect behavior and will be lost if
     7         -//     the code is regenerated.
     8         -// </auto-generated>
     9         -//------------------------------------------------------------------------------
    10         -
    11         -namespace install.Properties {
    12         -    using System;
    13         -    
    14         -    
    15         -    /// <summary>
    16         -    ///   A strongly-typed resource class, for looking up localized strings, etc.
    17         -    /// </summary>
    18         -    // This class was auto-generated by the StronglyTypedResourceBuilder
    19         -    // class via a tool like ResGen or Visual Studio.
    20         -    // To add or remove a member, edit your .ResX file then rerun ResGen
    21         -    // with the /str option, or rebuild your VS project.
    22         -    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
    23         -    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    24         -    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    25         -    internal class Resources {
    26         -        
    27         -        private static global::System.Resources.ResourceManager resourceMan;
    28         -        
    29         -        private static global::System.Globalization.CultureInfo resourceCulture;
    30         -        
    31         -        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
    32         -        internal Resources() {
    33         -        }
    34         -        
    35         -        /// <summary>
    36         -        ///   Returns the cached ResourceManager instance used by this class.
    37         -        /// </summary>
    38         -        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
    39         -        internal static global::System.Resources.ResourceManager ResourceManager {
    40         -            get {
    41         -                if (object.ReferenceEquals(resourceMan, null)) {
    42         -                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("install.Properties.Resources", typeof(Resources).Assembly);
    43         -                    resourceMan = temp;
    44         -                }
    45         -                return resourceMan;
    46         -            }
    47         -        }
    48         -        
    49         -        /// <summary>
    50         -        ///   Overrides the current thread's CurrentUICulture property for all
    51         -        ///   resource lookups using this strongly typed resource class.
    52         -        /// </summary>
    53         -        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
    54         -        internal static global::System.Globalization.CultureInfo Culture {
    55         -            get {
    56         -                return resourceCulture;
    57         -            }
    58         -            set {
    59         -                resourceCulture = value;
    60         -            }
    61         -        }
    62         -        
    63         -        internal static byte[] System_Data_SQLite {
    64         -            get {
    65         -                object obj = ResourceManager.GetObject("System_Data_SQLite", resourceCulture);
    66         -                return ((byte[])(obj));
    67         -            }
    68         -        }
    69         -    }
    70         -}

Deleted tools/install/Properties/Resources.resx.

     1         -<?xml version="1.0" encoding="utf-8"?>
     2         -<root>
     3         -  <!-- 
     4         -    Microsoft ResX Schema 
     5         -    
     6         -    Version 2.0
     7         -    
     8         -    The primary goals of this format is to allow a simple XML format 
     9         -    that is mostly human readable. The generation and parsing of the 
    10         -    various data types are done through the TypeConverter classes 
    11         -    associated with the data types.
    12         -    
    13         -    Example:
    14         -    
    15         -    ... ado.net/XML headers & schema ...
    16         -    <resheader name="resmimetype">text/microsoft-resx</resheader>
    17         -    <resheader name="version">2.0</resheader>
    18         -    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    19         -    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    20         -    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    21         -    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    22         -    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
    23         -        <value>[base64 mime encoded serialized .NET Framework object]</value>
    24         -    </data>
    25         -    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    26         -        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
    27         -        <comment>This is a comment</comment>
    28         -    </data>
    29         -                
    30         -    There are any number of "resheader" rows that contain simple 
    31         -    name/value pairs.
    32         -    
    33         -    Each data row contains a name, and value. The row also contains a 
    34         -    type or mimetype. Type corresponds to a .NET class that support 
    35         -    text/value conversion through the TypeConverter architecture. 
    36         -    Classes that don't support this are serialized and stored with the 
    37         -    mimetype set.
    38         -    
    39         -    The mimetype is used for serialized objects, and tells the 
    40         -    ResXResourceReader how to depersist the object. This is currently not 
    41         -    extensible. For a given mimetype the value must be set accordingly:
    42         -    
    43         -    Note - application/x-microsoft.net.object.binary.base64 is the format 
    44         -    that the ResXResourceWriter will generate, however the reader can 
    45         -    read any of the formats listed below.
    46         -    
    47         -    mimetype: application/x-microsoft.net.object.binary.base64
    48         -    value   : The object must be serialized with 
    49         -            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    50         -            : and then encoded with base64 encoding.
    51         -    
    52         -    mimetype: application/x-microsoft.net.object.soap.base64
    53         -    value   : The object must be serialized with 
    54         -            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
    55         -            : and then encoded with base64 encoding.
    56         -
    57         -    mimetype: application/x-microsoft.net.object.bytearray.base64
    58         -    value   : The object must be serialized into a byte array 
    59         -            : using a System.ComponentModel.TypeConverter
    60         -            : and then encoded with base64 encoding.
    61         -    -->
    62         -  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    63         -    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    64         -    <xsd:element name="root" msdata:IsDataSet="true">
    65         -      <xsd:complexType>
    66         -        <xsd:choice maxOccurs="unbounded">
    67         -          <xsd:element name="metadata">
    68         -            <xsd:complexType>
    69         -              <xsd:sequence>
    70         -                <xsd:element name="value" type="xsd:string" minOccurs="0" />
    71         -              </xsd:sequence>
    72         -              <xsd:attribute name="name" use="required" type="xsd:string" />
    73         -              <xsd:attribute name="type" type="xsd:string" />
    74         -              <xsd:attribute name="mimetype" type="xsd:string" />
    75         -              <xsd:attribute ref="xml:space" />
    76         -            </xsd:complexType>
    77         -          </xsd:element>
    78         -          <xsd:element name="assembly">
    79         -            <xsd:complexType>
    80         -              <xsd:attribute name="alias" type="xsd:string" />
    81         -              <xsd:attribute name="name" type="xsd:string" />
    82         -            </xsd:complexType>
    83         -          </xsd:element>
    84         -          <xsd:element name="data">
    85         -            <xsd:complexType>
    86         -              <xsd:sequence>
    87         -                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
    88         -                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
    89         -              </xsd:sequence>
    90         -              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
    91         -              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
    92         -              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
    93         -              <xsd:attribute ref="xml:space" />
    94         -            </xsd:complexType>
    95         -          </xsd:element>
    96         -          <xsd:element name="resheader">
    97         -            <xsd:complexType>
    98         -              <xsd:sequence>
    99         -                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
   100         -              </xsd:sequence>
   101         -              <xsd:attribute name="name" type="xsd:string" use="required" />
   102         -            </xsd:complexType>
   103         -          </xsd:element>
   104         -        </xsd:choice>
   105         -      </xsd:complexType>
   106         -    </xsd:element>
   107         -  </xsd:schema>
   108         -  <resheader name="resmimetype">
   109         -    <value>text/microsoft-resx</value>
   110         -  </resheader>
   111         -  <resheader name="version">
   112         -    <value>2.0</value>
   113         -  </resheader>
   114         -  <resheader name="reader">
   115         -    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   116         -  </resheader>
   117         -  <resheader name="writer">
   118         -    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   119         -  </resheader>
   120         -  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   121         -  <data name="System_Data_SQLite" type="System.Resources.ResXFileRef, System.Windows.Forms">
   122         -    <value>..\Resources\System.Data.SQLite.dll;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   123         -  </data>
   124         -</root>

Deleted tools/install/Resources/System.Data.SQLite.dll.

cannot compute difference between binary files

Deleted tools/install/app.config.

     1         -<?xml version="1.0"?>
     2         -<configuration>
     3         -<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration>

Deleted tools/install/install.exe.manifest.

     1         -<?xml version="1.0" encoding="utf-8" standalone="yes"?>
     2         -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
     3         -  <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="install" type="win32"/>
     4         -  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
     5         -    <security>
     6         -      <requestedPrivileges>
     7         -        <requestedExecutionLevel level="requireAdministrator"/>
     8         -      </requestedPrivileges>
     9         -    </security>
    10         -  </trustInfo>
    11         -</assembly>
    12         -

Deleted tools/install/install.ico.

cannot compute difference between binary files