System.Data.SQLite
Check-in [a509add902]
Not logged in

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

Overview
Comment:Add support for the .NET Framework 4.5.1 and Visual Studio 2013, including the design-time components.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: a509add902df44aa2e76349377e336e1f7167f4e
User & Date: mistachkin 2013-11-27 05:46:19
References
2013-11-27
05:55 Closed ticket [9f17fe62ff]: Support VS 2013 plus 4 other changes artifact: a2dfe40c8d user: mistachkin
Context
2013-11-27
06:01
Update the master release archive manifest. check-in: 304dd5f778 user: mistachkin tags: trunk
05:46
Add support for the .NET Framework 4.5.1 and Visual Studio 2013, including the design-time components. check-in: a509add902 user: mistachkin tags: trunk
05:35
Fix compilation error and adjust the logging used by the design-time components installer. Closed-Leaf check-in: 3447e84d66 user: mistachkin tags: vs2013
2013-11-25
19:44
Avoid calling into the interop assembly to check for a NULL column value when the type affinity is already known. check-in: 49bc3a15ba user: mistachkin tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to Doc/Extra/version.html.

    42     42       </div>
    43     43       <div id="mainSection">
    44     44       <div id="mainBody">
    45     45       <h1 class="heading">Version History</h1>
    46     46       <p><b>1.0.90.0 - January XX, 2014 <font color="red">(release scheduled)</font></b></p>
    47     47       <ul>
    48     48         <li>Updated to <a href="http://www.sqlite.org/src/info/trunk">SQLite 3.8.2</a>.</li>
           49  +      <li>Add Visual Studio 2013 support to all the applicable solution/project files, their associated supporting files, and the test suite.</li>
           50  +      <li>Add Visual Studio 2013 support to the redesigned designer support installer.</li>
    49     51         <li>Add support for Windows Embedded Compact 2013.</li>
    50     52         <li>Add experimental support for the native regexp extension.</li>
    51     53         <li>Never create a new connection wrapper in the SQLiteConnection.Shutdown method.&nbsp;<b>** Potentially Incompatible Change **</b></li>
    52     54         <li>Add experimental GetMemoryStatistics, ReleaseMemory, and Shutdown methods to the SQLiteConnection class.</li>
    53     55         <li>Add memory leak detection to the test project for the .NET Compact Framework.</li>
    54     56         <li>Add SQLITE_ENABLE_MEMORY_MANAGEMENT compile-time option to the interop assembly.</li>
    55     57         <li>Better handling of non-error log messages from the SQLite core library. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/44df10ea90">[44df10ea90]</a>.</li>

Changes to Externals/Eagle/lib/Eagle1.0/init.eagle.

    47     47   
    48     48       #
    49     49       # NOTE: Is the Eagle Package for Tcl (Garuda) available?  This check
    50     50       #       is different in Eagle and Tcl.
    51     51       #
    52     52       if {[isEagle]} then {
    53     53         return [expr {[llength [info commands tcl]] > 0 && [tcl ready] && \
    54         -          [catch {tcl eval [tcl master] package present Garuda}] == 0 && \
    55         -          [catch {tcl eval [tcl master] garuda packageid} packageId] == 0}]
           54  +          [catch {tcl eval [tcl master] {package present Garuda}}] == 0 && \
           55  +          [catch {tcl eval [tcl master] {garuda packageid}} packageId] == 0}]
    56     56       } else {
    57     57         return [expr {[catch {package present Garuda}] == 0 && \
    58     58             [catch {garuda packageid} packageId] == 0}]
    59     59       }
    60     60     }
    61     61   
    62     62     proc isTclThread { name } {
................................................................................
   296    296       return ""
   297    297     }
   298    298   
   299    299     proc readFile { fileName } {
   300    300       #
   301    301       # NOTE: This should work properly in both Tcl and Eagle.
   302    302       #
   303         -    set file_id [open $fileName RDONLY]
   304         -    fconfigure $file_id -encoding binary -translation binary; # BINARY DATA
   305         -    set result [read $file_id]
   306         -    close $file_id
          303  +    set channel [open $fileName RDONLY]
          304  +    fconfigure $channel -encoding binary -translation binary; # BINARY DATA
          305  +    set result [read $channel]
          306  +    close $channel
   307    307       return $result
   308    308     }
   309    309   
   310    310     proc readSharedFile { fileName } {
   311    311       #
   312    312       # NOTE: This should work properly in both Tcl and Eagle.
   313    313       #
................................................................................
   322    322         lappend command 0 file -share readWrite
   323    323       }
   324    324   
   325    325       #
   326    326       # NOTE: Open the file using the command constructed above, configure
   327    327       #       the channel for binary data, and output the data to it.
   328    328       #
   329         -    set file_id [eval $command]
   330         -    fconfigure $file_id -encoding binary -translation binary; # BINARY DATA
   331         -    set result [read $file_id]
   332         -    close $file_id
          329  +    set channel [eval $command]
          330  +    fconfigure $channel -encoding binary -translation binary; # BINARY DATA
          331  +    set result [read $channel]
          332  +    close $channel
   333    333       return $result
   334    334     }
   335    335   
   336    336     proc writeFile { fileName data } {
   337    337       #
   338    338       # NOTE: This should work properly in both Tcl and Eagle.
   339    339       #
   340         -    set file_id [open $fileName {WRONLY CREAT TRUNC}]
   341         -    fconfigure $file_id -encoding binary -translation binary; # BINARY DATA
   342         -    puts -nonewline $file_id $data
   343         -    close $file_id
          340  +    set channel [open $fileName {WRONLY CREAT TRUNC}]
          341  +    fconfigure $channel -encoding binary -translation binary; # BINARY DATA
          342  +    puts -nonewline $channel $data
          343  +    close $channel
   344    344       return ""
   345    345     }
   346    346   
   347    347     proc appendFile { fileName data } {
   348    348       #
   349    349       # NOTE: This should work properly in both Tcl and Eagle.
   350    350       #
   351         -    set file_id [open $fileName {WRONLY CREAT APPEND}]
   352         -    fconfigure $file_id -encoding binary -translation binary; # BINARY DATA
   353         -    puts -nonewline $file_id $data
   354         -    close $file_id
          351  +    set channel [open $fileName {WRONLY CREAT APPEND}]
          352  +    fconfigure $channel -encoding binary -translation binary; # BINARY DATA
          353  +    puts -nonewline $channel $data
          354  +    close $channel
   355    355       return ""
   356    356     }
   357    357   
   358    358     proc appendLogFile { fileName data } {
   359    359       #
   360    360       # NOTE: This should work properly in both Tcl and Eagle.
   361    361       #
   362         -    set file_id [open $fileName {WRONLY CREAT APPEND}]
   363         -    fconfigure $file_id -encoding binary -translation \
          362  +    set channel [open $fileName {WRONLY CREAT APPEND}]
          363  +    fconfigure $channel -encoding binary -translation \
   364    364           [expr {[isEagle] ? "protocol" : "auto"}]; # LOG DATA
   365         -    puts -nonewline $file_id $data
   366         -    close $file_id
          365  +    puts -nonewline $channel $data
          366  +    close $channel
   367    367       return ""
   368    368     }
   369    369   
   370    370     proc appendSharedFile { fileName data } {
   371    371       #
   372    372       # NOTE: This should work properly in both Tcl and Eagle.
   373    373       #
................................................................................
   382    382         lappend command 0 file -share readWrite
   383    383       }
   384    384   
   385    385       #
   386    386       # NOTE: Open the file using the command constructed above, configure
   387    387       #       the channel for binary data, and output the data to it.
   388    388       #
   389         -    set file_id [eval $command]
   390         -    fconfigure $file_id -encoding binary -translation binary; # BINARY DATA
   391         -    puts -nonewline $file_id $data; flush $file_id
   392         -    close $file_id
          389  +    set channel [eval $command]
          390  +    fconfigure $channel -encoding binary -translation binary; # BINARY DATA
          391  +    puts -nonewline $channel $data; flush $channel
          392  +    close $channel
   393    393       return ""
   394    394     }
   395    395   
   396    396     proc appendSharedLogFile { fileName data } {
   397    397       #
   398    398       # NOTE: This should work properly in both Tcl and Eagle.
   399    399       #
................................................................................
   408    408         lappend command 0 file -share readWrite
   409    409       }
   410    410   
   411    411       #
   412    412       # NOTE: Open the file using the command constructed above, configure
   413    413       #       the channel for binary data, and output the data to it.
   414    414       #
   415         -    set file_id [eval $command]
   416         -    fconfigure $file_id -encoding binary -translation \
          415  +    set channel [eval $command]
          416  +    fconfigure $channel -encoding binary -translation \
   417    417           [expr {[isEagle] ? "protocol" : "auto"}]; # LOG DATA
   418         -    puts -nonewline $file_id $data; flush $file_id
   419         -    close $file_id
          418  +    puts -nonewline $channel $data; flush $channel
          419  +    close $channel
   420    420       return ""
   421    421     }
   422    422   
   423    423     proc readAsciiFile { fileName } {
   424    424       #
   425    425       # NOTE: This should work properly in both Tcl and Eagle.
   426    426       #
   427         -    set file_id [open $fileName RDONLY]
   428         -    fconfigure $file_id -encoding ascii -translation auto; # ASCII TEXT
   429         -    set result [read $file_id]
   430         -    close $file_id
          427  +    set channel [open $fileName RDONLY]
          428  +    fconfigure $channel -encoding ascii -translation auto; # ASCII TEXT
          429  +    set result [read $channel]
          430  +    close $channel
   431    431       return $result
   432    432     }
   433    433   
   434    434     proc writeAsciiFile { fileName data } {
   435    435       #
   436    436       # NOTE: This should work properly in both Tcl and Eagle.
   437    437       #
   438         -    set file_id [open $fileName {WRONLY CREAT TRUNC}]
   439         -    fconfigure $file_id -encoding ascii -translation auto; # ASCII TEXT
   440         -    puts -nonewline $file_id $data
   441         -    close $file_id
          438  +    set channel [open $fileName {WRONLY CREAT TRUNC}]
          439  +    fconfigure $channel -encoding ascii -translation auto; # ASCII TEXT
          440  +    puts -nonewline $channel $data
          441  +    close $channel
   442    442       return ""
   443    443     }
   444    444   
   445    445     proc readUnicodeFile { fileName } {
   446    446       #
   447    447       # NOTE: This should work properly in both Tcl and Eagle.
   448    448       #
   449         -    set file_id [open $fileName RDONLY]
   450         -    fconfigure $file_id -encoding unicode -translation auto; # UNICODE TEXT
   451         -    set result [read $file_id]
   452         -    close $file_id
          449  +    set channel [open $fileName RDONLY]
          450  +    fconfigure $channel -encoding unicode -translation auto; # UNICODE TEXT
          451  +    set result [read $channel]
          452  +    close $channel
   453    453       return $result
   454    454     }
   455    455   
   456    456     proc writeUnicodeFile { fileName data } {
   457    457       #
   458    458       # NOTE: This should work properly in both Tcl and Eagle.
   459    459       #
   460         -    set file_id [open $fileName {WRONLY CREAT TRUNC}]
   461         -    fconfigure $file_id -encoding unicode -translation auto; # UNICODE TEXT
   462         -    puts -nonewline $file_id $data
   463         -    close $file_id
          460  +    set channel [open $fileName {WRONLY CREAT TRUNC}]
          461  +    fconfigure $channel -encoding unicode -translation auto; # UNICODE TEXT
          462  +    puts -nonewline $channel $data
          463  +    close $channel
   464    464       return ""
   465    465     }
   466    466   
   467    467     proc getDirResultPath { pattern path } {
   468    468       #
   469    469       # NOTE: This should work properly in both Tcl and Eagle.
   470    470       #       Is the result path itself already absolute?
................................................................................
  1158   1158           return "cannot fetch update, the URI is invalid"
  1159   1159         }
  1160   1160       }
  1161   1161   
  1162   1162       proc runUpdateAndExit {} {
  1163   1163         set directory [file dirname [info nameofexecutable]]
  1164   1164   
  1165         -      set command [list exec -- \
         1165  +      set command [list exec -shell -- \
  1166   1166             [file join $directory Hippogriff.exe] -delay 2000]
  1167   1167   
  1168   1168         eval $command &; exit -force
  1169   1169       }
  1170   1170   
  1171   1171       proc getUpdateData { uri } {
  1172   1172         #
................................................................................
  1212   1212   
  1213   1213       #
  1214   1214       # NOTE: This proc is used to check for new versions -OR- new update
  1215   1215       #       scripts for the runtime when a user executes the interactive
  1216   1216       #       "#check" command.  To disable this functionality, simply
  1217   1217       #       redefine this procedure to do nothing.
  1218   1218       #
  1219         -    proc checkForUpdate { {wantScripts false} } {
         1219  +    proc checkForUpdate { {wantScripts false} {quiet false} } {
  1220   1220         #
  1221   1221         # NOTE: This should work properly in Eagle only.
  1222   1222         #
  1223   1223         set updateUri [appendArgs [info engine Uri] [info engine UpdateFile]]
  1224   1224   
  1225   1225         #
  1226   1226         # NOTE: Fetch the master update data from the distribution site
................................................................................
  1232   1232         # NOTE: Split the data into lines.
  1233   1233         #
  1234   1234         set lines [split $updateData \n]
  1235   1235   
  1236   1236         #
  1237   1237         # NOTE: Keep track of how many update scripts are processed.
  1238   1238         #
  1239         -      set scriptCount 0
         1239  +      array set scriptCount {
         1240  +        invalid            0 fail               0 bad                0
         1241  +        ok                 0 error              0
         1242  +      }
  1240   1243   
  1241   1244         #
  1242   1245         # NOTE: Check each line to find the build information...
  1243   1246         #
  1244   1247         foreach line $lines {
  1245   1248           #
  1246   1249           # NOTE: Remove excess whitespace.
................................................................................
  1315   1318                 #
  1316   1319                 set patchLevel [lindex $fields 4]
  1317   1320   
  1318   1321                 if {[string length $patchLevel] == 0} then {
  1319   1322                   set patchLevel 0.0.0.0; # no patch level?
  1320   1323                 }
  1321   1324   
         1325  +              #
         1326  +              # NOTE: Grab the time-stamp field.
         1327  +              #
         1328  +              set timeStamp [lindex $fields 5]
         1329  +
         1330  +              if {[string length $timeStamp] == 0} then {
         1331  +                set timeStamp 0; #never?
         1332  +              }
         1333  +
         1334  +              #
         1335  +              # NOTE: Does it look like the number of seconds since the epoch
         1336  +              #       or some kind of date/time string?
         1337  +              #
         1338  +              if {[string is integer -strict $timeStamp]} then {
         1339  +                set dateTime [clock format $timeStamp]
         1340  +              } else {
         1341  +                set dateTime [clock format [clock scan $timeStamp]]
         1342  +              }
         1343  +
  1322   1344                 #
  1323   1345                 # NOTE: Grab the patch level for the running engine.
  1324   1346                 #
  1325   1347                 set enginePatchLevel [info engine PatchLevel]
  1326   1348   
  1327   1349                 #
  1328         -              # NOTE: Compare the patch level from the line to the one we
  1329         -              #       are currently using.
         1350  +              # NOTE: Grab the time-stamp for the running engine.
         1351  +              #
         1352  +              set engineTimeStamp [info engine TimeStamp]
         1353  +
         1354  +              if {[string length $engineTimeStamp] == 0} then {
         1355  +                set engineTimeStamp 0; #never?
         1356  +              }
         1357  +
         1358  +              #
         1359  +              # NOTE: Does it look like the number of seconds since the epoch
         1360  +              #       or some kind of date/time string?
         1361  +              #
         1362  +              if {[string is integer -strict $engineTimeStamp]} then {
         1363  +                set engineDateTime [clock format $engineTimeStamp]
         1364  +              } else {
         1365  +                set engineDateTime [clock format [clock scan $engineTimeStamp]]
         1366  +              }
         1367  +
         1368  +              #
         1369  +              # NOTE: For build lines, compare the patch level from the line
         1370  +              #       to the one we are currently using using a simple patch
         1371  +              #       level comparison.
         1372  +              #
         1373  +              if {$checkBuild} then {
         1374  +                set compare [package vcompare $patchLevel $enginePatchLevel]
         1375  +              } else {
         1376  +                #
         1377  +                # NOTE: This is not a build line, no match.
         1378  +                #
         1379  +                set compare -1
         1380  +              }
         1381  +
         1382  +              #
         1383  +              # NOTE: For script lines, use regular expression matching.
  1330   1384                 #
  1331         -              set compare [package vcompare $patchLevel $enginePatchLevel]
  1332         -
  1333         -              if {($checkBuild && $compare > 0) || \
  1334         -                  ($checkScript && $compare == 0)} then {
         1385  +              if {$checkScript} then {
  1335   1386                   #
  1336         -                # NOTE: Grab the time-stamp field.
         1387  +                # NOTE: Use [catch] here to prevent raising a script error
         1388  +                #       due to a malformed patch level regular expression.
  1337   1389                   #
  1338         -                set timeStamp [lindex $fields 5]
  1339         -
  1340         -                if {[string length $timeStamp] == 0} then {
  1341         -                  set timeStamp 0; #never?
         1390  +                if {[catch {
         1391  +                  regexp -nocase -- $patchLevel $enginePatchLevel
         1392  +                } match]} then {
         1393  +                  #
         1394  +                  # NOTE: The patch level from the script line was most
         1395  +                  #       likely not a valid regular expression.
         1396  +                  #
         1397  +                  set match false
  1342   1398                   }
         1399  +              } else {
         1400  +                #
         1401  +                # NOTE: This is not a script line, no match.
         1402  +                #
         1403  +                set match false
         1404  +              }
  1343   1405   
         1406  +              #
         1407  +              # NOTE: Are we interested in further processing this line?
         1408  +              #
         1409  +              if {($checkBuild && $compare > 0) ||
         1410  +                  ($checkScript && $match)} then {
  1344   1411                   #
  1345   1412                   # NOTE: Grab the base URI field (i.e. it may be a mirror
  1346   1413                   #       site).
  1347   1414                   #
  1348   1415                   set baseUri [lindex $fields 6]
  1349   1416   
  1350   1417                   if {$checkBuild && [string length $baseUri] == 0} then {
................................................................................
  1356   1423                   #
  1357   1424                   set notes [lindex $fields 10]
  1358   1425   
  1359   1426                   if {[string length $notes] > 0} then {
  1360   1427                     set notes [unescapeUpdateNotes $notes]
  1361   1428                   }
  1362   1429   
  1363         -                #
  1364         -                # NOTE: Does it look like the number of seconds since the
  1365         -                #       epoch or some kind of date/time string?
  1366         -                #
  1367         -                if {[string is integer -strict $timeStamp]} then {
  1368         -                  set dateTime [clock format $timeStamp]
  1369         -                } else {
  1370         -                  set dateTime [clock format [clock scan $timeStamp]]
  1371         -                }
  1372         -
  1373   1430                   #
  1374   1431                   # NOTE: The engine patch level from the line is greater,
  1375   1432                   #       we are out-of-date.  Return the result of our
  1376   1433                   #       checking now.
  1377   1434                   #
  1378   1435                   if {$checkBuild} then {
  1379         -                  return [list [appendArgs "newer build " $patchLevel \
  1380         -                      " is available as of " $dateTime] [list $baseUri \
         1436  +                  return [list [appendArgs \
         1437  +                      "latest build " $patchLevel ", dated " $dateTime \
         1438  +                      ", is newer than running build " $enginePatchLevel \
         1439  +                      ", dated " $engineDateTime] [list $baseUri \
  1381   1440                         $patchLevel] [list $notes]]
  1382   1441                   }
  1383   1442   
  1384   1443                   #
  1385   1444                   # NOTE: The script patch level from the line matches the
  1386   1445                   #       current engine patch level exactly, this script
  1387   1446                   #       should be evaluated if it can be authenticated.
................................................................................
  1400   1459   
  1401   1460                     #
  1402   1461                     # NOTE: Next, verify the script has a valid base URI.
  1403   1462                     #       For update scripts, this must be the location
  1404   1463                     #       where the update script data can be downloaded.
  1405   1464                     #
  1406   1465                     if {[string length $baseUri] == 0} then {
  1407         -                    tqputs $channel [appendArgs \
  1408         -                        "---- invalid baseUri value for update script line: " \
  1409         -                        $line \"\n]
  1410         -
  1411         -                    continue
         1466  +                    if {!$quiet} then {
         1467  +                      tqputs $channel [appendArgs \
         1468  +                          "---- invalid baseUri value for update script " \
         1469  +                          "line: " $line \"\n]
         1470  +                    }
         1471  +                    incr scriptCount(invalid); continue
  1412   1472                     }
  1413   1473   
  1414   1474                     #
  1415   1475                     # NOTE: Next, grab the md5 field and see if it looks valid.
  1416   1476                     #       Below, the value of this field will be compared to
  1417   1477                     #       that of the actual MD5 hash of the downloaded script
  1418   1478                     #       data.
  1419   1479                     #
  1420   1480                     set lineMd5 [lindex $fields 7]
  1421   1481   
  1422   1482                     if {[string length $lineMd5] == 0} then {
  1423         -                    tqputs $channel [appendArgs \
  1424         -                        "---- invalid md5 value for update script line: " \
  1425         -                        $line \"\n]
  1426         -
  1427         -                    continue
         1483  +                    if {!$quiet} then {
         1484  +                      tqputs $channel [appendArgs \
         1485  +                          "---- invalid md5 value for update script " \
         1486  +                          "line: " $line \"\n]
         1487  +                    }
         1488  +                    incr scriptCount(invalid); continue
  1428   1489                     }
  1429   1490   
  1430   1491                     #
  1431   1492                     # NOTE: Next, grab the sha1 field and see if it looks valid.
  1432   1493                     #       Below, the value of this field will be compared to
  1433   1494                     #       that of the actual SHA1 hash of the downloaded script
  1434   1495                     #       data.
  1435   1496                     #
  1436   1497                     set lineSha1 [lindex $fields 8]
  1437   1498   
  1438   1499                     if {[string length $lineSha1] == 0} then {
  1439         -                    tqputs $channel [appendArgs \
  1440         -                        "---- invalid sha1 value for update script line: " \
  1441         -                        $line \"\n]
  1442         -
  1443         -                    continue
         1500  +                    if {!$quiet} then {
         1501  +                      tqputs $channel [appendArgs \
         1502  +                          "---- invalid sha1 value for update script " \
         1503  +                          "line: " $line \"\n]
         1504  +                    }
         1505  +                    incr scriptCount(invalid); continue
  1444   1506                     }
  1445   1507   
  1446   1508                     #
  1447   1509                     # NOTE: Next, grab the sha512 field and see if it looks
  1448   1510                     #       valid.  Below, the value of this field will be
  1449   1511                     #       compared to that of the actual SHA512 hash of the
  1450   1512                     #       downloaded script data.
  1451   1513                     #
  1452   1514                     set lineSha512 [lindex $fields 9]
  1453   1515   
  1454   1516                     if {[string length $lineSha512] == 0} then {
  1455         -                    tqputs $channel [appendArgs \
  1456         -                        "---- invalid sha512 value for update script line: " \
  1457         -                        $line \"\n]
  1458         -
  1459         -                    continue
         1517  +                    if {!$quiet} then {
         1518  +                      tqputs $channel [appendArgs \
         1519  +                          "---- invalid sha512 value for update script " \
         1520  +                          "line: " $line \"\n]
         1521  +                    }
         1522  +                    incr scriptCount(invalid); continue
  1460   1523                     }
  1461   1524   
  1462   1525                     #
  1463   1526                     # NOTE: Next, show the extra information associated with
  1464   1527                     #       this update script, if any.
  1465   1528                     #
  1466         -                  tqputs $channel [appendArgs \
  1467         -                      "---- fetching update script from \"" $baseUri "\" (" \
  1468         -                      $dateTime ") with notes:\n"]
         1529  +                  if {!$quiet} then {
         1530  +                    tqputs $channel [appendArgs \
         1531  +                        "---- fetching update script from \"" $baseUri \
         1532  +                        "\" (" $dateTime ") with notes:\n"]
  1469   1533   
  1470         -                  set trimNotes [string trim $notes]
         1534  +                    set trimNotes [string trim $notes]
  1471   1535   
  1472         -                  tqputs $channel [appendArgs \
  1473         -                      [expr {[string length $trimNotes] > 0 ? $trimNotes : \
  1474         -                      "<none>"}] "\n---- end of update script notes\n"]
         1536  +                    tqputs $channel [appendArgs \
         1537  +                        [expr {[string length $trimNotes] > 0 ? $trimNotes : \
         1538  +                        "<none>"}] "\n---- end of update script notes\n"]
         1539  +                  }
  1475   1540   
  1476   1541                     #
  1477   1542                     # NOTE: Next, attempt to fetch the update script data.
  1478   1543                     #
  1479   1544                     set code [catch {getUpdateScriptData $baseUri} result]
  1480   1545   
  1481   1546                     if {$code == 0} then {
................................................................................
  1483   1548                       # NOTE: Success, set the script data from the result.
  1484   1549                       #
  1485   1550                       set scriptData $result
  1486   1551                     } else {
  1487   1552                       #
  1488   1553                       # NOTE: Failure, report the error message to the log.
  1489   1554                       #
  1490         -                    tqputs $channel [appendArgs \
  1491         -                        "---- failed to fetch update script: " $result \n]
  1492         -
  1493         -                    continue
         1555  +                    if {!$quiet} then {
         1556  +                      tqputs $channel [appendArgs \
         1557  +                          "---- failed to fetch update script: " $result \n]
         1558  +                    }
         1559  +                    incr scriptCount(fail); continue
  1494   1560                     }
  1495   1561   
  1496   1562                     #
  1497   1563                     # NOTE: Next, verify that the md5, sha1, and sha512
  1498   1564                     #       hashes of the raw script data match what was
  1499   1565                     #       specified in the md5, sha1, and sha512 fields.
  1500   1566                     #
  1501   1567                     set scriptMd5 [hash normal md5 $scriptData]
  1502   1568   
  1503   1569                     if {![string equal -nocase $lineMd5 $scriptMd5]} then {
  1504         -                    tqputs $channel [appendArgs \
  1505         -                        "---- wrong md5 value \"" $scriptMd5 \
  1506         -                        "\" for update script line: " $line \"\n]
  1507         -
  1508         -                    continue
         1570  +                    if {!$quiet} then {
         1571  +                      tqputs $channel [appendArgs \
         1572  +                          "---- wrong md5 value \"" $scriptMd5 \
         1573  +                          "\" for update script line: " $line \"\n]
         1574  +                    }
         1575  +                    incr scriptCount(bad); continue
  1509   1576                     }
  1510   1577   
  1511   1578                     set scriptSha1 [hash normal sha1 $scriptData]
  1512   1579   
  1513   1580                     if {![string equal -nocase $lineSha1 $scriptSha1]} then {
  1514         -                    tqputs $channel [appendArgs \
  1515         -                        "---- wrong sha1 value \"" $scriptSha1 \
  1516         -                        "\" for update script line: " $line \"\n]
  1517         -
  1518         -                    continue
         1581  +                    if {!$quiet} then {
         1582  +                      tqputs $channel [appendArgs \
         1583  +                          "---- wrong sha1 value \"" $scriptSha1 \
         1584  +                          "\" for update script line: " $line \"\n]
         1585  +                    }
         1586  +                    incr scriptCount(bad); continue
  1519   1587                     }
  1520   1588   
  1521   1589                     set scriptSha512 [hash normal sha512 $scriptData]
  1522   1590   
  1523   1591                     if {![string equal -nocase $lineSha512 $scriptSha512]} then {
  1524         -                    tqputs $channel [appendArgs \
  1525         -                        "---- wrong sha512 value \"" $scriptSha512 \
  1526         -                        "\" for update script line: " $line \"\n]
  1527         -
  1528         -                    continue
         1592  +                    if {!$quiet} then {
         1593  +                      tqputs $channel [appendArgs \
         1594  +                          "---- wrong sha512 value \"" $scriptSha512 \
         1595  +                          "\" for update script line: " $line \"\n]
         1596  +                    }
         1597  +                    incr scriptCount(bad); continue
  1529   1598                     }
  1530   1599   
  1531   1600                     #
  1532   1601                     # NOTE: Finally, everything looks good.  Therefore, just
  1533   1602                     #       evaluate the update script and print the result.
  1534   1603                     #
  1535         -                  tqputs $channel [appendArgs \
  1536         -                      "---- evaluating update script from \"" $baseUri \
  1537         -                      \"...\n]
         1604  +                  if {!$quiet} then {
         1605  +                    tqputs $channel [appendArgs \
         1606  +                        "---- evaluating update script from \"" $baseUri \
         1607  +                        \"...\n]
         1608  +                  }
  1538   1609   
  1539   1610                     #
  1540   1611                     # NOTE: Reset the variables that will be used to contain
  1541   1612                     #       the result of the update script.
  1542   1613                     #
  1543   1614                     set code 0; set result ""
  1544   1615   
................................................................................
  1561   1632                       # NOTE: Reset manual override of the script file name
  1562   1633                       #       to be returned by [info script].
  1563   1634                       #
  1564   1635                       object invoke -flags +NonPublic Interpreter.GetActive \
  1565   1636                           PopScriptLocation true
  1566   1637                     }
  1567   1638   
  1568         -                  host result $code $result; incr scriptCount
  1569         -                  tqputs $channel "\n---- end of update script results\n"
         1639  +                  #
         1640  +                  # NOTE: Keep track of the number of update scripts that
         1641  +                  #       generate Ok and Error return codes.
         1642  +                  #
         1643  +                  if {$code == 0} then {
         1644  +                    incr scriptCount(ok)
         1645  +                  } else {
         1646  +                    incr scriptCount(error)
         1647  +                  }
         1648  +
         1649  +                  if {!$quiet} then {
         1650  +                    host result $code $result
         1651  +                    tqputs $channel "\n---- end of update script results\n"
         1652  +                  }
  1570   1653                   }
  1571   1654                 } elseif {$checkBuild && $compare < 0} then {
  1572   1655                   #
  1573   1656                   # NOTE: The patch level from the line is less, we are more
  1574   1657                   #       up-to-date than the latest version?
  1575   1658                   #
  1576         -                return [list [appendArgs "running build " $enginePatchLevel \
  1577         -                    " is newer than the latest build " $patchLevel]]
         1659  +                return [list [appendArgs \
         1660  +                    "running build " $enginePatchLevel ", dated " \
         1661  +                    $engineDateTime ", is newer than latest build " \
         1662  +                    $patchLevel ", dated " $dateTime]]
  1578   1663                 } elseif {$checkBuild} then {
  1579   1664                   #
  1580   1665                   # NOTE: The patch levels are equal, we are up-to-date.
  1581   1666                   #
  1582         -                return [list "running build is the latest"]
         1667  +                return [list [appendArgs \
         1668  +                    "running build " $enginePatchLevel ", dated " \
         1669  +                    $engineDateTime ", is the latest build"]]
  1583   1670                 }
  1584   1671               }
  1585   1672             }
  1586   1673           }
  1587   1674         }
  1588   1675   
  1589   1676         #
  1590   1677         # NOTE: Figure out what the final result should be.  If we get
  1591   1678         #       to this point when checking for a new build, something
  1592   1679         #       must have gone awry.  Otherwise, report the number of
  1593   1680         #       update scripts that were successfully processed.
  1594   1681         #
  1595   1682         if {$wantScripts} then {
  1596         -        if {$scriptCount > 0} then {
         1683  +        set scriptCount(total) [expr [join [array values scriptCount] +]]
         1684  +
         1685  +        if {$scriptCount(total) > 0} then {
  1597   1686             return [list [appendArgs \
  1598         -              "processed " $scriptCount " update scripts"]]
         1687  +              "processed " $scriptCount(total) " update scripts: " \
         1688  +              [array get scriptCount]]]
  1599   1689           } else {
  1600   1690             return [list "no update scripts were processed"]
  1601   1691           }
  1602   1692         } else {
  1603         -        return [list "cannot determine if running build is the latest"]
         1693  +        return [list "could not determine if running build is the latest"]
  1604   1694         }
  1605   1695       }
  1606   1696   
  1607   1697       proc getReturnType { object member } {
  1608   1698         if {[string length $object] == 0 || [string length $member] == 0} then {
  1609   1699           return ""
  1610   1700         }

Changes to Externals/Eagle/lib/Eagle1.0/shell.eagle.

    25     25       ############################ BEGIN Eagle ONLY #############################
    26     26       ###########################################################################
    27     27   
    28     28       #
    29     29       # NOTE: Commands specific to initializing the Eagle interactive shell
    30     30       #       environment should be placed here.
    31     31       #
    32         -
           32  +    proc help { args } {
           33  +      eval lappend command #help $args; debug icommand $command
           34  +      error "for interactive help please use: #help $args"
           35  +    }
           36  +
    33     37       ###########################################################################
    34     38       ############################# END Eagle ONLY ##############################
    35     39       ###########################################################################
    36     40     } else {
    37     41       ###########################################################################
    38     42       ############################# BEGIN Tcl ONLY ##############################
    39     43       ###########################################################################

Changes to Externals/Eagle/lib/Eagle1.0/test.eagle.

   472    472   
   473    473       #
   474    474       # NOTE: Now, attempt to flush the test log queue, if available.
   475    475       #
   476    476       tlog ""
   477    477     }
   478    478   
   479         -  proc getTclShellFileName {} {
          479  +  proc getTclShellFileName { automatic } {
   480    480       #
   481         -    # NOTE: Check the environment variables we know about that
          481  +    # NOTE: Start out with an empty list of candiate Tcl shells.
          482  +    #
          483  +    set shells [list]
          484  +
          485  +    #
          486  +    # NOTE: Check all environment variables we know about that
   482    487       #       may contain the path where the Tcl shell is located.
   483    488       #
   484    489       foreach name [list Eagle_Tcl_Shell Tcl_Shell] {
   485    490         set value [getEnvironmentVariable $name]
   486    491   
   487    492         #
   488    493         # TODO: Possibly add a check if the file actually exists
   489    494         #       here.
   490    495         #
   491    496         if {[string length $value] > 0} then {
   492    497           #
   493         -        # NOTE: *EXTERNAL* Return verbatim, no normalization.
   494         -        #
   495         -        return $value
   496         -      }
   497         -    }
   498         -
   499         -    #
   500         -    # NOTE: None of the environment variables returned anything
   501         -    #       valid, return the fallback default.
          498  +        # NOTE: *EXTERNAL* Use verbatim, no normalization.
          499  +        #
          500  +        if {$automatic} then {
          501  +          #
          502  +          # NOTE: In automatic mode, the environment variable
          503  +          #       value simply represents another candidate
          504  +          #       Tcl shell (i.e. it does not halt the search
          505  +          #       for other candidate Tcl shells).
          506  +          #
          507  +          lappend shells $value
          508  +        } else {
          509  +          #
          510  +          # NOTE: In manual mode, the environment variable
          511  +          #       value represents an "override" and halts
          512  +          #       the search for other candidate Tcl shells.
          513  +          #
          514  +          return $value
          515  +        }
          516  +      }
          517  +    }
          518  +
          519  +    #
          520  +    # NOTE: The automatic Tcl shell detection is only available when
          521  +    #       running in Eagle.
          522  +    #
          523  +    if {[isEagle]} then {
          524  +      #
          525  +      # NOTE: Attempt to check for the "best" available dynamically
          526  +      #       loadable Tcl library and then attempt to use its
          527  +      #       "associated" Tcl shell.  A very similar block of code
          528  +      #       is also used by the [checkForTclInstalls] procedure
          529  +      #       in the constraints package.
          530  +      #
          531  +      if {[catch {tcl select -architecture} tcl] == 0} then {
          532  +        #
          533  +        # NOTE: Did we find one?  Attempt to grab the index of the
          534  +        #       version field from the returned dictionary value.
          535  +        #
          536  +        set dotVersion [getDictionaryValue $tcl version]
          537  +
          538  +        #
          539  +        # NOTE: Verify that the version we found is valid and that
          540  +        #       it conforms to the pattern we expect.
          541  +        #
          542  +        if {[string length $dotVersion] > 0 && \
          543  +            [regexp -- {^\d+\.\d+$} $dotVersion]} then {
          544  +          #
          545  +          # NOTE: Gather the list of candidate Tcl shells to check
          546  +          #       using the range of versions we are interested in,
          547  +          #       starting with the "best" available version and
          548  +          #       ending with the absolute minimum version supported
          549  +          #       by the Eagle core library.  A very similar block
          550  +          #       of code is also used by the [checkForTclShell]
          551  +          #       procedure in the constraints package.
          552  +          #
          553  +          foreach version [lsort -real -decreasing [tcl \
          554  +              versionrange -maximumversion $dotVersion]] {
          555  +            lappend shells [appendArgs \
          556  +                tclsh [string map [list . ""] $version]]
          557  +
          558  +            lappend shells [appendArgs tclsh $version]
          559  +          }
          560  +        }
          561  +      }
          562  +
          563  +      #
          564  +      # NOTE: Check each candidate Tcl shell and query its fully
          565  +      #       qualified path from it.  If it cannot be executed,
          566  +      #       we know that candidate Tcl shell is not available.
          567  +      #
          568  +      foreach shell $shells {
          569  +        if {[catch {
          570  +          getTclExecutableForTclShell $shell
          571  +        } executable] == 0 && $executable ne "error"} then {
          572  +          #
          573  +          # NOTE: It looks like this Tcl shell is available.
          574  +          #       Return the fully qualified path to it now.
          575  +          #
          576  +          return $executable
          577  +        }
          578  +      }
          579  +    }
          580  +
          581  +    #
          582  +    # NOTE: Return the fallback default.
   502    583       #
   503    584       return tclsh
   504    585     }
   505    586   
   506    587     proc getTemporaryPath {} {
   507    588       #
   508    589       # NOTE: Build the list of "temporary directory" override
................................................................................
  1339   1420         }
  1340   1421       }
  1341   1422   
  1342   1423       return $result
  1343   1424     }
  1344   1425   
  1345   1426     proc formatDecimal { value {places 4} {zeros false} } {
         1427  +    #
         1428  +    # NOTE: If the value is an empty string, do nothing and return an empty
         1429  +    #       string.
         1430  +    #
         1431  +    if {[string length $value] == 0} then {
         1432  +      return ""
         1433  +    }
         1434  +
         1435  +    #
         1436  +    # NOTE: For now, use slightly different methods for formatting floating
         1437  +    #       pointer numbers for native Tcl and Eagle.
         1438  +    #
  1346   1439       if {[isEagle] && [llength [info commands object]] > 0} then {
  1347   1440         #
  1348   1441         # HACK: This works; however, in order to do this kind of thing cleanly,
  1349   1442         #       we really need the Tcl [format] command.
  1350   1443         #
  1351   1444         set result [object invoke String Format [appendArgs "{0:0." \
  1352   1445             [string repeat [expr {$zeros ? "0" : "#"}] $places] "}"] \
................................................................................
  1354   1447   
  1355   1448         unset object; # dispose
  1356   1449       } else {
  1357   1450         #
  1358   1451         # NOTE: See, nice and clean when done in Tcl?
  1359   1452         #
  1360   1453         set result [format [appendArgs %. $places f] $value]
         1454  +
         1455  +      #
         1456  +      # HACK: Since native Tcl does not appear to expose a method to only
         1457  +      #       preserve non-zero trailing digits, we may need to manually
         1458  +      #       remove extra trailing zeros.
         1459  +      #
         1460  +      if {!$zeros} then {
         1461  +        #
         1462  +        # NOTE: Remove all trailing zeros and the trailing decimal point,
         1463  +        #       if necessary.
         1464  +        #
         1465  +        set result [string trimright [string trimright $result 0] .]
         1466  +      }
  1361   1467       }
  1362   1468   
  1363   1469       return $result
  1364   1470     }
  1365   1471   
  1366   1472     proc clearTestPercent { channel } {
  1367   1473       if {[isEagle]} then {
................................................................................
  1918   2024           #       test suite.  Make sure these commands do not already exist
  1919   2025           #       prior to attempt to adding them.
  1920   2026           #
  1921   2027           if {[llength [info commands testConstraint]] == 0} then {
  1922   2028             interp alias {} testConstraint {} haveOrAddConstraint
  1923   2029   
  1924   2030             if {!$quiet} then {
  1925         -            tqputs [getTestChannelOrDefault] [appendArgs \
  1926         -                "---- added \"testConstraint\" alias\n"]
         2031  +            tqputs [getTestChannelOrDefault] \
         2032  +                "---- added \"testConstraint\" alias\n"
  1927   2033             }
  1928   2034           }
  1929   2035   
  1930   2036           if {[llength [info commands ::tcltest::testConstraint]] == 0} then {
  1931   2037             interp alias {} ::tcltest::testConstraint {} haveOrAddConstraint
  1932   2038   
  1933   2039             if {!$quiet} then {
  1934         -            tqputs [getTestChannelOrDefault] [appendArgs \
  1935         -                "---- added \"::tcltest::testConstraint\" alias\n"]
         2040  +            tqputs [getTestChannelOrDefault] \
         2041  +                "---- added \"::tcltest::testConstraint\" alias\n"
  1936   2042             }
  1937   2043           }
  1938   2044   
  1939   2045           #
  1940   2046           # NOTE: This is needed by most tests in the Tcl test suite.  Make
  1941   2047           #       sure this command does not already exist prior to adding it.
  1942   2048           #
  1943   2049           if {[llength [info commands ::tcltest::cleanupTests]] == 0} then {
  1944   2050             proc ::tcltest::cleanupTests { args } {}
  1945   2051   
  1946   2052             if {!$quiet} then {
  1947         -            tqputs [getTestChannelOrDefault] [appendArgs \
  1948         -                "---- added \"::tcltest::cleanupTests\" procedure\n"]
         2053  +            tqputs [getTestChannelOrDefault] \
         2054  +                "---- added \"::tcltest::cleanupTests\" procedure\n"
  1949   2055             }
  1950   2056           }
  1951   2057         } else {
  1952   2058           #
  1953   2059           # NOTE: Remove the compatibility shim command aliases that we setup
  1954   2060           #       earlier.
  1955   2061           #
  1956   2062           if {[lsearch -exact [info commands] \
  1957   2063               ::tcltest::cleanupTests] != -1} then {
  1958   2064             rename ::tcltest::cleanupTests ""
  1959   2065   
  1960   2066             if {!$quiet} then {
  1961         -            tqputs $::test_channel [appendArgs \
  1962         -                "---- removed \"::tcltest::cleanupTests\" procedure\n"]
         2067  +            tqputs $::test_channel \
         2068  +                "---- removed \"::tcltest::cleanupTests\" procedure\n"
  1963   2069             }
  1964   2070           }
  1965   2071   
  1966   2072           if {[lsearch -exact [interp aliases] \
  1967   2073               ::tcltest::testConstraint] != -1} then {
  1968   2074             interp alias {} ::tcltest::testConstraint {} {}
  1969   2075   
  1970   2076             if {!$quiet} then {
  1971         -            tqputs $::test_channel [appendArgs \
  1972         -                "---- removed \"::tcltest::testConstraint\" alias\n"]
         2077  +            tqputs $::test_channel \
         2078  +                "---- removed \"::tcltest::testConstraint\" alias\n"
  1973   2079             }
  1974   2080           }
  1975   2081   
  1976   2082           if {[lsearch -exact [interp aliases] testConstraint] != -1} then {
  1977   2083             interp alias {} testConstraint {} {}
  1978   2084   
  1979   2085             if {!$quiet} then {
  1980         -            tqputs $::test_channel [appendArgs \
  1981         -                "---- removed \"testConstraint\" alias\n"]
         2086  +            tqputs $::test_channel \
         2087  +                "---- removed \"testConstraint\" alias\n"
  1982   2088             }
  1983   2089           }
  1984   2090         }
  1985   2091       }
  1986   2092   
  1987   2093       proc tresult { code result } {
  1988   2094         host result $code $result; tlog $result
................................................................................
  2134   2240             after flags =$flags
  2135   2241           }
  2136   2242         } finally {
  2137   2243           interp bgerror {} $bgerror
  2138   2244         }
  2139   2245       }
  2140   2246   
  2141         -    proc testExecTclScript { script } {
         2247  +    proc testExecTclScript { script {shell ""} } {
  2142   2248         try {
  2143   2249           #
  2144   2250           # NOTE: Get a temporary file name for the script we are going to
  2145   2251           #       use to query the machine type for the native Tcl shell.
  2146   2252           #
  2147   2253           set fileName [file tempname]
  2148   2254   
................................................................................
  2149   2255           #
  2150   2256           # NOTE: Since the native Tcl shell cannot simply evaluate a string
  2151   2257           #       supplied via the command line, write the script to be
  2152   2258           #       evaluated to the temporary file.
  2153   2259           #
  2154   2260           writeFile $fileName $script
  2155   2261   
         2262  +        #
         2263  +        # NOTE: Use the specified shell, if it is valid; otherwise, use
         2264  +        #       the configured Tcl shell.
         2265  +        #
         2266  +        if {[string length $shell] == 0} then {
         2267  +          #
         2268  +          # NOTE: Before attempting to use the configured Tcl shell, make
         2269  +          #       sure it has actually been set.
         2270  +          #
         2271  +          if {[info exists ::test_tclsh] && \
         2272  +              [string length $::test_tclsh] > 0} then {
         2273  +            set shell $::test_tclsh
         2274  +          } else {
         2275  +            #
         2276  +            # NOTE: We cannot execute the native Tcl shell because one
         2277  +            #       has not been specified, nor configured.
         2278  +            #
         2279  +            return error
         2280  +          }
         2281  +        }
         2282  +
  2156   2283           #
  2157   2284           # NOTE: Evaluate the script using the native Tcl shell, trim the
  2158   2285           #       excess whitespace from the output, and return it to the
  2159   2286           #       caller.
  2160   2287           #
  2161   2288           if {[catch {string trim \
  2162         -            [testExec $::test_tclsh [list -success Success] \
         2289  +            [testExec $shell [list -success Success] \
  2163   2290               [appendArgs \" $fileName \"]]} result] == 0} then {
  2164   2291             #
  2165   2292             # NOTE: Success, return the result to the caller.
  2166   2293             #
  2167   2294             return $result
  2168   2295           } else {
  2169   2296             #
................................................................................
  2184   2311             #       type for the native Tcl shell.
  2185   2312             #
  2186   2313             catch {file delete $fileName}
  2187   2314           }
  2188   2315         }
  2189   2316       }
  2190   2317   
  2191         -    proc getTclVersionForTclShell {} {
         2318  +    proc getTclVersionForTclShell { {shell ""} } {
  2192   2319         return [testExecTclScript {
  2193   2320           puts -nonewline stdout [info tclversion]
  2194         -      }]
         2321  +      } $shell]
  2195   2322       }
  2196   2323   
  2197         -    proc getCommandsForTclShell {} {
         2324  +    proc getCommandsForTclShell { {shell ""} } {
  2198   2325         return [testExecTclScript {
  2199   2326           puts -nonewline stdout [info commands]
  2200         -      }]
         2327  +      } $shell]
  2201   2328       }
  2202   2329   
  2203         -    proc getMachineForTclShell {} {
         2330  +    proc getMachineForTclShell { {shell ""} } {
  2204   2331         return [testExecTclScript {
  2205   2332           puts -nonewline stdout $tcl_platform(machine)
  2206         -      }]
         2333  +      } $shell]
         2334  +    }
         2335  +
         2336  +    proc getTclExecutableForTclShell { {shell ""} } {
         2337  +      return [testExecTclScript {
         2338  +        puts -nonewline stdout [info nameofexecutable]
         2339  +      } $shell]
  2207   2340       }
  2208   2341   
  2209         -    proc getTkVersionForTclShell {} {
         2342  +    proc getTkVersionForTclShell { {shell ""} } {
  2210   2343         return [testExecTclScript {
  2211   2344           puts -nonewline stdout [package require Tk]; exit
  2212         -      }]
         2345  +      } $shell]
  2213   2346       }
  2214   2347   
  2215   2348       proc getGarudaDll {} {
  2216   2349         #
  2217   2350         # NOTE: Get the Garuda DLL of the same platform (i.e. machine type)
  2218   2351         #       as the native Tcl shell.
  2219   2352         #

Changes to Externals/Eagle/lib/Eagle1.0/vendor.eagle.

   225    225       # NOTE: If we actually found a vendor-specific testing infrastructure
   226    226       #       directory then modify the TestPath property of the current
   227    227       #       interpreter to point directly to it.
   228    228       #
   229    229       if {[string length $vendor_directory] > 0} then {
   230    230         setupInterpreterTestPath stdout $vendor_directory false
   231    231       }
          232  +
          233  +    #
          234  +    # HACK: Prevent the Eagle core test suite infrastructure from doing
          235  +    #       things that require beta 29 (or later) binaries.  This section
          236  +    #       should be removed when the Eagle beta 29 binaries are checked
          237  +    #       into the System.Data.SQLite repository.
          238  +    #
          239  +    set ::no(getTclShellFileName) 1; # NOTE: Lack of [tcl versionrange].
          240  +    set ::no(testSuiteFiles) 1; # NOTE: Lack of [hash -filename].
   232    241     }
   233    242   }
   234    243   
   235    244   ###############################################################################
   236    245   ############################### END VENDOR CODE ###############################
   237    246   ###############################################################################

Changes to Externals/Eagle/lib/Test1.0/constraints.eagle.

   107    107         #       a package.  Make sure we can hash content before proceeding.
   108    108         #
   109    109         if {[isEagle] || [catch {package require sha1}] == 0} then {
   110    110           tputs $channel yes\n
   111    111   
   112    112           foreach fileName $fileNames {
   113    113             if {[isEagle]} then {
   114         -            set sha1 [hash normal sha1 [readFile $fileName]]
          114  +            #
          115  +            # NOTE: Use the relatively new -filename option to the Eagle
          116  +            #       [hash] command.
          117  +            #
          118  +            set sha1 [hash normal -filename sha1 $fileName]
   115    119             } else {
   116    120               #
   117    121               # BUGBUG: Apparently, the ActiveState tcllib sha1 package may
   118    122               #         have a bug that produces the wrong values here.  No
   119    123               #         attempt is made here to work around any such bug.
          124  +            #         For further information, please see:
          125  +            #
          126  +            #         http://core.tcl.tk/tcllib/info/ad20454023
   120    127               #
   121    128               set sha1 [sha1::sha1 -hex -filename $fileName]
   122    129             }
   123    130   
   124    131             tputs $channel [appendArgs \
   125    132                 "---- file \"" $fileName "\"... sha1 (" $sha1 ")\n"]
   126    133           }
................................................................................
   395    402   
   396    403       tputs $channel no\n
   397    404     }
   398    405   
   399    406     proc checkForFossil { channel } {
   400    407       tputs $channel "---- checking for Fossil... "
   401    408   
   402         -    if {[catch {set version [exec -- fossil version]}] == 0} then {
          409  +    if {[catch {exec -- fossil version} version] == 0} then {
   403    410         set version [string trim $version]
   404    411         set pattern {^This is fossil version (.*) \[([0-9a-f]+)\]\
   405    412             \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} UTC$}
   406    413   
   407    414         if {[regexp -- $pattern $version dummy version sourceId]} then {
   408    415           #
   409    416           # NOTE: Add a constraint to show that the Fossil executable
................................................................................
   412    419           addConstraint fossil_version
   413    420   
   414    421           #
   415    422           # NOTE: Append the version of Fossil currently in use.
   416    423           #
   417    424           append result version " " $version " \[" $sourceId \]
   418    425   
   419         -        if {[catch {set remote [exec -- fossil remote]}] == 0} then {
          426  +        if {[catch {exec -- fossil remote} remote] == 0} then {
   420    427             set remote [string trim $remote]; set valid false
   421    428   
   422    429             if {[isEagle]} then {
   423    430               #
   424    431               # NOTE: With Eagle, we can actually validate the URI.
   425    432               #
   426    433               if {[uri isvalid $remote]} then {
................................................................................
  1172   1179         addConstraint performance
  1173   1180   
  1174   1181         tputs $channel yes\n
  1175   1182       } else {
  1176   1183         tputs $channel no\n
  1177   1184       }
  1178   1185     }
         1186  +
         1187  +  proc checkForBigLists { channel } {
         1188  +    tputs $channel "---- checking for big list testing... "
         1189  +
         1190  +    #
         1191  +    # NOTE: Are we allowed to do big list testing?
         1192  +    #
         1193  +    if {![info exists ::no(bigLists)]} then {
         1194  +      if {[isEagle]} then {
         1195  +        #
         1196  +        # MONO: Using the native utility library when running on Mono to
         1197  +        #       join big lists seems to cause StackOverflowException to
         1198  +        #       be thrown.
         1199  +        #
         1200  +        if {[info exists ::no(mono)] || ![isMono] || \
         1201  +            ![haveConstraint nativeUtility]} then {
         1202  +          #
         1203  +          # NOTE: Yes, it appears that it is available.
         1204  +          #
         1205  +          addConstraint bigLists
         1206  +
         1207  +          tputs $channel yes\n
         1208  +        } else {
         1209  +          tputs $channel "no, broken on Mono with native utility\n"
         1210  +        }
         1211  +      } else {
         1212  +        addConstraint bigLists
         1213  +
         1214  +        tputs $channel yes\n
         1215  +      }
         1216  +    } else {
         1217  +      tputs $channel no\n
         1218  +    }
         1219  +  }
  1179   1220   
  1180   1221     proc checkForStackIntensive { channel } {
  1181   1222       tputs $channel "---- checking for stack intensive testing... "
  1182   1223   
  1183   1224       #
  1184   1225       # NOTE: Are we allowed to do stack intensive testing?
  1185   1226       #
................................................................................
  1279   1320           "---- checking for network connectivity to host \"" $host "\"... "]
  1280   1321   
  1281   1322       if {[isEagle]} then {
  1282   1323         #
  1283   1324         # NOTE: Running this check on the Mono 3.3.0 release build will lock
  1284   1325         #       up the process; therefore, attempt to skip it in that case.
  1285   1326         #
  1286         -      if {![isMono] || ![haveConstraint mono33]} then {
         1327  +      if {[info exists ::no(mono)] || ![isMono] || \
         1328  +          ![haveConstraint mono33]} then {
  1287   1329           #
  1288   1330           # BUGBUG: Tcl 8.4 does not like this expression (and Tcl tries to
  1289   1331           #         compile it even though it will only actually ever be
  1290   1332           #         evaluated in Eagle).
  1291   1333           #
  1292   1334           set expr {[llength [info commands uri]] > 0 && \
  1293   1335               [catch {uri ping $host $timeout} response] == 0 && \
................................................................................
  1374   1416       ############################ BEGIN Eagle ONLY #############################
  1375   1417       ###########################################################################
  1376   1418   
  1377   1419       proc checkForSoftwareUpdateTrust { channel } {
  1378   1420         tputs $channel "---- checking for software update trust... "
  1379   1421   
  1380   1422         if {[llength [info commands uri]] > 0 && \
  1381         -          [catch {uri softwareupdates} result] == 0 && \
  1382         -          $result eq "software update certificate is trusted"} then {
         1423  +          [catch {uri softwareupdates} trust] == 0 && \
         1424  +          $trust eq "software update certificate is trusted"} then {
  1383   1425           #
  1384   1426           # NOTE: Yes, it appears that we trust our software updates.
  1385   1427           #       Since this setting is off by default, the user (or
  1386   1428           #       a script evaluated by the user) must have manually
  1387   1429           #       turned it on.
  1388   1430           #
  1389   1431           addConstraint softwareUpdate
................................................................................
  1544   1586           tputs $channel no\n
  1545   1587         }
  1546   1588       }
  1547   1589   
  1548   1590       proc checkForHost { channel } {
  1549   1591         tputs $channel "---- checking for host... "
  1550   1592   
  1551         -      if {[catch {host isopen} result] == 0} then {
  1552         -        if {$result} then {
         1593  +      if {[catch {host isopen} open] == 0} then {
         1594  +        if {$open} then {
  1553   1595             addConstraint hostIsOpen
  1554   1596   
  1555   1597             tputs $channel open\n
  1556   1598           } else {
  1557         -          if {[catch {host redirected Input} result] == 0} then {
  1558         -            if {$result} then {
         1599  +          if {[catch {host redirected Input} redirected] == 0} then {
         1600  +            if {$redirected} then {
  1559   1601                 addConstraint hostInputRedirected
  1560   1602   
  1561   1603                 tputs $channel redirected\n
  1562   1604               } else {
  1563   1605                 addConstraint hostIsClosed
  1564   1606   
  1565   1607                 tputs $channel closed\n
  1566   1608               }
  1567   1609             } else {
  1568         -            tlog $result; tputs $channel error\n]
         1610  +            tlog $redirected; tputs $channel error\n
  1569   1611             }
  1570   1612           }
  1571   1613         } else {
  1572         -        tlog $result; tputs $channel error\n]
         1614  +        tlog $open; tputs $channel error\n
  1573   1615         }
  1574   1616       }
  1575   1617   
  1576   1618       proc checkForHostType { channel } {
  1577   1619         tputs $channel "---- checking for host type... "
  1578   1620   
  1579   1621         if {[set code [catch {object invoke \
................................................................................
  1625   1667   
  1626   1668       proc checkForRuntime { channel } {
  1627   1669         tputs $channel "---- checking for runtime... "
  1628   1670   
  1629   1671         #
  1630   1672         # NOTE: Are we running inside Mono (regardless of operating system)?
  1631   1673         #
  1632         -      if {[isMono]} then {
         1674  +      if {![info exists ::no(mono)] && [isMono]} then {
  1633   1675           #
  1634   1676           # NOTE: Yes, it appears that we are running inside Mono.
  1635   1677           #
  1636   1678           addConstraint mono; # running on Mono.
  1637   1679   
  1638   1680           tputs $channel [appendArgs [expr {[info exists \
  1639   1681               ::eagle_platform(runtime)] ? \
................................................................................
  1732   1774   
  1733   1775           #
  1734   1776           # NOTE: Now create a version string for use in the constraint name
  1735   1777           #       (remove the periods).
  1736   1778           #
  1737   1779           set version [string map [list . ""] $dotVersion]
  1738   1780   
  1739         -        if {[isMono]} then {
         1781  +        if {![info exists ::no(mono)] && [isMono]} then {
  1740   1782             #
  1741   1783             # NOTE: If the runtime version was found, add a test constraint
  1742   1784             #       for it now.
  1743   1785             #
  1744   1786             if {[string length $version] > 0} then {
  1745   1787                 #
  1746   1788                 # NOTE: We are running on Mono.  Keep track of the specific
................................................................................
  1885   1927           #
  1886   1928           # NOTE: The culture information is present, use it and show it.
  1887   1929           #
  1888   1930           addConstraint [appendArgs culture. [string map [list - _] $culture]]
  1889   1931   
  1890   1932           tputs $channel [appendArgs $culture \n]
  1891   1933         } else {
  1892         -        tputs $channel [appendArgs unknown \n]
         1934  +        tputs $channel unknown\n
  1893   1935         }
  1894   1936       }
  1895   1937   
  1896   1938       proc checkForThreadCulture { channel } {
  1897   1939         tputs $channel "---- checking for thread culture... "
  1898   1940   
  1899   1941         #
................................................................................
  1908   1950           # NOTE: The culture information is present, use it and show it.
  1909   1951           #
  1910   1952           addConstraint [appendArgs threadCulture. [string map [list - _] \
  1911   1953               $culture]]
  1912   1954   
  1913   1955           tputs $channel [appendArgs $culture \n]
  1914   1956         } else {
  1915         -        tputs $channel [appendArgs unknown \n]
         1957  +        tputs $channel unknown\n
  1916   1958         }
  1917   1959       }
  1918   1960   
  1919   1961       proc checkForQuiet { channel } {
  1920   1962         tputs $channel "---- checking for quiet... "
  1921   1963   
  1922   1964         if {[catch {object invoke Interpreter.GetActive Quiet} quiet] == 0 && \
................................................................................
  2199   2241   
  2200   2242         tputs $channel no\n
  2201   2243       }
  2202   2244   
  2203   2245       proc checkForTclReady { channel } {
  2204   2246         tputs $channel "---- checking for Tcl readiness... "
  2205   2247   
  2206         -      if {[catch {tcl ready} result] == 0 && $result} then {
         2248  +      if {[catch {tcl ready} ready] == 0 && $ready} then {
  2207   2249           #
  2208   2250           # NOTE: Yes, native Tcl is loaded and ready.
  2209   2251           #
  2210   2252           addConstraint tclReady
  2211   2253   
  2212         -        tputs $channel yes\n
         2254  +        #
         2255  +        # NOTE: Yes, native Tcl is ready -OR- available.
         2256  +        #
         2257  +        addConstraint tclReadyOrLibrary
         2258  +
         2259  +        #
         2260  +        # NOTE: Ok, attempt to determine the loaded Tcl version.
         2261  +        #
         2262  +        if {[catch {
         2263  +          tcl eval [tcl master] {info tclversion}
         2264  +        } version] == 0 && [regexp -- {^\d+\.\d+$} $version]} then {
         2265  +          addConstraint [appendArgs \
         2266  +              tclReady [string map [list . ""] $version]]
         2267  +
         2268  +          #
         2269  +          # NOTE: The Tcl library is ready; however, we need to add the
         2270  +          #       appropriate test constraint to indicate that a specific
         2271  +          #       version of Tcl is "either ready or available".
         2272  +          #
         2273  +          if {[haveConstraint tclLibrary86] && $version >= 8.6} then {
         2274  +            addConstraint tclReadyOrLibrary86
         2275  +          } elseif {[haveConstraint tclLibrary85] && $version >= 8.5} then {
         2276  +            addConstraint tclReadyOrLibrary85
         2277  +          } elseif {[haveConstraint tclLibrary84] && $version >= 8.4} then {
         2278  +            addConstraint tclReadyOrLibrary84
         2279  +          }
         2280  +
         2281  +          tputs $channel [appendArgs "yes (" $version ")\n"]
         2282  +        } else {
         2283  +          #
         2284  +          # NOTE: The Tcl library is ready; however, we have no idea what
         2285  +          #       version it actually is; therefore, skip adding the test
         2286  +          #       constraint to indicate that a specific version of Tcl
         2287  +          #       is "either ready or available".
         2288  +          #
         2289  +          tputs $channel yes\n
         2290  +        }
  2213   2291         } else {
         2292  +        #
         2293  +        # NOTE: The Tcl library is not ready; however, we still need to add
         2294  +        #       the appropriate test constraint to indicate that a specific
         2295  +        #       version of Tcl is "either ready or available".
         2296  +        #
         2297  +        if {[haveConstraint tclLibrary86]} then {
         2298  +          addConstraint tclReadyOrLibrary86
         2299  +        } elseif {[haveConstraint tclLibrary85]} then {
         2300  +          addConstraint tclReadyOrLibrary85
         2301  +        } elseif {[haveConstraint tclLibrary84]} then {
         2302  +          addConstraint tclReadyOrLibrary84
         2303  +        }
         2304  +
  2214   2305           tputs $channel no\n
  2215   2306         }
  2216   2307       }
  2217   2308   
  2218   2309       proc checkForTclShell { channel } {
  2219   2310         #
  2220   2311         # HACK: If this returns "error" that normally indicates an error was
  2221   2312         #       caught during [exec] (i.e. the native Tcl shell could not be
  2222   2313         #       executed).
  2223   2314         #
  2224   2315         set prefix "---- checking for Tcl shell version... "
  2225   2316   
  2226         -      if {[catch {getTclVersionForTclShell} result] == 0 && \
  2227         -          $result ne "error"} then {
         2317  +      if {[catch {getTclVersionForTclShell} version] == 0 && \
         2318  +          $version ne "error"} then {
  2228   2319           #
  2229   2320           # NOTE: Yes, a native Tcl shell appears to be available.
  2230   2321           #
  2231   2322           addConstraint tclShell
  2232   2323   
  2233   2324           #
  2234   2325           # NOTE: Now, add the version specific test constraint.
  2235   2326           #
  2236         -        addConstraint [appendArgs tclShell [string map [list . ""] $result]]
         2327  +        addConstraint [appendArgs \
         2328  +            tclShell [string map [list . ""] $version]]
  2237   2329   
  2238         -        tputs $channel [appendArgs $prefix "yes (" $result ")\n"]
         2330  +        tputs $channel [appendArgs $prefix "yes (" $version ")\n"]
  2239   2331         } else {
  2240   2332           tputs $channel [appendArgs $prefix no\n]
  2241   2333         }
  2242   2334       }
  2243   2335   
  2244   2336       proc checkForTkPackage { channel } {
  2245   2337         #
................................................................................
  2246   2338         # HACK: We do not care about the Tk version returned from this
  2247   2339         #       procedure, we only care if it returns "error" because that
  2248   2340         #       would indicate an error was caught during [exec] (i.e. the
  2249   2341         #       native Tcl shell could not be executed).
  2250   2342         #
  2251   2343         set prefix "---- checking for Tk package version... "
  2252   2344   
  2253         -      if {[catch {getTkVersionForTclShell} result] == 0 && \
  2254         -          $result ne "error"} then {
         2345  +      if {[catch {getTkVersionForTclShell} version] == 0 && \
         2346  +          $version ne "error"} then {
  2255   2347           #
  2256   2348           # NOTE: Yes, a native Tk package appears to be available.
  2257   2349           #
  2258   2350           addConstraint tkPackage
  2259   2351   
  2260         -        tputs $channel [appendArgs $prefix "yes (" $result ")\n"]
         2352  +        tputs $channel [appendArgs $prefix "yes (" $version ")\n"]
  2261   2353         } else {
  2262   2354           tputs $channel [appendArgs $prefix no\n]
  2263   2355         }
  2264   2356       }
  2265   2357   
  2266   2358       proc checkForPowerShell { channel } {
  2267   2359         tputs $channel "---- checking for PowerShell... "
................................................................................
  2496   2588             if {[string length $version] > 0} then {
  2497   2589               set nativeUtility [appendArgs \
  2498   2590                   $name . [join [lrange [split $version .] 0 1] .]]
  2499   2591             } else {
  2500   2592               set nativeUtility $name
  2501   2593             }
  2502   2594   
         2595  +          addConstraint nativeUtility
  2503   2596             addConstraint [appendArgs nativeUtility. $nativeUtility]
  2504   2597   
  2505   2598             tputs $channel [appendArgs $::eagle_platform(nativeUtility) \
  2506   2599                 " " ( $nativeUtility ) \n]
  2507   2600           } else {
  2508   2601             tputs $channel unknown\n
  2509   2602           }
................................................................................
  2539   2632           set release [object invoke Microsoft.Win32.Registry GetValue $key \
  2540   2633               Release null]
  2541   2634   
  2542   2635           if {[string is integer -strict $release] && $release >= 378389} then {
  2543   2636             #
  2544   2637             # NOTE: Yes, it appears that it is available.
  2545   2638             #
  2546         -          addConstraint dotNet45
         2639  +          addConstraint dotNet45OrHigher
         2640  +
         2641  +          #
         2642  +          # NOTE: If the "release" value is greater than or equal to 378758,
         2643  +          #       then the .NET Framework 4.5.1 is installed.
         2644  +          #
         2645  +          if {$release >= 378758} then {
         2646  +            addConstraint dotNet451
         2647  +            addConstraint dotNet451OrHigher
         2648  +
         2649  +            set version 4.5.1
         2650  +          } else {
         2651  +            addConstraint dotNet45
         2652  +
         2653  +            set version 4.5
         2654  +          }
  2547   2655   
  2548   2656             #
  2549   2657             # NOTE: Show the "release" value we found in the registry.
  2550   2658             #
  2551         -          tputs $channel [appendArgs "yes (" $release ")\n"]
         2659  +          tputs $channel [appendArgs "yes (" $release ", " $version ")\n"]
  2552   2660   
  2553   2661             #
  2554   2662             # NOTE: We are done here, return now.
  2555   2663             #
  2556   2664             return
  2557   2665           }
  2558   2666         }
................................................................................
  2579   2687           set key [appendArgs HKEY_LOCAL_MACHINE\\ \
  2580   2688               [getSoftwareRegistryKey true] {\Microsoft\VisualStudio}]
  2581   2689   
  2582   2690           #
  2583   2691           # NOTE: The versions of Visual Studio that we support.
  2584   2692           #
  2585   2693           set versions [list [list 8.0 2005] [list 9.0 2008] \
  2586         -            [list 10.0 2010] [list 11.0 2012]]
         2694  +            [list 10.0 2010] [list 11.0 2012] [list 12.0 2013]]
  2587   2695   
  2588   2696           #
  2589   2697           # NOTE: Check each version and keep track of the ones we find.
  2590   2698           #
  2591   2699           foreach version $versions {
  2592   2700             #
  2593   2701             # NOTE: Attempt to fetch the Visual Studio install directory
................................................................................
  2745   2853           checkForTclOptions checkForWindowsCommandProcessor checkForFossil \
  2746   2854           checkForEagle checkForSymbols checkForLogFile checkForGaruda \
  2747   2855           checkForShell checkForDebug checkForTk checkForVersion \
  2748   2856           checkForCommand checkForTestExec checkForTestMachine \
  2749   2857           checkForTestPlatform checkForTestConfiguration checkForTestSuffix \
  2750   2858           checkForFile checkForPathFile checkForNativeCode checkForTip127 \
  2751   2859           checkForTip194 checkForTip241 checkForTip285 checkForTip405 \
  2752         -        checkForTip426 checkForTiming checkForPerformance \
         2860  +        checkForTip426 checkForTiming checkForPerformance checkForBigLists \
  2753   2861           checkForStackIntensive checkForInteractive checkForInteractiveCommand \
  2754   2862           checkForUserInteraction checkForNetwork checkForCompileOption] false \
  2755   2863           false
  2756   2864   
  2757   2865       ###########################################################################
  2758   2866       ############################## END Tcl ONLY ###############################
  2759   2867       ###########################################################################

Changes to Externals/Eagle/lib/Test1.0/prologue.eagle.

    91     91     #       or whatever project the Eagle binaries are being used by) using a
    92     92     #       Fossil binary in the PATH, if available.
    93     93     #
    94     94     if {![info exists root_path] && \
    95     95         ![info exists no(exec)] && ![info exists no(fossil)]} then {
    96     96       set pattern {^local-root:\s+(.*?)\s+$}
    97     97   
    98         -    if {[catch {set exec [exec -- fossil info]}] || \
    99         -        [regexp -line -- $pattern $exec dummy directory] == 0} then {
           98  +    if {[catch {exec -- fossil info} exec] || \
           99  +        ![regexp -line -- $pattern $exec dummy directory]} then {
   100    100         #
   101    101         # NOTE: We could not query local root directory of the source checkout
   102    102         #       from Fossil; therefore, attempt to make an educated guess.  This
   103    103         #       value will probably be wrong for any project(s) other than Eagle.
   104    104         #       In that case, this value should be overridden by that project to
   105    105         #       reflect the actual local root directory of the source checkout
   106    106         #       for that project.
................................................................................
   374    374     # NOTE: Set the default test configuration (i.e. Debug or Release), if
   375    375     #       necessary.
   376    376     #
   377    377     if {![info exists test_configuration]} then {
   378    378       set test_configuration [getPlatformInfo configuration Release]
   379    379     }
   380    380   
   381         -  #
   382         -  # NOTE: Set the Tcl shell executable to use for those specialized tests that
   383         -  #       may require it, if necessary.
   384         -  #
   385         -  if {![info exists test_tclsh]} then {
   386         -    #
   387         -    # NOTE: When running in Eagle, more complex logic is required to determine
   388         -    #       the Tcl shell to use for the various tests that require it.  Also,
   389         -    #       this same logic is used with Tcl when it is not running from an
   390         -    #       instance of the Tcl shell executable.
   391         -    #
   392         -    if {[isEagle] || ![string match tclsh* $bin_file]} then {
   393         -      if {[info exists test_flags(-tclsh)] && \
   394         -          [string length $test_flags(-tclsh)] > 0} then {
   395         -        #
   396         -        # NOTE: Use the Tcl shell specified via the command line.
   397         -        #
   398         -        set test_tclsh $test_flags(-tclsh)
   399         -      } else {
   400         -        #
   401         -        # NOTE: Check for a Tcl shell specified via the environment.
   402         -        #
   403         -        set test_tclsh [getTclShellFileName]
   404         -      }
   405         -    } else {
   406         -      set test_tclsh $bin_file
   407         -    }
   408         -  }
   409         -
   410    381     #
   411    382     # NOTE: Has automatic log file naming been disabled?
   412    383     #
   413    384     if {![info exists no(logFileName)]} then {
   414    385       #
   415    386       # NOTE: Set the log to use for test output, if necessary.
   416    387       #
   417    388       if {![info exists test_log]} then {
   418    389         set test_log [file join [getTemporaryPath] [appendArgs [file tail [info \
   419    390             nameofexecutable]] [getTestLogId] .test. [pid] .log]]
   420    391       }
   421    392     }
          393  +
          394  +  #
          395  +  # NOTE: Has native Tcl shell detection and use been disabled?
          396  +  #
          397  +  if {![info exists no(tclsh)]} then {
          398  +    #
          399  +    # NOTE: Set the Tcl shell executable to use for those specialized
          400  +    #       tests that may require it, if necessary.
          401  +    #
          402  +    if {![info exists test_tclsh]} then {
          403  +      #
          404  +      # NOTE: When running in Eagle, more complex logic is required to
          405  +      #       determine the Tcl shell to use for the various tests that
          406  +      #       require it.  Also, this same logic is used with Tcl when it
          407  +      #       is not running from an instance of the Tcl shell executable.
          408  +      #
          409  +      if {[isEagle] || ![string match tclsh* $bin_file]} then {
          410  +        if {[info exists test_flags(-tclsh)] && \
          411  +            [string length $test_flags(-tclsh)] > 0} then {
          412  +          #
          413  +          # NOTE: Use the Tcl shell specified via the command line.
          414  +          #
          415  +          set test_tclsh $test_flags(-tclsh)
          416  +        } else {
          417  +          if {![info exists no(getTclShellFileName)]} then {
          418  +            #
          419  +            # NOTE: Attempt to automatically select a Tcl shell to use.
          420  +            #
          421  +            tputs $test_channel \
          422  +                "==== WARNING: attempting automatic Tcl shell selection...\n"
          423  +
          424  +            set test_tclsh [getTclShellFileName true]
          425  +          } else {
          426  +            #
          427  +            # NOTE: Skip detection and use the fallback default.
          428  +            #
          429  +            set test_tclsh tclsh
          430  +          }
          431  +        }
          432  +      } else {
          433  +        set test_tclsh $bin_file
          434  +      }
          435  +    }
          436  +  }
   422    437   
   423    438     #
   424    439     # NOTE: When running in Eagle, check for any non-core plugins loaded into
   425    440     #       the interpreter and issue warnings if any are found.  The warning
   426    441     #       may be used to explain subsequent test failures due to the extra
   427    442     #       plugins being loaded (i.e. there are some tests are sensitive to
   428    443     #       having "unexpected" plugins loaded).
................................................................................
   537    552       if {[string length $publicKeyToken] == 0} then {
   538    553         #
   539    554         # NOTE: The Eagle core library is not strong name signed.  This is not an
   540    555         #       error, per se; however, it may cause some tests to fail and it
   541    556         #       should be reported to the user and noted in the test suite log
   542    557         #       file.
   543    558         #
   544         -      tputs $test_channel [appendArgs \
   545         -          "==== WARNING: running without any strong name signature...\n"]
          559  +      tputs $test_channel \
          560  +          "==== WARNING: running without any strong name signature...\n"
   546    561       } else {
   547    562         #
   548    563         # BUGBUG: Tcl 8.4 does not like this expression because it contains the
   549    564         #         "ni" operator (and Tcl tries to compile it even though it will
   550    565         #         only actually ever be evaluated in Eagle).
   551    566         #
   552    567         set expr {$publicKeyToken ni \
................................................................................
   691    706   
   692    707     tputs $test_channel [appendArgs "---- tests running in: \"" \
   693    708         [pwd] \"\n]
   694    709   
   695    710     tputs $test_channel [appendArgs "---- temporary files stored in: \"" \
   696    711         [getTemporaryPath] \"\n]
   697    712   
   698         -  tputs $test_channel [appendArgs "---- native Tcl shell: \"" \
   699         -      $test_tclsh \"\n]
          713  +  tputs $test_channel [appendArgs "---- native Tcl shell: " \
          714  +      [expr {[info exists test_tclsh] && [string length $test_tclsh] > 0 ? \
          715  +          [appendArgs \" $test_tclsh \"] : "<none>"}] \n]
   700    716   
   701    717     tputs $test_channel [appendArgs "---- disabled options: " \
   702    718         [formatList [lsort [array names no]] <none>] \n]
   703    719   
   704    720     #
   705    721     # NOTE: Initialize the Eagle test constraints.
   706    722     #
................................................................................
   774    790         checkForRuntime $test_channel
   775    791       }
   776    792   
   777    793       #
   778    794       # NOTE: Check the variant and/or version of the CLR that we are
   779    795       #       currently running on.
   780    796       #
   781         -    if {![info exists no(runtimeVersion)]} then {
          797  +    if {![info exists no(checkForRuntimeVersion)]} then {
   782    798         checkForRuntimeVersion $test_channel
   783    799       }
   784    800   
   785    801       #
   786    802       # NOTE: Check the framework version (i.e. regardless of runtime) that
   787    803       #       we are currently running on.
   788    804       #
................................................................................
  1856   1872       #
  1857   1873       if {![info exists no(compileOptions)]} then {
  1858   1874         #
  1859   1875         # NOTE: Has dedicated test support been enabled (at compile-time)?
  1860   1876         #
  1861   1877         if {![info exists no(compileTest)]} then {
  1862   1878           #
  1863         -        # NOTE: For test "tclLoad-1.16.1".
         1879  +        # NOTE: For tests "tclLoad-1.17.1" and "tclLoad-1.17.2".
  1864   1880           #
  1865   1881           checkForCompileOption $test_channel TEST
  1866   1882         }
  1867   1883       }
  1868   1884   
  1869   1885       ###########################################################################
  1870   1886       ########################### END Tcl Constraints ###########################
................................................................................
  2145   2161       checkForScriptLibrary $test_channel
  2146   2162     }
  2147   2163   
  2148   2164     if {![info exists no(tclOptions)]} then {
  2149   2165       checkForTclOptions $test_channel
  2150   2166     }
  2151   2167   
  2152         -  if {![info exists no(stackIntensive)]} then {
         2168  +  if {![info exists no(checkForBigLists)]} then {
         2169  +    checkForBigLists $test_channel
         2170  +  }
         2171  +
         2172  +  if {![info exists no(checkForStackIntensive)]} then {
  2153   2173       checkForStackIntensive $test_channel
  2154   2174     }
  2155   2175   
  2156   2176     if {![info exists no(windowsCommandProcessor)]} then {
  2157   2177       checkForWindowsCommandProcessor $test_channel cmd.exe
  2158   2178     }
  2159   2179   
................................................................................
  2261   2281     if {![info exists no(tip426)]} then {
  2262   2282       checkForTip426 $test_channel
  2263   2283     }
  2264   2284   
  2265   2285     #
  2266   2286     # NOTE: Has performance testing been disabled?
  2267   2287     #
  2268         -  if {![info exists no(performance)]} then {
         2288  +  if {![info exists no(checkForPerformance)]} then {
  2269   2289       checkForPerformance $test_channel
  2270   2290     }
  2271   2291   
  2272   2292     #
  2273   2293     # NOTE: Have any timing related constraints been disabled?
  2274   2294     #
  2275   2295     # BUGBUG: In Eagle, these checks for "precision" timing are not overly
................................................................................
  2380   2400     if {[isEagle]} then {
  2381   2401       #
  2382   2402       # NOTE: Get the source checkout and tags (i.e. of Eagle or whatever
  2383   2403       #       project the Eagle binaries are being used by) using a Fossil
  2384   2404       #       binary in the PATH, if available.
  2385   2405       #
  2386   2406       if {![info exists no(exec)] && ![info exists no(fossil)]} then {
  2387         -      if {[catch {set exec [exec -- fossil info]}] == 0} then {
         2407  +      if {[catch {exec -- fossil info} exec] == 0} then {
  2388   2408           set pattern {^checkout:\s+(.*?)\s+$}
  2389   2409   
  2390         -        if {[regexp -line -- $pattern $exec dummy checkout] == 0} then {
         2410  +        if {![regexp -line -- $pattern $exec dummy checkout]} then {
  2391   2411             #
  2392   2412             # NOTE: We could not query the source checkout from Fossil.
  2393   2413             #
  2394   2414             set checkout <none>
  2395   2415           }
  2396   2416   
  2397   2417           set pattern {^tags:\s+(.*?)\s+$}
  2398   2418   
  2399         -        if {[regexp -line -- $pattern $exec dummy tags] == 0} then {
         2419  +        if {![regexp -line -- $pattern $exec dummy tags]} then {
  2400   2420             #
  2401   2421             # NOTE: We could not query the tags from Fossil.
  2402   2422             #
  2403   2423             set tags <none>
  2404   2424           }
  2405   2425         } else {
  2406   2426           #

Added Externals/MSVCPP/vcredist_x64_2013_RTM.exe.

cannot compute difference between binary files

Added Externals/MSVCPP/vcredist_x86_2013_RTM.exe.

cannot compute difference between binary files

Changes to SQLite.Designer/SQLite.Designer.2005.csproj.

   147    147     </ItemGroup>
   148    148     <ItemGroup>
   149    149       <VSCTCompile Include="PkgCmd.vsct">
   150    150         <ResourceName>1000</ResourceName>
   151    151       </VSCTCompile>
   152    152     </ItemGroup>
   153    153     <ItemGroup>
          154  +    <EmbeddedResource Include="SQLiteDataObjectSupport2005.xml" />
   154    155       <EmbeddedResource Include="SQLiteDataViewSupport2005.xml" />
   155    156       <EmbeddedResource Include="VSPackage.resx">
   156    157         <Generator>ResXFileCodeGenerator</Generator>
   157    158         <LastGenOutput>VSPackage.Designer.cs</LastGenOutput>
   158    159         <MergeWithCTO>true</MergeWithCTO>
   159    160         <SubType>Designer</SubType>
   160    161       </EmbeddedResource>
................................................................................
   171    172       <EmbeddedResource Include="Editors\ViewDesignerDoc.resx">
   172    173         <DependentUpon>ViewDesignerDoc.cs</DependentUpon>
   173    174       </EmbeddedResource>
   174    175       <EmbeddedResource Include="SQLiteConnectionUIControl.resx">
   175    176         <SubType>Designer</SubType>
   176    177         <DependentUpon>SQLiteConnectionUIControl.cs</DependentUpon>
   177    178       </EmbeddedResource>
   178         -    <EmbeddedResource Include="SQLiteDataObjectSupport.xml" />
   179    179       <EmbeddedResource Include="TableNameDialog.resx">
   180    180         <DependentUpon>TableNameDialog.cs</DependentUpon>
   181    181       </EmbeddedResource>
   182    182     </ItemGroup>
   183    183     <ItemGroup>
   184    184       <EmbeddedResource Include="ChangeScriptDialog.resx">
   185    185         <DependentUpon>ChangeScriptDialog.cs</DependentUpon>

Changes to SQLite.Designer/SQLite.Designer.2008.csproj.

   151    151     </ItemGroup>
   152    152     <ItemGroup>
   153    153       <VSCTCompile Include="PkgCmd.vsct">
   154    154         <ResourceName>1000</ResourceName>
   155    155       </VSCTCompile>
   156    156     </ItemGroup>
   157    157     <ItemGroup>
          158  +    <EmbeddedResource Include="SQLiteDataObjectSupport2008.xml" />
   158    159       <EmbeddedResource Include="SQLiteDataViewSupport2008.xml" />
   159    160       <EmbeddedResource Include="VSPackage.resx">
   160    161         <Generator>ResXFileCodeGenerator</Generator>
   161    162         <LastGenOutput>VSPackage.Designer.cs</LastGenOutput>
   162    163         <MergeWithCTO>true</MergeWithCTO>
   163    164         <SubType>Designer</SubType>
   164    165       </EmbeddedResource>
................................................................................
   175    176       <EmbeddedResource Include="Editors\ViewDesignerDoc.resx">
   176    177         <DependentUpon>ViewDesignerDoc.cs</DependentUpon>
   177    178       </EmbeddedResource>
   178    179       <EmbeddedResource Include="SQLiteConnectionUIControl.resx">
   179    180         <SubType>Designer</SubType>
   180    181         <DependentUpon>SQLiteConnectionUIControl.cs</DependentUpon>
   181    182       </EmbeddedResource>
   182         -    <EmbeddedResource Include="SQLiteDataObjectSupport.xml" />
   183    183       <EmbeddedResource Include="TableNameDialog.resx">
   184    184         <DependentUpon>TableNameDialog.cs</DependentUpon>
   185    185       </EmbeddedResource>
   186    186     </ItemGroup>
   187    187     <ItemGroup>
   188    188       <EmbeddedResource Include="ChangeScriptDialog.resx">
   189    189         <DependentUpon>ChangeScriptDialog.cs</DependentUpon>

Changes to SQLite.Designer/SQLite.Designer.2010.csproj.

   151    151     </ItemGroup>
   152    152     <ItemGroup>
   153    153       <VSCTCompile Include="PkgCmd.vsct">
   154    154         <ResourceName>1000</ResourceName>
   155    155       </VSCTCompile>
   156    156     </ItemGroup>
   157    157     <ItemGroup>
          158  +    <EmbeddedResource Include="SQLiteDataObjectSupport2010.xml" />
   158    159       <EmbeddedResource Include="SQLiteDataViewSupport2010.xml" />
   159    160       <EmbeddedResource Include="VSPackage.resx">
   160    161         <Generator>ResXFileCodeGenerator</Generator>
   161    162         <LastGenOutput>VSPackage.Designer.cs</LastGenOutput>
   162    163         <MergeWithCTO>true</MergeWithCTO>
   163    164         <SubType>Designer</SubType>
   164    165       </EmbeddedResource>
................................................................................
   175    176       <EmbeddedResource Include="Editors\ViewDesignerDoc.resx">
   176    177         <DependentUpon>ViewDesignerDoc.cs</DependentUpon>
   177    178       </EmbeddedResource>
   178    179       <EmbeddedResource Include="SQLiteConnectionUIControl.resx">
   179    180         <SubType>Designer</SubType>
   180    181         <DependentUpon>SQLiteConnectionUIControl.cs</DependentUpon>
   181    182       </EmbeddedResource>
   182         -    <EmbeddedResource Include="SQLiteDataObjectSupport.xml" />
   183    183       <EmbeddedResource Include="TableNameDialog.resx">
   184    184         <DependentUpon>TableNameDialog.cs</DependentUpon>
   185    185       </EmbeddedResource>
   186    186     </ItemGroup>
   187    187     <ItemGroup>
   188    188       <EmbeddedResource Include="ChangeScriptDialog.resx">
   189    189         <DependentUpon>ChangeScriptDialog.cs</DependentUpon>

Changes to SQLite.Designer/SQLite.Designer.2012.csproj.

   156    156     </ItemGroup>
   157    157     <ItemGroup>
   158    158       <VSCTCompile Include="PkgCmd.vsct">
   159    159         <ResourceName>1000</ResourceName>
   160    160       </VSCTCompile>
   161    161     </ItemGroup>
   162    162     <ItemGroup>
          163  +    <EmbeddedResource Include="SQLiteDataObjectSupport2012.xml" />
   163    164       <EmbeddedResource Include="SQLiteDataViewSupport2012.xml" />
   164    165       <EmbeddedResource Include="VSPackage.resx">
   165    166         <Generator>ResXFileCodeGenerator</Generator>
   166    167         <LastGenOutput>VSPackage.Designer.cs</LastGenOutput>
   167    168         <MergeWithCTO>true</MergeWithCTO>
   168    169         <SubType>Designer</SubType>
   169    170       </EmbeddedResource>
................................................................................
   180    181       <EmbeddedResource Include="Editors\ViewDesignerDoc.resx">
   181    182         <DependentUpon>ViewDesignerDoc.cs</DependentUpon>
   182    183       </EmbeddedResource>
   183    184       <EmbeddedResource Include="SQLiteConnectionUIControl.resx">
   184    185         <SubType>Designer</SubType>
   185    186         <DependentUpon>SQLiteConnectionUIControl.cs</DependentUpon>
   186    187       </EmbeddedResource>
   187         -    <EmbeddedResource Include="SQLiteDataObjectSupport.xml" />
   188    188       <EmbeddedResource Include="TableNameDialog.resx">
   189    189         <DependentUpon>TableNameDialog.cs</DependentUpon>
   190    190       </EmbeddedResource>
   191    191     </ItemGroup>
   192    192     <ItemGroup>
   193    193       <EmbeddedResource Include="ChangeScriptDialog.resx">
   194    194         <DependentUpon>ChangeScriptDialog.cs</DependentUpon>

Added SQLite.Designer/SQLite.Designer.2013.csproj.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +<!--
            3  + *
            4  + * SQLite.Designer.2013.csproj -
            5  + *
            6  + * Written by Joe Mistachkin.
            7  + * Released to the public domain, use at your own risk!
            8  + *
            9  +-->
           10  +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
           11  +  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
           12  +  <PropertyGroup>
           13  +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
           14  +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
           15  +    <ProjectGuid>{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}</ProjectGuid>
           16  +    <OutputType>Library</OutputType>
           17  +    <AppDesignerFolder>Properties</AppDesignerFolder>
           18  +    <RootNamespace>SQLite.Designer</RootNamespace>
           19  +    <AssemblyName>SQLite.Designer</AssemblyName>
           20  +    <SQLiteNetDir>$(MSBuildProjectDirectory)\..</SQLiteNetDir>
           21  +    <NetFx451>true</NetFx451>
           22  +    <ConfigurationYear>2013</ConfigurationYear>
           23  +    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
           24  +  </PropertyGroup>
           25  +  <Import Project="$(SQLiteNetDir)\SQLite.NET.Settings.targets" />
           26  +  <Import Project="$(SQLiteNetDir)\SQLite.NET.targets" />
           27  +  <PropertyGroup Condition="'$(BinaryOutputPath)' != ''">
           28  +    <OutputPath>$(BinaryOutputPath)</OutputPath>
           29  +    <DocumentationFile>$(BinaryOutputPath)SQLite.Designer.xml</DocumentationFile>
           30  +  </PropertyGroup>
           31  +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
           32  +    <DebugSymbols>true</DebugSymbols>
           33  +    <DebugType>full</DebugType>
           34  +    <Optimize>false</Optimize>
           35  +    <DefineConstants>DEBUG;TRACE</DefineConstants>
           36  +    <ErrorReport>prompt</ErrorReport>
           37  +  </PropertyGroup>
           38  +  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
           39  +    <DebugType>pdbonly</DebugType>
           40  +    <Optimize>true</Optimize>
           41  +    <DefineConstants>TRACE</DefineConstants>
           42  +    <ErrorReport>prompt</ErrorReport>
           43  +  </PropertyGroup>
           44  +  <ItemGroup>
           45  +    <Reference Include="System" />
           46  +    <Reference Include="System.Data" />
           47  +    <Reference Include="System.Design" />
           48  +    <Reference Include="System.Drawing" />
           49  +    <Reference Include="System.Windows.Forms" />
           50  +    <Reference Include="System.Xml" />
           51  +    <Reference Include="EnvDTE">
           52  +      <SpecificVersion>False</SpecificVersion>
           53  +    </Reference>
           54  +    <Reference Include="Microsoft.Data.ConnectionUI">
           55  +      <SpecificVersion>False</SpecificVersion>
           56  +      <Private>False</Private>
           57  +    </Reference>
           58  +    <Reference Include="Microsoft.VisualStudio.CommandBars">
           59  +      <SpecificVersion>False</SpecificVersion>
           60  +    </Reference>
           61  +    <Reference Include="Microsoft.VisualStudio.Data">
           62  +      <SpecificVersion>False</SpecificVersion>
           63  +      <Private>False</Private>
           64  +    </Reference>
           65  +    <Reference Include="Microsoft.VisualStudio.Data.Services">
           66  +      <SpecificVersion>False</SpecificVersion>
           67  +    </Reference>
           68  +    <Reference Include="Microsoft.VisualStudio.OLE.Interop">
           69  +      <SpecificVersion>False</SpecificVersion>
           70  +    </Reference>
           71  +    <Reference Include="Microsoft.VisualStudio.Shell.12.0">
           72  +      <SpecificVersion>False</SpecificVersion>
           73  +    </Reference>
           74  +    <Reference Include="Microsoft.VisualStudio.Shell.Interop">
           75  +      <SpecificVersion>False</SpecificVersion>
           76  +    </Reference>
           77  +    <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0">
           78  +      <SpecificVersion>False</SpecificVersion>
           79  +    </Reference>
           80  +    <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0">
           81  +      <SpecificVersion>False</SpecificVersion>
           82  +    </Reference>
           83  +    <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0">
           84  +      <SpecificVersion>False</SpecificVersion>
           85  +    </Reference>
           86  +  </ItemGroup>
           87  +  <ItemGroup>
           88  +    <Compile Include="AssemblyInfo.cs" />
           89  +    <Compile Include="ChangePasswordDialog.cs">
           90  +      <SubType>Form</SubType>
           91  +    </Compile>
           92  +    <Compile Include="ChangePasswordDialog.Designer.cs">
           93  +      <DependentUpon>ChangePasswordDialog.cs</DependentUpon>
           94  +    </Compile>
           95  +    <Compile Include="ChangeScriptDialog.cs">
           96  +      <SubType>Form</SubType>
           97  +    </Compile>
           98  +    <Compile Include="ChangeScriptDialog.Designer.cs">
           99  +      <DependentUpon>ChangeScriptDialog.cs</DependentUpon>
          100  +    </Compile>
          101  +    <Compile Include="Design\Check.cs" />
          102  +    <Compile Include="Design\Column.cs" />
          103  +    <Compile Include="Design\ForeignKey.cs" />
          104  +    <Compile Include="Design\Index.cs" />
          105  +    <Compile Include="Design\PrimaryKey.cs" />
          106  +    <Compile Include="Design\SimpleTokenizer.cs" />
          107  +    <Compile Include="Design\Table.cs" />
          108  +    <Compile Include="Design\Trigger.cs" />
          109  +    <Compile Include="Design\Unique.cs" />
          110  +    <Compile Include="Design\View.cs" />
          111  +    <Compile Include="Editors\AutoCompleteColumn.cs">
          112  +      <SubType>Component</SubType>
          113  +    </Compile>
          114  +    <Compile Include="Editors\TableDesignerDoc.cs">
          115  +      <SubType>UserControl</SubType>
          116  +    </Compile>
          117  +    <Compile Include="Editors\TableDesignerDoc.Designer.cs">
          118  +      <DependentUpon>TableDesignerDoc.cs</DependentUpon>
          119  +    </Compile>
          120  +    <Compile Include="Editors\ViewDesignerDoc.cs">
          121  +      <SubType>UserControl</SubType>
          122  +    </Compile>
          123  +    <Compile Include="Editors\ViewDesignerDoc.Designer.cs">
          124  +      <DependentUpon>ViewDesignerDoc.cs</DependentUpon>
          125  +    </Compile>
          126  +    <Compile Include="SQLiteAdapterDesigner.cs" />
          127  +    <Compile Include="SQLiteCommandDesigner.cs" />
          128  +    <Compile Include="SQLiteCommandHandler.cs" />
          129  +    <Compile Include="SQLiteConnectionProperties.cs" />
          130  +    <Compile Include="SQLiteConnectionStringEditor.cs" />
          131  +    <Compile Include="SQLiteConnectionUIControl.cs">
          132  +      <SubType>UserControl</SubType>
          133  +    </Compile>
          134  +    <Compile Include="SQLiteConnectionUIControl.Designer.cs">
          135  +      <DependentUpon>SQLiteConnectionUIControl.cs</DependentUpon>
          136  +    </Compile>
          137  +    <Compile Include="SQLiteDataAdapterToolboxItem.cs" />
          138  +    <Compile Include="SQLiteDataConnectionSupport.cs" />
          139  +    <Compile Include="SQLiteDataObjectIdentifierResolver.cs" />
          140  +    <Compile Include="SQLiteDataObjectSupport.cs" />
          141  +    <Compile Include="SQLiteDataSourceInformation.cs" />
          142  +    <Compile Include="SQLiteDataViewSupport.cs" />
          143  +    <Compile Include="SQLitePackage.cs" />
          144  +    <Compile Include="SQLiteProviderObjectFactory.cs" />
          145  +    <Compile Include="TableNameDialog.cs">
          146  +      <SubType>Form</SubType>
          147  +    </Compile>
          148  +    <Compile Include="TableNameDialog.Designer.cs">
          149  +      <DependentUpon>TableNameDialog.cs</DependentUpon>
          150  +    </Compile>
          151  +    <Compile Include="VSPackage.Designer.cs">
          152  +      <AutoGen>True</AutoGen>
          153  +      <DesignTime>True</DesignTime>
          154  +      <DependentUpon>VSPackage.resx</DependentUpon>
          155  +    </Compile>
          156  +  </ItemGroup>
          157  +  <ItemGroup>
          158  +    <VSCTCompile Include="PkgCmd.vsct">
          159  +      <ResourceName>1000</ResourceName>
          160  +    </VSCTCompile>
          161  +  </ItemGroup>
          162  +  <ItemGroup>
          163  +    <EmbeddedResource Include="SQLiteDataObjectSupport2013.xml" />
          164  +    <EmbeddedResource Include="SQLiteDataViewSupport2013.xml" />
          165  +    <EmbeddedResource Include="VSPackage.resx">
          166  +      <Generator>ResXFileCodeGenerator</Generator>
          167  +      <LastGenOutput>VSPackage.Designer.cs</LastGenOutput>
          168  +      <MergeWithCTO>true</MergeWithCTO>
          169  +      <SubType>Designer</SubType>
          170  +    </EmbeddedResource>
          171  +  </ItemGroup>
          172  +  <ItemGroup>
          173  +    <EmbeddedResource Include="ChangePasswordDialog.resx">
          174  +      <SubType>Designer</SubType>
          175  +      <DependentUpon>ChangePasswordDialog.cs</DependentUpon>
          176  +    </EmbeddedResource>
          177  +    <EmbeddedResource Include="Editors\TableDesignerDoc.resx">
          178  +      <SubType>Designer</SubType>
          179  +      <DependentUpon>TableDesignerDoc.cs</DependentUpon>
          180  +    </EmbeddedResource>
          181  +    <EmbeddedResource Include="Editors\ViewDesignerDoc.resx">
          182  +      <DependentUpon>ViewDesignerDoc.cs</DependentUpon>
          183  +    </EmbeddedResource>
          184  +    <EmbeddedResource Include="SQLiteConnectionUIControl.resx">
          185  +      <SubType>Designer</SubType>
          186  +      <DependentUpon>SQLiteConnectionUIControl.cs</DependentUpon>
          187  +    </EmbeddedResource>
          188  +    <EmbeddedResource Include="TableNameDialog.resx">
          189  +      <DependentUpon>TableNameDialog.cs</DependentUpon>
          190  +    </EmbeddedResource>
          191  +  </ItemGroup>
          192  +  <ItemGroup>
          193  +    <EmbeddedResource Include="ChangeScriptDialog.resx">
          194  +      <DependentUpon>ChangeScriptDialog.cs</DependentUpon>
          195  +    </EmbeddedResource>
          196  +  </ItemGroup>
          197  +  <ItemGroup>
          198  +    <None Include="Resources\info.png" />
          199  +    <None Include="Resources\ToolboxItems.txt" />
          200  +    <None Include="source.extension.vsixmanifest" />
          201  +  </ItemGroup>
          202  +  <Import Project="$(SQLiteNetDir)\System.Data.SQLite\System.Data.SQLite.Properties.targets" />
          203  +  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
          204  +  <PropertyGroup Condition="'$(VSSDK120Install)' == '' Or
          205  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.Data.ConnectionUI.dll') Or
          206  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Data.dll') Or
          207  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Data.Services.dll') Or
          208  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.OLE.Interop.dll') Or
          209  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Shell.12.0.dll') Or
          210  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.dll') Or
          211  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.8.0.dll') Or
          212  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.9.0.dll') Or
          213  +                            !Exists('$(VSSDK120Install)VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.10.0.dll')">
          214  +    <!--
          215  +        NOTE: We cannot build this project without the necessary reference
          216  +              assemblies; therefore, skip building it altogether.
          217  +    -->
          218  +    <BuildDependsOn>
          219  +      MissingVsSdk
          220  +    </BuildDependsOn>
          221  +  </PropertyGroup>
          222  +  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
          223  +       Other similar extension points exist, see Microsoft.Common.targets.
          224  +  <Target Name="BeforeBuild">
          225  +  </Target>
          226  +  <Target Name="AfterBuild">
          227  +  </Target>
          228  +  -->
          229  +</Project>

Changes to SQLite.Designer/SQLiteDataObjectSupport.cs.

     1      1   /********************************************************
     2      2    * ADO.NET 2.0 Data Provider for SQLite Version 3.X
     3      3    * Written by Robert Simpson (robert@blackcastlesoft.com)
     4         - * 
            4  + *
     5      5    * Released to the public domain, use at your own risk!
     6      6    ********************************************************/
     7      7   
     8      8   namespace SQLite.Designer
     9      9   {
    10     10     using System;
    11     11     using System.Collections.Generic;
    12     12     using System.Text;
           13  +  using System.Globalization;
    13     14     using Microsoft.VisualStudio.Data;
    14     15     using Microsoft.VisualStudio.OLE.Interop;
    15     16     using Microsoft.VisualStudio.Data.AdoDotNet;
    16     17   
    17     18     /// <summary>
    18     19     /// Doesn't do much other than provide the DataObjectSupport base object with a location
    19     20     /// where the XML resource can be found.
    20     21     /// </summary>
    21     22     internal sealed class SQLiteDataObjectSupport : DataObjectSupport
    22     23     {
    23     24       public SQLiteDataObjectSupport()
    24         -      : base("SQLite.Designer.SQLiteDataObjectSupport", typeof(SQLiteDataObjectSupport).Assembly)
           25  +      : base(String.Format(CultureInfo.InvariantCulture,
           26  +          "SQLite.Designer.SQLiteDataObjectSupport{0}", GetVSVersion()),
           27  +          typeof(SQLiteDataObjectSupport).Assembly)
           28  +    {
           29  +    }
           30  +
           31  +    private static string GetVSVersion()
    25     32       {
           33  +      switch (System.Diagnostics.FileVersionInfo.GetVersionInfo(
           34  +          Environment.GetCommandLineArgs()[0]).FileMajorPart)
           35  +      {
           36  +        case 8:
           37  +          return "2005";
           38  +        case 9:
           39  +          return "2008";
           40  +        case 10:
           41  +          return "2010";
           42  +        case 11:
           43  +          return "2012";
           44  +        case 12:
           45  +          return "2013";
           46  +        default:
           47  +          return null;
           48  +      }
    26     49       }
    27     50     }
    28     51   }

Name change from SQLite.Designer/SQLiteDataObjectSupport.xml to SQLite.Designer/SQLiteDataObjectSupport2005.xml.

     1         -<?xml version="1.0" encoding="utf-8"?> 
            1  +<?xml version="1.0" encoding="utf-8"?>
     2      2   
     3      3   <!--
     4      4   /********************************************************
     5      5    * ADO.NET 2.0 Data Provider for SQLite Version 3.X
     6      6    * Written by Robert Simpson (robert@blackcastlesoft.com)
     7         - * 
            7  + *
     8      8    * Released to the public domain, use at your own risk!
     9      9    ********************************************************/
    10     10   -->
    11     11   
    12     12   <VSDataObjectSupport xmlns="http://tempuri.org/VSDataObjectSupport.xsd">
    13     13   	<Types>
    14     14   		<RootType>
................................................................................
   388    388         </Identifier>
   389    389         <Properties>
   390    390           <Property name="Name" type="System.String" itemName="index_name"/>
   391    391           <Property name="IsUnique" type="System.Boolean" itemName="UNIQUE">
   392    392             <Concepts>
   393    393               <Concept name="IsUnique"/>
   394    394             </Concepts>
   395         -        </Property>                  
          395  +        </Property>
   396    396           <Property name="IsPrimary" type="System.Boolean" itemName="PRIMARY_KEY">
   397    397             <Concepts>
   398    398               <Concept name="IsPrimary"/>
   399    399             </Concepts>
   400    400           </Property>
   401    401         </Properties>
   402    402         <Actions>
................................................................................
   548    548         </Properties>
   549    549         <Actions>
   550    550           <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
   551    551             <Parameter value="Triggers"/>
   552    552           </Action>
   553    553         </Actions>
   554    554       </Type>
   555         -    
          555  +
   556    556       <Type name="ForeignKey" defaultSort="Database,Table,Name">
   557    557         <Concepts>
   558    558           <Concept name="TableForeignKey" restrictions="{Catalog},null,{Table},{Name}"/>
   559    559         </Concepts>
   560    560         <Identifier>
   561    561           <Part name="Database" itemName="table_catalog">
   562    562             <Concepts>

Added SQLite.Designer/SQLiteDataObjectSupport2008.xml.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +
            3  +<!--
            4  +/********************************************************
            5  + * ADO.NET 2.0 Data Provider for SQLite Version 3.X
            6  + * Written by Robert Simpson (robert@blackcastlesoft.com)
            7  + *
            8  + * Released to the public domain, use at your own risk!
            9  + ********************************************************/
           10  +-->
           11  +
           12  +<VSDataObjectSupport xmlns="http://tempuri.org/VSDataObjectSupport.xsd">
           13  +	<Types>
           14  +		<RootType>
           15  +			<Properties>
           16  +        <Property name="Server" type="System.String" itemName="DataSource"/>
           17  +        <Property name="Database" type="System.String" itemName="Database"/>
           18  +      </Properties>
           19  +			<Actions>
           20  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetRootObjectEnumerator"/>
           21  +			</Actions>
           22  +		</RootType>
           23  +
           24  +		<Type name="Table" defaultSort="Database,Name">
           25  +			<Concepts>
           26  +				<Concept name="Table" restrictions="{Catalog},null,{Name}"/>
           27  +			</Concepts>
           28  +			<Identifier>
           29  +				<Part name="Database" itemName="table_catalog">
           30  +					<Concepts>
           31  +						<Concept name="Identifier0"/>
           32  +					</Concepts>
           33  +				</Part>
           34  +				<Part name="Schema" itemName="table_schema">
           35  +					<Concepts>
           36  +						<Concept name="Identifier1"/>
           37  +					</Concepts>
           38  +				</Part>
           39  +				<Part name="Name" itemName="table_name">
           40  +					<Concepts>
           41  +						<Concept name="Identifier2"/>
           42  +					</Concepts>
           43  +				</Part>
           44  +			</Identifier>
           45  +			<Properties>
           46  +				<Property name="Name" type="System.String" itemName="table_name"/>
           47  +				<Property name="Schema" type="System.String" itemName="table_schema"/>
           48  +        <Property name="Type" type="System.String" itemName="table_type">
           49  +          <Concepts>
           50  +            <Concept name="Type">
           51  +              <Conversion>
           52  +                <Calculate expr="IIF({0}='TABLE','USER','SYSTEM')" type="System.String"/>
           53  +              </Conversion>
           54  +            </Concept>
           55  +          </Concepts>
           56  +        </Property>
           57  +      </Properties>
           58  +			<Actions>
           59  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
           60  +					<Parameter value="Tables"/>
           61  +				</Action>
           62  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
           63  +					<Parameter>
           64  +						<Parameter value="{2}"/>
           65  +						<Parameter value="{1}"/>
           66  +						<Parameter value="Table"/>
           67  +						<Parameter/>
           68  +						<Parameter>
           69  +							<!-- GUID_DSRefProperty_PreciseType -->
           70  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
           71  +								<Parameter value="101" type="System.Int32"/> <!-- Table -->
           72  +							</Parameter>
           73  +						</Parameter>
           74  +					</Parameter>
           75  +				</Action>
           76  +			</Actions>
           77  +		</Type>
           78  +
           79  +		<Type name="TableColumn" defaultSort="Database,Table,Ordinal">
           80  +			<Concepts>
           81  +				<Concept name="TableColumn" restrictions="{Catalog},null,{Table},{Name}"/>
           82  +			</Concepts>
           83  +			<Identifier>
           84  +				<Part name="Database" itemName="table_catalog">
           85  +					<Concepts>
           86  +						<Concept name="Identifier0"/>
           87  +					</Concepts>
           88  +				</Part>
           89  +				<Part name="Schema" itemName="table_schema">
           90  +					<Concepts>
           91  +						<Concept name="Identifier1"/>
           92  +					</Concepts>
           93  +				</Part>
           94  +				<Part name="Table" itemName="table_name">
           95  +					<Concepts>
           96  +						<Concept name="Identifier2"/>
           97  +					</Concepts>
           98  +				</Part>
           99  +				<Part name="Name" itemName="column_name">
          100  +					<Concepts>
          101  +						<Concept name="Identifier3"/>
          102  +					</Concepts>
          103  +				</Part>
          104  +			</Identifier>
          105  +			<Properties>
          106  +				<Property name="Name" type="System.String" itemName="column_name"/>
          107  +				<Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          108  +					<Concepts>
          109  +						<Concept name="Ordinal">
          110  +						</Concept>
          111  +					</Concepts>
          112  +				</Property>
          113  +        <Property name="DataType" type="System.String" itemName="data_type" />
          114  +        <Property name="SystemType" type="System.String" itemName="data_type">
          115  +          <Concepts>
          116  +            <Concept name="UserDataType"/>
          117  +            <Concept name="NativeDataType"/>
          118  +            <Concept name="ProviderDataType">
          119  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          120  +            </Concept>
          121  +            <Concept name="ProviderDbType">
          122  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          123  +            </Concept>
          124  +            <Concept name="FrameworkDataType">
          125  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          126  +            </Concept>
          127  +          </Concepts>
          128  +        </Property>
          129  +        <Property name="Length" type="System.Int32" itemName='character_maximum_length'>
          130  +					<Concepts>
          131  +						<Concept name="Length"/>
          132  +					</Concepts>
          133  +				</Property>
          134  +				<Property name="Precision" type="System.Int32" itemName="numeric_precision">
          135  +					<Concepts>
          136  +						<Concept name="Precision">
          137  +						</Concept>
          138  +					</Concepts>
          139  +				</Property>
          140  +				<Property name="Scale" type="System.Int32" itemName="numeric_scale">
          141  +					<Concepts>
          142  +						<Concept name="Scale"/>
          143  +					</Concepts>
          144  +				</Property>
          145  +				<Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          146  +					<Concepts>
          147  +						<Concept name="Nullable">
          148  +						</Concept>
          149  +					</Concepts>
          150  +				</Property>
          151  +				<Property name="Default" type="System.String" itemName="column_default">
          152  +					<Concepts>
          153  +						<Concept name="Default"/>
          154  +					</Concepts>
          155  +				</Property>
          156  +        <Property name="InPrimaryKey" type="System.Boolean" itemName="primary_key"/>
          157  +      </Properties>
          158  +			<Actions>
          159  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          160  +					<Parameter value="Columns"/>
          161  +				</Action>
          162  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          163  +					<Parameter>
          164  +						<Parameter value="{2}"/>
          165  +						<Parameter value="{1}"/>
          166  +						<Parameter value="Table"/>
          167  +						<Parameter/>
          168  +						<Parameter>
          169  +							<!-- GUID_DSRefProperty_PreciseType -->
          170  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          171  +								<Parameter value="101" type="System.Int32"/> <!-- Table -->
          172  +							</Parameter>
          173  +						</Parameter>
          174  +						<Parameter>
          175  +							<Parameter>
          176  +								<Parameter value="{3}"/>
          177  +								<Parameter/>
          178  +								<Parameter value="Field"/>
          179  +								<Parameter/>
          180  +								<Parameter>
          181  +									<!-- GUID_DSRefProperty_PreciseType -->
          182  +									<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          183  +										<Parameter value="102" type="System.Int32"/> <!-- Table_Column -->
          184  +									</Parameter>
          185  +								</Parameter>
          186  +							</Parameter>
          187  +						</Parameter>
          188  +					</Parameter>
          189  +				</Action>
          190  +			</Actions>
          191  +		</Type>
          192  +
          193  +		<Type name="View" defaultSort="Database,Name">
          194  +			<Concepts>
          195  +				<Concept name="View" restrictions="{Catalog},null,{Name}"/>
          196  +			</Concepts>
          197  +			<Identifier>
          198  +				<Part name="Database" itemName="table_catalog">
          199  +					<Concepts>
          200  +						<Concept name="Identifier0"/>
          201  +					</Concepts>
          202  +				</Part>
          203  +				<Part name="Schema" itemName="table_schema">
          204  +					<Concepts>
          205  +						<Concept name="Identifier1"/>
          206  +					</Concepts>
          207  +				</Part>
          208  +				<Part name="Name" itemName="table_name">
          209  +					<Concepts>
          210  +						<Concept name="Identifier2"/>
          211  +					</Concepts>
          212  +				</Part>
          213  +			</Identifier>
          214  +			<Properties>
          215  +				<Property name="Name" type="System.String" itemName="table_name"/>
          216  +				<Property name="Schema" type="System.String" itemName="table_schema">
          217  +					<Concepts>
          218  +						<Concept name="Schema"/>
          219  +					</Concepts>
          220  +				</Property>
          221  +				<Property name="CheckOption" type="System.Boolean" itemName="check_option"/>
          222  +				<Property name="IsUpdatable" type="System.Boolean" itemName="is_updatable"/>
          223  +			</Properties>
          224  +			<Actions>
          225  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          226  +					<Parameter value="Views"/>
          227  +				</Action>
          228  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          229  +					<Parameter>
          230  +						<Parameter value="{2}"/>
          231  +						<Parameter value="{1}"/>
          232  +						<Parameter value="View"/>
          233  +						<Parameter/>
          234  +						<Parameter>
          235  +							<!-- GUID_DSRefProperty_PreciseType -->
          236  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          237  +								<Parameter value="301" type="System.Int32"/> <!-- View -->
          238  +							</Parameter>
          239  +						</Parameter>
          240  +					</Parameter>
          241  +				</Action>
          242  +			</Actions>
          243  +		</Type>
          244  +
          245  +		<!--
          246  +			Defines a type that represents a view column.
          247  +		-->
          248  +		<Type name="ViewColumn" defaultSort="Database,View,Ordinal">
          249  +			<Concepts>
          250  +				<Concept name="ViewColumn" restrictions="{Catalog},null,{View},{Name}"/>
          251  +			</Concepts>
          252  +			<Identifier>
          253  +				<Part name="Database" itemName="table_catalog">
          254  +					<Concepts>
          255  +						<Concept name="Identifier0"/>
          256  +					</Concepts>
          257  +				</Part>
          258  +				<Part name="Schema" itemName="table_schema">
          259  +					<Concepts>
          260  +						<Concept name="Identifier1"/>
          261  +					</Concepts>
          262  +				</Part>
          263  +				<Part name="View" itemName="table_name">
          264  +					<Concepts>
          265  +						<Concept name="Identifier2"/>
          266  +					</Concepts>
          267  +				</Part>
          268  +				<Part name="Name" itemName="column_name">
          269  +					<Concepts>
          270  +						<Concept name="Identifier3"/>
          271  +					</Concepts>
          272  +				</Part>
          273  +			</Identifier>
          274  +			<Properties>
          275  +				<Property name="Name" type="System.String" itemName="column_name"/>
          276  +				<Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          277  +					<Concepts>
          278  +						<Concept name="Ordinal">
          279  +						</Concept>
          280  +					</Concepts>
          281  +				</Property>
          282  +        <Property name="DataType" type="System.String" itemName="data_type" />
          283  +        <Property name="SystemType" type="System.String" itemName="data_type">
          284  +          <Concepts>
          285  +            <Concept name="UserDataType"/>
          286  +            <Concept name="NativeDataType"/>
          287  +            <Concept name="ProviderDataType">
          288  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          289  +            </Concept>
          290  +            <Concept name="ProviderDbType">
          291  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          292  +            </Concept>
          293  +            <Concept name="FrameworkDataType">
          294  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          295  +            </Concept>
          296  +          </Concepts>
          297  +        </Property>
          298  +        <Property name="Length" type="System.Int32" itemName='character_maximum_length'>
          299  +					<Concepts>
          300  +						<Concept name="Length"/>
          301  +					</Concepts>
          302  +				</Property>
          303  +				<Property name="Precision" type="System.Int32" itemName="numeric_precision">
          304  +					<Concepts>
          305  +						<Concept name="Precision">
          306  +						</Concept>
          307  +					</Concepts>
          308  +				</Property>
          309  +				<Property name="Scale" type="System.Int32" itemName="numeric_scale">
          310  +					<Concepts>
          311  +						<Concept name="Scale"/>
          312  +					</Concepts>
          313  +				</Property>
          314  +				<Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          315  +					<Concepts>
          316  +						<Concept name="Nullable">
          317  +						</Concept>
          318  +					</Concepts>
          319  +				</Property>
          320  +				<Property name="Default" type="System.String" itemName="column_default">
          321  +					<Concepts>
          322  +						<Concept name="Default"/>
          323  +					</Concepts>
          324  +				</Property>
          325  +			</Properties>
          326  +			<Actions>
          327  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          328  +					<Parameter value="Columns"/>
          329  +				</Action>
          330  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          331  +					<Parameter>
          332  +						<Parameter value="{2}"/>
          333  +						<Parameter value="{1}"/>
          334  +						<Parameter value="View"/>
          335  +						<Parameter/>
          336  +						<Parameter>
          337  +							<!-- GUID_DSRefProperty_PreciseType -->
          338  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          339  +								<Parameter value="301" type="System.Int32"/> <!-- View -->
          340  +							</Parameter>
          341  +						</Parameter>
          342  +						<Parameter>
          343  +							<Parameter>
          344  +								<Parameter value="{3}"/>
          345  +								<Parameter/>
          346  +								<Parameter value="Field"/>
          347  +								<Parameter/>
          348  +								<Parameter>
          349  +									<!-- GUID_DSRefProperty_PreciseType -->
          350  +									<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          351  +										<Parameter value="302" type="System.Int32"/> <!-- View_Column -->
          352  +									</Parameter>
          353  +								</Parameter>
          354  +							</Parameter>
          355  +						</Parameter>
          356  +					</Parameter>
          357  +				</Action>
          358  +			</Actions>
          359  +		</Type>
          360  +    <!--
          361  +			Defines a type that represents an index.
          362  +		-->
          363  +    <Type name="Index" defaultSort="Database,Table,Name">
          364  +      <Concepts>
          365  +        <Concept name="TableUniqueKey" restrictions="{Catalog},null,{Table},{Name}" filter="IsUnique = true"/>
          366  +      </Concepts>
          367  +      <Identifier>
          368  +        <Part name="Database" itemName="table_catalog">
          369  +          <Concepts>
          370  +            <Concept name="Identifier0"/>
          371  +          </Concepts>
          372  +        </Part>
          373  +        <Part name="Schema" itemName="table_schema">
          374  +          <Concepts>
          375  +            <Concept name="Identifier1"/>
          376  +          </Concepts>
          377  +        </Part>
          378  +        <Part name="Table" itemName="table_name">
          379  +          <Concepts>
          380  +            <Concept name="Identifier2"/>
          381  +          </Concepts>
          382  +        </Part>
          383  +        <Part name="Name" itemName="index_name">
          384  +          <Concepts>
          385  +            <Concept name="Identifier3"/>
          386  +          </Concepts>
          387  +        </Part>
          388  +      </Identifier>
          389  +      <Properties>
          390  +        <Property name="Name" type="System.String" itemName="index_name"/>
          391  +        <Property name="IsUnique" type="System.Boolean" itemName="UNIQUE">
          392  +          <Concepts>
          393  +            <Concept name="IsUnique"/>
          394  +          </Concepts>
          395  +        </Property>
          396  +        <Property name="IsPrimary" type="System.Boolean" itemName="PRIMARY_KEY">
          397  +          <Concepts>
          398  +            <Concept name="IsPrimary"/>
          399  +          </Concepts>
          400  +        </Property>
          401  +      </Properties>
          402  +      <Actions>
          403  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          404  +          <Parameter value="Indexes"/>
          405  +        </Action>
          406  +        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          407  +          <Parameter>
          408  +            <Parameter value="{2}"/>
          409  +            <Parameter value="{1}"/>
          410  +            <Parameter value="Table"/>
          411  +            <Parameter/>
          412  +            <Parameter>
          413  +              <!-- GUID_DSRefProperty_Qualifier -->
          414  +              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
          415  +                <Parameter value="{0}"/>
          416  +              </Parameter>
          417  +              <!-- GUID_DSRefProperty_PreciseType -->
          418  +              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          419  +                <Parameter value="101" type="System.Int32"/>
          420  +                <!-- Table -->
          421  +              </Parameter>
          422  +            </Parameter>
          423  +            <Parameter>
          424  +              <Parameter>
          425  +                <Parameter value="{3}"/>
          426  +                <Parameter/>
          427  +                <Parameter value="Index"/>
          428  +              </Parameter>
          429  +            </Parameter>
          430  +          </Parameter>
          431  +        </Action>
          432  +      </Actions>
          433  +    </Type>
          434  +
          435  +    <Type name="IndexColumn" defaultSort="Database,Table,Index,Ordinal">
          436  +      <Concepts>
          437  +        <Concept name="TableUniqueKeyColumn" restrictions="{Catalog},null,{Table},{TableUniqueKey},{Name}"/>
          438  +      </Concepts>
          439  +      <Identifier>
          440  +        <Part name="Database" itemName="table_catalog">
          441  +          <Concepts>
          442  +            <Concept name="Identifier0"/>
          443  +          </Concepts>
          444  +        </Part>
          445  +        <Part name="Schema" itemName="table_schema">
          446  +          <Concepts>
          447  +            <Concept name="Identifier1"/>
          448  +          </Concepts>
          449  +        </Part>
          450  +        <Part name="Table" itemName="table_name">
          451  +          <Concepts>
          452  +            <Concept name="Identifier2"/>
          453  +          </Concepts>
          454  +        </Part>
          455  +        <Part name="Index" itemName="index_name">
          456  +          <Concepts>
          457  +            <Concept name="Identifier3"/>
          458  +          </Concepts>
          459  +        </Part>
          460  +        <Part name="Name" itemName="column_name">
          461  +          <Concepts>
          462  +            <Concept name="Identifier4"/>
          463  +          </Concepts>
          464  +        </Part>
          465  +      </Identifier>
          466  +      <Properties>
          467  +        <Property name="Name" type="System.String" itemName="column_name"/>
          468  +        <Property name="Ordinal" type="System.Byte" itemName="ordinal_position">
          469  +          <Concepts>
          470  +            <Concept name="Ordinal">
          471  +              <Conversion>
          472  +                <ChangeType type="System.Int32"/>
          473  +              </Conversion>
          474  +            </Concept>
          475  +          </Concepts>
          476  +        </Property>
          477  +      </Properties>
          478  +      <Actions>
          479  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          480  +          <Parameter value="IndexColumns"/>
          481  +        </Action>
          482  +        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          483  +          <Parameter>
          484  +            <Parameter value="{2}"/>
          485  +            <Parameter value="{1}"/>
          486  +            <Parameter value="Table"/>
          487  +            <Parameter/>
          488  +            <Parameter>
          489  +              <!-- GUID_DSRefProperty_Qualifier -->
          490  +              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
          491  +                <Parameter value="{0}"/>
          492  +              </Parameter>
          493  +              <!-- GUID_DSRefProperty_PreciseType -->
          494  +              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          495  +                <Parameter value="101" type="System.Int32"/>
          496  +                <!-- Table -->
          497  +              </Parameter>
          498  +            </Parameter>
          499  +            <Parameter>
          500  +              <Parameter>
          501  +                <Parameter value="{3}"/>
          502  +                <Parameter/>
          503  +                <Parameter value="Index"/>
          504  +                <Parameter/>
          505  +                <Parameter/>
          506  +                <Parameter>
          507  +                  <Parameter>
          508  +                    <Parameter value="{4}"/>
          509  +                    <Parameter/>
          510  +                    <Parameter value="Field"/>
          511  +                  </Parameter>
          512  +                </Parameter>
          513  +              </Parameter>
          514  +            </Parameter>
          515  +          </Parameter>
          516  +        </Action>
          517  +      </Actions>
          518  +    </Type>
          519  +
          520  +    <Type name="Triggers" defaultSort="Database,Table,Name">
          521  +      <Concepts>
          522  +        <Concept name="TableTriggers" restrictions="{Catalog},null,{Table},{Name}"/>
          523  +      </Concepts>
          524  +      <Identifier>
          525  +        <Part name="Database" itemName="table_catalog">
          526  +          <Concepts>
          527  +            <Concept name="Identifier0"/>
          528  +          </Concepts>
          529  +        </Part>
          530  +        <Part name="Schema" itemName="table_schema">
          531  +          <Concepts>
          532  +            <Concept name="Identifier1"/>
          533  +          </Concepts>
          534  +        </Part>
          535  +        <Part name="Table" itemName="table_name">
          536  +          <Concepts>
          537  +            <Concept name="Identifier2"/>
          538  +          </Concepts>
          539  +        </Part>
          540  +        <Part name="Name" itemName="trigger_name">
          541  +          <Concepts>
          542  +            <Concept name="Identifier3"/>
          543  +          </Concepts>
          544  +        </Part>
          545  +      </Identifier>
          546  +      <Properties>
          547  +        <Property name="Name" type="System.String" itemName="trigger_name"/>
          548  +      </Properties>
          549  +      <Actions>
          550  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          551  +          <Parameter value="Triggers"/>
          552  +        </Action>
          553  +      </Actions>
          554  +    </Type>
          555  +
          556  +    <Type name="ForeignKey" defaultSort="Database,Table,Name">
          557  +      <Concepts>
          558  +        <Concept name="TableForeignKey" restrictions="{Catalog},null,{Table},{Name}"/>
          559  +      </Concepts>
          560  +      <Identifier>
          561  +        <Part name="Database" itemName="table_catalog">
          562  +          <Concepts>
          563  +            <Concept name="Identifier0"/>
          564  +          </Concepts>
          565  +        </Part>
          566  +        <Part name="Schema" itemName="table_schema">
          567  +          <Concepts>
          568  +            <Concept name="Identifier1"/>
          569  +          </Concepts>
          570  +        </Part>
          571  +        <Part name="Table" itemName="table_name">
          572  +          <Concepts>
          573  +            <Concept name="Identifier2"/>
          574  +          </Concepts>
          575  +        </Part>
          576  +        <Part name="Name" itemName="constraint_name">
          577  +          <Concepts>
          578  +            <Concept name="Identifier3"/>
          579  +          </Concepts>
          580  +        </Part>
          581  +      </Identifier>
          582  +      <Properties>
          583  +        <Property name="Name" type="System.String" itemName="constraint_name"/>
          584  +        <Property name="ReferencedColumnName" type="System.String" itemName="fkey_to_column"/>
          585  +        <Property name="ColumnName" type="System.String" itemName="fkey_from_column"/>
          586  +        <Property name="ReferencedTableDatabase" type="System.String" itemName="fkey_to_catalog">
          587  +          <Concepts>
          588  +            <Concept name="ReferencedTableId0"/>
          589  +          </Concepts>
          590  +        </Property>
          591  +        <Property name="ReferencedTableSchema" type="System.String" itemName="fkey_to_schema">
          592  +          <Concepts>
          593  +            <Concept name="ReferencedTableId1"/>
          594  +          </Concepts>
          595  +        </Property>
          596  +        <Property name="ReferencedTableName" type="System.String" itemName="fkey_to_table">
          597  +          <Concepts>
          598  +            <Concept name="ReferencedTableId2"/>
          599  +          </Concepts>
          600  +        </Property>
          601  +      </Properties>
          602  +      <Actions>
          603  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          604  +          <Parameter value="ForeignKeys"/>
          605  +        </Action>
          606  +      </Actions>
          607  +    </Type>
          608  +
          609  +    <Type name="ForeignKeyColumn" defaultSort="Database,Table,ForeignKey,Ordinal">
          610  +      <Concepts>
          611  +        <Concept name="TableForeignKeyColumn" restrictions="{Catalog},null,{Table},{TableForeignKey},{Name}"/>
          612  +      </Concepts>
          613  +      <Identifier>
          614  +        <Part name="Database" itemName="table_catalog">
          615  +          <Concepts>
          616  +            <Concept name="Identifier0"/>
          617  +          </Concepts>
          618  +        </Part>
          619  +        <Part name="Schema" itemName="table_schema">
          620  +          <Concepts>
          621  +            <Concept name="Identifier1"/>
          622  +          </Concepts>
          623  +        </Part>
          624  +        <Part name="Table" itemName="table_name">
          625  +          <Concepts>
          626  +            <Concept name="Identifier2"/>
          627  +          </Concepts>
          628  +        </Part>
          629  +        <Part name="ForeignKey" itemName="constraint_name">
          630  +          <Concepts>
          631  +            <Concept name="Identifier3"/>
          632  +          </Concepts>
          633  +        </Part>
          634  +        <Part name="Name" itemName="fkey_from_column">
          635  +          <Concepts>
          636  +            <Concept name="Identifier4"/>
          637  +          </Concepts>
          638  +        </Part>
          639  +      </Identifier>
          640  +      <Properties>
          641  +        <Property name="Name" type="System.String" itemName="fkey_from_column"/>
          642  +        <Property name="Ordinal" type="System.Int32" itemName="fkey_from_ordinal_position">
          643  +          <Concepts>
          644  +            <Concept name="Ordinal"/>
          645  +          </Concepts>
          646  +        </Property>
          647  +        <Property name="ReferencedColumnName" type="System.String" itemName="fkey_to_column">
          648  +          <Concepts>
          649  +            <Concept name="ReferencedTableColumn"/>
          650  +          </Concepts>
          651  +        </Property>
          652  +      </Properties>
          653  +      <Actions>
          654  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          655  +          <Parameter value="ForeignKeys"/>
          656  +        </Action>
          657  +      </Actions>
          658  +    </Type>
          659  +  </Types>
          660  +</VSDataObjectSupport>

Added SQLite.Designer/SQLiteDataObjectSupport2010.xml.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +
            3  +<!--
            4  +/********************************************************
            5  + * ADO.NET 2.0 Data Provider for SQLite Version 3.X
            6  + * Written by Robert Simpson (robert@blackcastlesoft.com)
            7  + *
            8  + * Released to the public domain, use at your own risk!
            9  + ********************************************************/
           10  +-->
           11  +
           12  +<VSDataObjectSupport xmlns="http://tempuri.org/VSDataObjectSupport.xsd">
           13  +	<Types>
           14  +		<RootType>
           15  +			<Properties>
           16  +        <Property name="Server" type="System.String" itemName="DataSource"/>
           17  +        <Property name="Database" type="System.String" itemName="Database"/>
           18  +      </Properties>
           19  +			<Actions>
           20  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetRootObjectEnumerator"/>
           21  +			</Actions>
           22  +		</RootType>
           23  +
           24  +		<Type name="Table" defaultSort="Database,Name">
           25  +			<Concepts>
           26  +				<Concept name="Table" restrictions="{Catalog},null,{Name}"/>
           27  +			</Concepts>
           28  +			<Identifier>
           29  +				<Part name="Database" itemName="table_catalog">
           30  +					<Concepts>
           31  +						<Concept name="Identifier0"/>
           32  +					</Concepts>
           33  +				</Part>
           34  +				<Part name="Schema" itemName="table_schema">
           35  +					<Concepts>
           36  +						<Concept name="Identifier1"/>
           37  +					</Concepts>
           38  +				</Part>
           39  +				<Part name="Name" itemName="table_name">
           40  +					<Concepts>
           41  +						<Concept name="Identifier2"/>
           42  +					</Concepts>
           43  +				</Part>
           44  +			</Identifier>
           45  +			<Properties>
           46  +				<Property name="Name" type="System.String" itemName="table_name"/>
           47  +				<Property name="Schema" type="System.String" itemName="table_schema"/>
           48  +        <Property name="Type" type="System.String" itemName="table_type">
           49  +          <Concepts>
           50  +            <Concept name="Type">
           51  +              <Conversion>
           52  +                <Calculate expr="IIF({0}='TABLE','USER','SYSTEM')" type="System.String"/>
           53  +              </Conversion>
           54  +            </Concept>
           55  +          </Concepts>
           56  +        </Property>
           57  +      </Properties>
           58  +			<Actions>
           59  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
           60  +					<Parameter value="Tables"/>
           61  +				</Action>
           62  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
           63  +					<Parameter>
           64  +						<Parameter value="{2}"/>
           65  +						<Parameter value="{1}"/>
           66  +						<Parameter value="Table"/>
           67  +						<Parameter/>
           68  +						<Parameter>
           69  +							<!-- GUID_DSRefProperty_PreciseType -->
           70  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
           71  +								<Parameter value="101" type="System.Int32"/> <!-- Table -->
           72  +							</Parameter>
           73  +						</Parameter>
           74  +					</Parameter>
           75  +				</Action>
           76  +			</Actions>
           77  +		</Type>
           78  +
           79  +		<Type name="TableColumn" defaultSort="Database,Table,Ordinal">
           80  +			<Concepts>
           81  +				<Concept name="TableColumn" restrictions="{Catalog},null,{Table},{Name}"/>
           82  +			</Concepts>
           83  +			<Identifier>
           84  +				<Part name="Database" itemName="table_catalog">
           85  +					<Concepts>
           86  +						<Concept name="Identifier0"/>
           87  +					</Concepts>
           88  +				</Part>
           89  +				<Part name="Schema" itemName="table_schema">
           90  +					<Concepts>
           91  +						<Concept name="Identifier1"/>
           92  +					</Concepts>
           93  +				</Part>
           94  +				<Part name="Table" itemName="table_name">
           95  +					<Concepts>
           96  +						<Concept name="Identifier2"/>
           97  +					</Concepts>
           98  +				</Part>
           99  +				<Part name="Name" itemName="column_name">
          100  +					<Concepts>
          101  +						<Concept name="Identifier3"/>
          102  +					</Concepts>
          103  +				</Part>
          104  +			</Identifier>
          105  +			<Properties>
          106  +				<Property name="Name" type="System.String" itemName="column_name"/>
          107  +				<Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          108  +					<Concepts>
          109  +						<Concept name="Ordinal">
          110  +						</Concept>
          111  +					</Concepts>
          112  +				</Property>
          113  +        <Property name="DataType" type="System.String" itemName="data_type" />
          114  +        <Property name="SystemType" type="System.String" itemName="data_type">
          115  +          <Concepts>
          116  +            <Concept name="UserDataType"/>
          117  +            <Concept name="NativeDataType"/>
          118  +            <Concept name="ProviderDataType">
          119  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          120  +            </Concept>
          121  +            <Concept name="ProviderDbType">
          122  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          123  +            </Concept>
          124  +            <Concept name="FrameworkDataType">
          125  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          126  +            </Concept>
          127  +          </Concepts>
          128  +        </Property>
          129  +        <Property name="Length" type="System.Int32" itemName='character_maximum_length'>
          130  +					<Concepts>
          131  +						<Concept name="Length"/>
          132  +					</Concepts>
          133  +				</Property>
          134  +				<Property name="Precision" type="System.Int32" itemName="numeric_precision">
          135  +					<Concepts>
          136  +						<Concept name="Precision">
          137  +						</Concept>
          138  +					</Concepts>
          139  +				</Property>
          140  +				<Property name="Scale" type="System.Int32" itemName="numeric_scale">
          141  +					<Concepts>
          142  +						<Concept name="Scale"/>
          143  +					</Concepts>
          144  +				</Property>
          145  +				<Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          146  +					<Concepts>
          147  +						<Concept name="Nullable">
          148  +						</Concept>
          149  +					</Concepts>
          150  +				</Property>
          151  +				<Property name="Default" type="System.String" itemName="column_default">
          152  +					<Concepts>
          153  +						<Concept name="Default"/>
          154  +					</Concepts>
          155  +				</Property>
          156  +        <Property name="InPrimaryKey" type="System.Boolean" itemName="primary_key"/>
          157  +      </Properties>
          158  +			<Actions>
          159  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          160  +					<Parameter value="Columns"/>
          161  +				</Action>
          162  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          163  +					<Parameter>
          164  +						<Parameter value="{2}"/>
          165  +						<Parameter value="{1}"/>
          166  +						<Parameter value="Table"/>
          167  +						<Parameter/>
          168  +						<Parameter>
          169  +							<!-- GUID_DSRefProperty_PreciseType -->
          170  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          171  +								<Parameter value="101" type="System.Int32"/> <!-- Table -->
          172  +							</Parameter>
          173  +						</Parameter>
          174  +						<Parameter>
          175  +							<Parameter>
          176  +								<Parameter value="{3}"/>
          177  +								<Parameter/>
          178  +								<Parameter value="Field"/>
          179  +								<Parameter/>
          180  +								<Parameter>
          181  +									<!-- GUID_DSRefProperty_PreciseType -->
          182  +									<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          183  +										<Parameter value="102" type="System.Int32"/> <!-- Table_Column -->
          184  +									</Parameter>
          185  +								</Parameter>
          186  +							</Parameter>
          187  +						</Parameter>
          188  +					</Parameter>
          189  +				</Action>
          190  +			</Actions>
          191  +		</Type>
          192  +
          193  +		<Type name="View" defaultSort="Database,Name">
          194  +			<Concepts>
          195  +				<Concept name="View" restrictions="{Catalog},null,{Name}"/>
          196  +			</Concepts>
          197  +			<Identifier>
          198  +				<Part name="Database" itemName="table_catalog">
          199  +					<Concepts>
          200  +						<Concept name="Identifier0"/>
          201  +					</Concepts>
          202  +				</Part>
          203  +				<Part name="Schema" itemName="table_schema">
          204  +					<Concepts>
          205  +						<Concept name="Identifier1"/>
          206  +					</Concepts>
          207  +				</Part>
          208  +				<Part name="Name" itemName="table_name">
          209  +					<Concepts>
          210  +						<Concept name="Identifier2"/>
          211  +					</Concepts>
          212  +				</Part>
          213  +			</Identifier>
          214  +			<Properties>
          215  +				<Property name="Name" type="System.String" itemName="table_name"/>
          216  +				<Property name="Schema" type="System.String" itemName="table_schema">
          217  +					<Concepts>
          218  +						<Concept name="Schema"/>
          219  +					</Concepts>
          220  +				</Property>
          221  +				<Property name="CheckOption" type="System.Boolean" itemName="check_option"/>
          222  +				<Property name="IsUpdatable" type="System.Boolean" itemName="is_updatable"/>
          223  +			</Properties>
          224  +			<Actions>
          225  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          226  +					<Parameter value="Views"/>
          227  +				</Action>
          228  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          229  +					<Parameter>
          230  +						<Parameter value="{2}"/>
          231  +						<Parameter value="{1}"/>
          232  +						<Parameter value="View"/>
          233  +						<Parameter/>
          234  +						<Parameter>
          235  +							<!-- GUID_DSRefProperty_PreciseType -->
          236  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          237  +								<Parameter value="301" type="System.Int32"/> <!-- View -->
          238  +							</Parameter>
          239  +						</Parameter>
          240  +					</Parameter>
          241  +				</Action>
          242  +			</Actions>
          243  +		</Type>
          244  +
          245  +		<!--
          246  +			Defines a type that represents a view column.
          247  +		-->
          248  +		<Type name="ViewColumn" defaultSort="Database,View,Ordinal">
          249  +			<Concepts>
          250  +				<Concept name="ViewColumn" restrictions="{Catalog},null,{View},{Name}"/>
          251  +			</Concepts>
          252  +			<Identifier>
          253  +				<Part name="Database" itemName="table_catalog">
          254  +					<Concepts>
          255  +						<Concept name="Identifier0"/>
          256  +					</Concepts>
          257  +				</Part>
          258  +				<Part name="Schema" itemName="table_schema">
          259  +					<Concepts>
          260  +						<Concept name="Identifier1"/>
          261  +					</Concepts>
          262  +				</Part>
          263  +				<Part name="View" itemName="table_name">
          264  +					<Concepts>
          265  +						<Concept name="Identifier2"/>
          266  +					</Concepts>
          267  +				</Part>
          268  +				<Part name="Name" itemName="column_name">
          269  +					<Concepts>
          270  +						<Concept name="Identifier3"/>
          271  +					</Concepts>
          272  +				</Part>
          273  +			</Identifier>
          274  +			<Properties>
          275  +				<Property name="Name" type="System.String" itemName="column_name"/>
          276  +				<Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          277  +					<Concepts>
          278  +						<Concept name="Ordinal">
          279  +						</Concept>
          280  +					</Concepts>
          281  +				</Property>
          282  +        <Property name="DataType" type="System.String" itemName="data_type" />
          283  +        <Property name="SystemType" type="System.String" itemName="data_type">
          284  +          <Concepts>
          285  +            <Concept name="UserDataType"/>
          286  +            <Concept name="NativeDataType"/>
          287  +            <Concept name="ProviderDataType">
          288  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          289  +            </Concept>
          290  +            <Concept name="ProviderDbType">
          291  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          292  +            </Concept>
          293  +            <Concept name="FrameworkDataType">
          294  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          295  +            </Concept>
          296  +          </Concepts>
          297  +        </Property>
          298  +        <Property name="Length" type="System.Int32" itemName='character_maximum_length'>
          299  +					<Concepts>
          300  +						<Concept name="Length"/>
          301  +					</Concepts>
          302  +				</Property>
          303  +				<Property name="Precision" type="System.Int32" itemName="numeric_precision">
          304  +					<Concepts>
          305  +						<Concept name="Precision">
          306  +						</Concept>
          307  +					</Concepts>
          308  +				</Property>
          309  +				<Property name="Scale" type="System.Int32" itemName="numeric_scale">
          310  +					<Concepts>
          311  +						<Concept name="Scale"/>
          312  +					</Concepts>
          313  +				</Property>
          314  +				<Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          315  +					<Concepts>
          316  +						<Concept name="Nullable">
          317  +						</Concept>
          318  +					</Concepts>
          319  +				</Property>
          320  +				<Property name="Default" type="System.String" itemName="column_default">
          321  +					<Concepts>
          322  +						<Concept name="Default"/>
          323  +					</Concepts>
          324  +				</Property>
          325  +			</Properties>
          326  +			<Actions>
          327  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          328  +					<Parameter value="Columns"/>
          329  +				</Action>
          330  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          331  +					<Parameter>
          332  +						<Parameter value="{2}"/>
          333  +						<Parameter value="{1}"/>
          334  +						<Parameter value="View"/>
          335  +						<Parameter/>
          336  +						<Parameter>
          337  +							<!-- GUID_DSRefProperty_PreciseType -->
          338  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          339  +								<Parameter value="301" type="System.Int32"/> <!-- View -->
          340  +							</Parameter>
          341  +						</Parameter>
          342  +						<Parameter>
          343  +							<Parameter>
          344  +								<Parameter value="{3}"/>
          345  +								<Parameter/>
          346  +								<Parameter value="Field"/>
          347  +								<Parameter/>
          348  +								<Parameter>
          349  +									<!-- GUID_DSRefProperty_PreciseType -->
          350  +									<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          351  +										<Parameter value="302" type="System.Int32"/> <!-- View_Column -->
          352  +									</Parameter>
          353  +								</Parameter>
          354  +							</Parameter>
          355  +						</Parameter>
          356  +					</Parameter>
          357  +				</Action>
          358  +			</Actions>
          359  +		</Type>
          360  +    <!--
          361  +			Defines a type that represents an index.
          362  +		-->
          363  +    <Type name="Index" defaultSort="Database,Table,Name">
          364  +      <Concepts>
          365  +        <Concept name="TableUniqueKey" restrictions="{Catalog},null,{Table},{Name}" filter="IsUnique = true"/>
          366  +      </Concepts>
          367  +      <Identifier>
          368  +        <Part name="Database" itemName="table_catalog">
          369  +          <Concepts>
          370  +            <Concept name="Identifier0"/>
          371  +          </Concepts>
          372  +        </Part>
          373  +        <Part name="Schema" itemName="table_schema">
          374  +          <Concepts>
          375  +            <Concept name="Identifier1"/>
          376  +          </Concepts>
          377  +        </Part>
          378  +        <Part name="Table" itemName="table_name">
          379  +          <Concepts>
          380  +            <Concept name="Identifier2"/>
          381  +          </Concepts>
          382  +        </Part>
          383  +        <Part name="Name" itemName="index_name">
          384  +          <Concepts>
          385  +            <Concept name="Identifier3"/>
          386  +          </Concepts>
          387  +        </Part>
          388  +      </Identifier>
          389  +      <Properties>
          390  +        <Property name="Name" type="System.String" itemName="index_name"/>
          391  +        <Property name="IsUnique" type="System.Boolean" itemName="UNIQUE">
          392  +          <Concepts>
          393  +            <Concept name="IsUnique"/>
          394  +          </Concepts>
          395  +        </Property>
          396  +        <Property name="IsPrimary" type="System.Boolean" itemName="PRIMARY_KEY">
          397  +          <Concepts>
          398  +            <Concept name="IsPrimary"/>
          399  +          </Concepts>
          400  +        </Property>
          401  +      </Properties>
          402  +      <Actions>
          403  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          404  +          <Parameter value="Indexes"/>
          405  +        </Action>
          406  +        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          407  +          <Parameter>
          408  +            <Parameter value="{2}"/>
          409  +            <Parameter value="{1}"/>
          410  +            <Parameter value="Table"/>
          411  +            <Parameter/>
          412  +            <Parameter>
          413  +              <!-- GUID_DSRefProperty_Qualifier -->
          414  +              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
          415  +                <Parameter value="{0}"/>
          416  +              </Parameter>
          417  +              <!-- GUID_DSRefProperty_PreciseType -->
          418  +              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          419  +                <Parameter value="101" type="System.Int32"/>
          420  +                <!-- Table -->
          421  +              </Parameter>
          422  +            </Parameter>
          423  +            <Parameter>
          424  +              <Parameter>
          425  +                <Parameter value="{3}"/>
          426  +                <Parameter/>
          427  +                <Parameter value="Index"/>
          428  +              </Parameter>
          429  +            </Parameter>
          430  +          </Parameter>
          431  +        </Action>
          432  +      </Actions>
          433  +    </Type>
          434  +
          435  +    <Type name="IndexColumn" defaultSort="Database,Table,Index,Ordinal">
          436  +      <Concepts>
          437  +        <Concept name="TableUniqueKeyColumn" restrictions="{Catalog},null,{Table},{TableUniqueKey},{Name}"/>
          438  +      </Concepts>
          439  +      <Identifier>
          440  +        <Part name="Database" itemName="table_catalog">
          441  +          <Concepts>
          442  +            <Concept name="Identifier0"/>
          443  +          </Concepts>
          444  +        </Part>
          445  +        <Part name="Schema" itemName="table_schema">
          446  +          <Concepts>
          447  +            <Concept name="Identifier1"/>
          448  +          </Concepts>
          449  +        </Part>
          450  +        <Part name="Table" itemName="table_name">
          451  +          <Concepts>
          452  +            <Concept name="Identifier2"/>
          453  +          </Concepts>
          454  +        </Part>
          455  +        <Part name="Index" itemName="index_name">
          456  +          <Concepts>
          457  +            <Concept name="Identifier3"/>
          458  +          </Concepts>
          459  +        </Part>
          460  +        <Part name="Name" itemName="column_name">
          461  +          <Concepts>
          462  +            <Concept name="Identifier4"/>
          463  +          </Concepts>
          464  +        </Part>
          465  +      </Identifier>
          466  +      <Properties>
          467  +        <Property name="Name" type="System.String" itemName="column_name"/>
          468  +        <Property name="Ordinal" type="System.Byte" itemName="ordinal_position">
          469  +          <Concepts>
          470  +            <Concept name="Ordinal">
          471  +              <Conversion>
          472  +                <ChangeType type="System.Int32"/>
          473  +              </Conversion>
          474  +            </Concept>
          475  +          </Concepts>
          476  +        </Property>
          477  +      </Properties>
          478  +      <Actions>
          479  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          480  +          <Parameter value="IndexColumns"/>
          481  +        </Action>
          482  +        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          483  +          <Parameter>
          484  +            <Parameter value="{2}"/>
          485  +            <Parameter value="{1}"/>
          486  +            <Parameter value="Table"/>
          487  +            <Parameter/>
          488  +            <Parameter>
          489  +              <!-- GUID_DSRefProperty_Qualifier -->
          490  +              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
          491  +                <Parameter value="{0}"/>
          492  +              </Parameter>
          493  +              <!-- GUID_DSRefProperty_PreciseType -->
          494  +              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          495  +                <Parameter value="101" type="System.Int32"/>
          496  +                <!-- Table -->
          497  +              </Parameter>
          498  +            </Parameter>
          499  +            <Parameter>
          500  +              <Parameter>
          501  +                <Parameter value="{3}"/>
          502  +                <Parameter/>
          503  +                <Parameter value="Index"/>
          504  +                <Parameter/>
          505  +                <Parameter/>
          506  +                <Parameter>
          507  +                  <Parameter>
          508  +                    <Parameter value="{4}"/>
          509  +                    <Parameter/>
          510  +                    <Parameter value="Field"/>
          511  +                  </Parameter>
          512  +                </Parameter>
          513  +              </Parameter>
          514  +            </Parameter>
          515  +          </Parameter>
          516  +        </Action>
          517  +      </Actions>
          518  +    </Type>
          519  +
          520  +    <Type name="Triggers" defaultSort="Database,Table,Name">
          521  +      <Concepts>
          522  +        <Concept name="TableTriggers" restrictions="{Catalog},null,{Table},{Name}"/>
          523  +      </Concepts>
          524  +      <Identifier>
          525  +        <Part name="Database" itemName="table_catalog">
          526  +          <Concepts>
          527  +            <Concept name="Identifier0"/>
          528  +          </Concepts>
          529  +        </Part>
          530  +        <Part name="Schema" itemName="table_schema">
          531  +          <Concepts>
          532  +            <Concept name="Identifier1"/>
          533  +          </Concepts>
          534  +        </Part>
          535  +        <Part name="Table" itemName="table_name">
          536  +          <Concepts>
          537  +            <Concept name="Identifier2"/>
          538  +          </Concepts>
          539  +        </Part>
          540  +        <Part name="Name" itemName="trigger_name">
          541  +          <Concepts>
          542  +            <Concept name="Identifier3"/>
          543  +          </Concepts>
          544  +        </Part>
          545  +      </Identifier>
          546  +      <Properties>
          547  +        <Property name="Name" type="System.String" itemName="trigger_name"/>
          548  +      </Properties>
          549  +      <Actions>
          550  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          551  +          <Parameter value="Triggers"/>
          552  +        </Action>
          553  +      </Actions>
          554  +    </Type>
          555  +
          556  +    <Type name="ForeignKey" defaultSort="Database,Table,Name">
          557  +      <Concepts>
          558  +        <Concept name="TableForeignKey" restrictions="{Catalog},null,{Table},{Name}"/>
          559  +      </Concepts>
          560  +      <Identifier>
          561  +        <Part name="Database" itemName="table_catalog">
          562  +          <Concepts>
          563  +            <Concept name="Identifier0"/>
          564  +          </Concepts>
          565  +        </Part>
          566  +        <Part name="Schema" itemName="table_schema">
          567  +          <Concepts>
          568  +            <Concept name="Identifier1"/>
          569  +          </Concepts>
          570  +        </Part>
          571  +        <Part name="Table" itemName="table_name">
          572  +          <Concepts>
          573  +            <Concept name="Identifier2"/>
          574  +          </Concepts>
          575  +        </Part>
          576  +        <Part name="Name" itemName="constraint_name">
          577  +          <Concepts>
          578  +            <Concept name="Identifier3"/>
          579  +          </Concepts>
          580  +        </Part>
          581  +      </Identifier>
          582  +      <Properties>
          583  +        <Property name="Name" type="System.String" itemName="constraint_name"/>
          584  +        <Property name="ReferencedColumnName" type="System.String" itemName="fkey_to_column"/>
          585  +        <Property name="ColumnName" type="System.String" itemName="fkey_from_column"/>
          586  +        <Property name="ReferencedTableDatabase" type="System.String" itemName="fkey_to_catalog">
          587  +          <Concepts>
          588  +            <Concept name="ReferencedTableId0"/>
          589  +          </Concepts>
          590  +        </Property>
          591  +        <Property name="ReferencedTableSchema" type="System.String" itemName="fkey_to_schema">
          592  +          <Concepts>
          593  +            <Concept name="ReferencedTableId1"/>
          594  +          </Concepts>
          595  +        </Property>
          596  +        <Property name="ReferencedTableName" type="System.String" itemName="fkey_to_table">
          597  +          <Concepts>
          598  +            <Concept name="ReferencedTableId2"/>
          599  +          </Concepts>
          600  +        </Property>
          601  +      </Properties>
          602  +      <Actions>
          603  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          604  +          <Parameter value="ForeignKeys"/>
          605  +        </Action>
          606  +      </Actions>
          607  +    </Type>
          608  +
          609  +    <Type name="ForeignKeyColumn" defaultSort="Database,Table,ForeignKey,Ordinal">
          610  +      <Concepts>
          611  +        <Concept name="TableForeignKeyColumn" restrictions="{Catalog},null,{Table},{TableForeignKey},{Name}"/>
          612  +      </Concepts>
          613  +      <Identifier>
          614  +        <Part name="Database" itemName="table_catalog">
          615  +          <Concepts>
          616  +            <Concept name="Identifier0"/>
          617  +          </Concepts>
          618  +        </Part>
          619  +        <Part name="Schema" itemName="table_schema">
          620  +          <Concepts>
          621  +            <Concept name="Identifier1"/>
          622  +          </Concepts>
          623  +        </Part>
          624  +        <Part name="Table" itemName="table_name">
          625  +          <Concepts>
          626  +            <Concept name="Identifier2"/>
          627  +          </Concepts>
          628  +        </Part>
          629  +        <Part name="ForeignKey" itemName="constraint_name">
          630  +          <Concepts>
          631  +            <Concept name="Identifier3"/>
          632  +          </Concepts>
          633  +        </Part>
          634  +        <Part name="Name" itemName="fkey_from_column">
          635  +          <Concepts>
          636  +            <Concept name="Identifier4"/>
          637  +          </Concepts>
          638  +        </Part>
          639  +      </Identifier>
          640  +      <Properties>
          641  +        <Property name="Name" type="System.String" itemName="fkey_from_column"/>
          642  +        <Property name="Ordinal" type="System.Int32" itemName="fkey_from_ordinal_position">
          643  +          <Concepts>
          644  +            <Concept name="Ordinal"/>
          645  +          </Concepts>
          646  +        </Property>
          647  +        <Property name="ReferencedColumnName" type="System.String" itemName="fkey_to_column">
          648  +          <Concepts>
          649  +            <Concept name="ReferencedTableColumn"/>
          650  +          </Concepts>
          651  +        </Property>
          652  +      </Properties>
          653  +      <Actions>
          654  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          655  +          <Parameter value="ForeignKeys"/>
          656  +        </Action>
          657  +      </Actions>
          658  +    </Type>
          659  +  </Types>
          660  +</VSDataObjectSupport>

Added SQLite.Designer/SQLiteDataObjectSupport2012.xml.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +
            3  +<!--
            4  +/********************************************************
            5  + * ADO.NET 2.0 Data Provider for SQLite Version 3.X
            6  + * Written by Robert Simpson (robert@blackcastlesoft.com)
            7  + *
            8  + * Released to the public domain, use at your own risk!
            9  + ********************************************************/
           10  +-->
           11  +
           12  +<VSDataObjectSupport xmlns="http://tempuri.org/VSDataObjectSupport.xsd">
           13  +	<Types>
           14  +		<RootType>
           15  +			<Properties>
           16  +        <Property name="Server" type="System.String" itemName="DataSource"/>
           17  +        <Property name="Database" type="System.String" itemName="Database"/>
           18  +      </Properties>
           19  +			<Actions>
           20  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetRootObjectEnumerator"/>
           21  +			</Actions>
           22  +		</RootType>
           23  +
           24  +		<Type name="Table" defaultSort="Database,Name">
           25  +			<Concepts>
           26  +				<Concept name="Table" restrictions="{Catalog},null,{Name}"/>
           27  +			</Concepts>
           28  +			<Identifier>
           29  +				<Part name="Database" itemName="table_catalog">
           30  +					<Concepts>
           31  +						<Concept name="Identifier0"/>
           32  +					</Concepts>
           33  +				</Part>
           34  +				<Part name="Schema" itemName="table_schema">
           35  +					<Concepts>
           36  +						<Concept name="Identifier1"/>
           37  +					</Concepts>
           38  +				</Part>
           39  +				<Part name="Name" itemName="table_name">
           40  +					<Concepts>
           41  +						<Concept name="Identifier2"/>
           42  +					</Concepts>
           43  +				</Part>
           44  +			</Identifier>
           45  +			<Properties>
           46  +				<Property name="Name" type="System.String" itemName="table_name"/>
           47  +				<Property name="Schema" type="System.String" itemName="table_schema"/>
           48  +        <Property name="Type" type="System.String" itemName="table_type">
           49  +          <Concepts>
           50  +            <Concept name="Type">
           51  +              <Conversion>
           52  +                <Calculate expr="IIF({0}='TABLE','USER','SYSTEM')" type="System.String"/>
           53  +              </Conversion>
           54  +            </Concept>
           55  +          </Concepts>
           56  +        </Property>
           57  +      </Properties>
           58  +			<Actions>
           59  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
           60  +					<Parameter value="Tables"/>
           61  +				</Action>
           62  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
           63  +					<Parameter>
           64  +						<Parameter value="{2}"/>
           65  +						<Parameter value="{1}"/>
           66  +						<Parameter value="Table"/>
           67  +						<Parameter/>
           68  +						<Parameter>
           69  +							<!-- GUID_DSRefProperty_PreciseType -->
           70  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
           71  +								<Parameter value="101" type="System.Int32"/> <!-- Table -->
           72  +							</Parameter>
           73  +						</Parameter>
           74  +					</Parameter>
           75  +				</Action>
           76  +			</Actions>
           77  +		</Type>
           78  +
           79  +		<Type name="TableColumn" defaultSort="Database,Table,Ordinal">
           80  +			<Concepts>
           81  +				<Concept name="TableColumn" restrictions="{Catalog},null,{Table},{Name}"/>
           82  +			</Concepts>
           83  +			<Identifier>
           84  +				<Part name="Database" itemName="table_catalog">
           85  +					<Concepts>
           86  +						<Concept name="Identifier0"/>
           87  +					</Concepts>
           88  +				</Part>
           89  +				<Part name="Schema" itemName="table_schema">
           90  +					<Concepts>
           91  +						<Concept name="Identifier1"/>
           92  +					</Concepts>
           93  +				</Part>
           94  +				<Part name="Table" itemName="table_name">
           95  +					<Concepts>
           96  +						<Concept name="Identifier2"/>
           97  +					</Concepts>
           98  +				</Part>
           99  +				<Part name="Name" itemName="column_name">
          100  +					<Concepts>
          101  +						<Concept name="Identifier3"/>
          102  +					</Concepts>
          103  +				</Part>
          104  +			</Identifier>
          105  +			<Properties>
          106  +				<Property name="Name" type="System.String" itemName="column_name"/>
          107  +				<Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          108  +					<Concepts>
          109  +						<Concept name="Ordinal">
          110  +						</Concept>
          111  +					</Concepts>
          112  +				</Property>
          113  +        <Property name="DataType" type="System.String" itemName="data_type" />
          114  +        <Property name="SystemType" type="System.String" itemName="data_type">
          115  +          <Concepts>
          116  +            <Concept name="UserDataType"/>
          117  +            <Concept name="NativeDataType"/>
          118  +            <Concept name="ProviderDataType">
          119  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          120  +            </Concept>
          121  +            <Concept name="ProviderDbType">
          122  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          123  +            </Concept>
          124  +            <Concept name="FrameworkDataType">
          125  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          126  +            </Concept>
          127  +          </Concepts>
          128  +        </Property>
          129  +        <Property name="Length" type="System.Int32" itemName='character_maximum_length'>
          130  +					<Concepts>
          131  +						<Concept name="Length"/>
          132  +					</Concepts>
          133  +				</Property>
          134  +				<Property name="Precision" type="System.Int32" itemName="numeric_precision">
          135  +					<Concepts>
          136  +						<Concept name="Precision">
          137  +						</Concept>
          138  +					</Concepts>
          139  +				</Property>
          140  +				<Property name="Scale" type="System.Int32" itemName="numeric_scale">
          141  +					<Concepts>
          142  +						<Concept name="Scale"/>
          143  +					</Concepts>
          144  +				</Property>
          145  +				<Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          146  +					<Concepts>
          147  +						<Concept name="Nullable">
          148  +						</Concept>
          149  +					</Concepts>
          150  +				</Property>
          151  +				<Property name="Default" type="System.String" itemName="column_default">
          152  +					<Concepts>
          153  +						<Concept name="Default"/>
          154  +					</Concepts>
          155  +				</Property>
          156  +        <Property name="InPrimaryKey" type="System.Boolean" itemName="primary_key"/>
          157  +      </Properties>
          158  +			<Actions>
          159  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          160  +					<Parameter value="Columns"/>
          161  +				</Action>
          162  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          163  +					<Parameter>
          164  +						<Parameter value="{2}"/>
          165  +						<Parameter value="{1}"/>
          166  +						<Parameter value="Table"/>
          167  +						<Parameter/>
          168  +						<Parameter>
          169  +							<!-- GUID_DSRefProperty_PreciseType -->
          170  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          171  +								<Parameter value="101" type="System.Int32"/> <!-- Table -->
          172  +							</Parameter>
          173  +						</Parameter>
          174  +						<Parameter>
          175  +							<Parameter>
          176  +								<Parameter value="{3}"/>
          177  +								<Parameter/>
          178  +								<Parameter value="Field"/>
          179  +								<Parameter/>
          180  +								<Parameter>
          181  +									<!-- GUID_DSRefProperty_PreciseType -->
          182  +									<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          183  +										<Parameter value="102" type="System.Int32"/> <!-- Table_Column -->
          184  +									</Parameter>
          185  +								</Parameter>
          186  +							</Parameter>
          187  +						</Parameter>
          188  +					</Parameter>
          189  +				</Action>
          190  +			</Actions>
          191  +		</Type>
          192  +
          193  +		<Type name="View" defaultSort="Database,Name">
          194  +			<Concepts>
          195  +				<Concept name="View" restrictions="{Catalog},null,{Name}"/>
          196  +			</Concepts>
          197  +			<Identifier>
          198  +				<Part name="Database" itemName="table_catalog">
          199  +					<Concepts>
          200  +						<Concept name="Identifier0"/>
          201  +					</Concepts>
          202  +				</Part>
          203  +				<Part name="Schema" itemName="table_schema">
          204  +					<Concepts>
          205  +						<Concept name="Identifier1"/>
          206  +					</Concepts>
          207  +				</Part>
          208  +				<Part name="Name" itemName="table_name">
          209  +					<Concepts>
          210  +						<Concept name="Identifier2"/>
          211  +					</Concepts>
          212  +				</Part>
          213  +			</Identifier>
          214  +			<Properties>
          215  +				<Property name="Name" type="System.String" itemName="table_name"/>
          216  +				<Property name="Schema" type="System.String" itemName="table_schema">
          217  +					<Concepts>
          218  +						<Concept name="Schema"/>
          219  +					</Concepts>
          220  +				</Property>
          221  +				<Property name="CheckOption" type="System.Boolean" itemName="check_option"/>
          222  +				<Property name="IsUpdatable" type="System.Boolean" itemName="is_updatable"/>
          223  +			</Properties>
          224  +			<Actions>
          225  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          226  +					<Parameter value="Views"/>
          227  +				</Action>
          228  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          229  +					<Parameter>
          230  +						<Parameter value="{2}"/>
          231  +						<Parameter value="{1}"/>
          232  +						<Parameter value="View"/>
          233  +						<Parameter/>
          234  +						<Parameter>
          235  +							<!-- GUID_DSRefProperty_PreciseType -->
          236  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          237  +								<Parameter value="301" type="System.Int32"/> <!-- View -->
          238  +							</Parameter>
          239  +						</Parameter>
          240  +					</Parameter>
          241  +				</Action>
          242  +			</Actions>
          243  +		</Type>
          244  +
          245  +		<!--
          246  +			Defines a type that represents a view column.
          247  +		-->
          248  +		<Type name="ViewColumn" defaultSort="Database,View,Ordinal">
          249  +			<Concepts>
          250  +				<Concept name="ViewColumn" restrictions="{Catalog},null,{View},{Name}"/>
          251  +			</Concepts>
          252  +			<Identifier>
          253  +				<Part name="Database" itemName="table_catalog">
          254  +					<Concepts>
          255  +						<Concept name="Identifier0"/>
          256  +					</Concepts>
          257  +				</Part>
          258  +				<Part name="Schema" itemName="table_schema">
          259  +					<Concepts>
          260  +						<Concept name="Identifier1"/>
          261  +					</Concepts>
          262  +				</Part>
          263  +				<Part name="View" itemName="table_name">
          264  +					<Concepts>
          265  +						<Concept name="Identifier2"/>
          266  +					</Concepts>
          267  +				</Part>
          268  +				<Part name="Name" itemName="column_name">
          269  +					<Concepts>
          270  +						<Concept name="Identifier3"/>
          271  +					</Concepts>
          272  +				</Part>
          273  +			</Identifier>
          274  +			<Properties>
          275  +				<Property name="Name" type="System.String" itemName="column_name"/>
          276  +				<Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          277  +					<Concepts>
          278  +						<Concept name="Ordinal">
          279  +						</Concept>
          280  +					</Concepts>
          281  +				</Property>
          282  +        <Property name="DataType" type="System.String" itemName="data_type" />
          283  +        <Property name="SystemType" type="System.String" itemName="data_type">
          284  +          <Concepts>
          285  +            <Concept name="UserDataType"/>
          286  +            <Concept name="NativeDataType"/>
          287  +            <Concept name="ProviderDataType">
          288  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          289  +            </Concept>
          290  +            <Concept name="ProviderDbType">
          291  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          292  +            </Concept>
          293  +            <Concept name="FrameworkDataType">
          294  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          295  +            </Concept>
          296  +          </Concepts>
          297  +        </Property>
          298  +        <Property name="Length" type="System.Int32" itemName='character_maximum_length'>
          299  +					<Concepts>
          300  +						<Concept name="Length"/>
          301  +					</Concepts>
          302  +				</Property>
          303  +				<Property name="Precision" type="System.Int32" itemName="numeric_precision">
          304  +					<Concepts>
          305  +						<Concept name="Precision">
          306  +						</Concept>
          307  +					</Concepts>
          308  +				</Property>
          309  +				<Property name="Scale" type="System.Int32" itemName="numeric_scale">
          310  +					<Concepts>
          311  +						<Concept name="Scale"/>
          312  +					</Concepts>
          313  +				</Property>
          314  +				<Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          315  +					<Concepts>
          316  +						<Concept name="Nullable">
          317  +						</Concept>
          318  +					</Concepts>
          319  +				</Property>
          320  +				<Property name="Default" type="System.String" itemName="column_default">
          321  +					<Concepts>
          322  +						<Concept name="Default"/>
          323  +					</Concepts>
          324  +				</Property>
          325  +			</Properties>
          326  +			<Actions>
          327  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          328  +					<Parameter value="Columns"/>
          329  +				</Action>
          330  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          331  +					<Parameter>
          332  +						<Parameter value="{2}"/>
          333  +						<Parameter value="{1}"/>
          334  +						<Parameter value="View"/>
          335  +						<Parameter/>
          336  +						<Parameter>
          337  +							<!-- GUID_DSRefProperty_PreciseType -->
          338  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          339  +								<Parameter value="301" type="System.Int32"/> <!-- View -->
          340  +							</Parameter>
          341  +						</Parameter>
          342  +						<Parameter>
          343  +							<Parameter>
          344  +								<Parameter value="{3}"/>
          345  +								<Parameter/>
          346  +								<Parameter value="Field"/>
          347  +								<Parameter/>
          348  +								<Parameter>
          349  +									<!-- GUID_DSRefProperty_PreciseType -->
          350  +									<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          351  +										<Parameter value="302" type="System.Int32"/> <!-- View_Column -->
          352  +									</Parameter>
          353  +								</Parameter>
          354  +							</Parameter>
          355  +						</Parameter>
          356  +					</Parameter>
          357  +				</Action>
          358  +			</Actions>
          359  +		</Type>
          360  +    <!--
          361  +			Defines a type that represents an index.
          362  +		-->
          363  +    <Type name="Index" defaultSort="Database,Table,Name">
          364  +      <Concepts>
          365  +        <Concept name="TableUniqueKey" restrictions="{Catalog},null,{Table},{Name}" filter="IsUnique = true"/>
          366  +      </Concepts>
          367  +      <Identifier>
          368  +        <Part name="Database" itemName="table_catalog">
          369  +          <Concepts>
          370  +            <Concept name="Identifier0"/>
          371  +          </Concepts>
          372  +        </Part>
          373  +        <Part name="Schema" itemName="table_schema">
          374  +          <Concepts>
          375  +            <Concept name="Identifier1"/>
          376  +          </Concepts>
          377  +        </Part>
          378  +        <Part name="Table" itemName="table_name">
          379  +          <Concepts>
          380  +            <Concept name="Identifier2"/>
          381  +          </Concepts>
          382  +        </Part>
          383  +        <Part name="Name" itemName="index_name">
          384  +          <Concepts>
          385  +            <Concept name="Identifier3"/>
          386  +          </Concepts>
          387  +        </Part>
          388  +      </Identifier>
          389  +      <Properties>
          390  +        <Property name="Name" type="System.String" itemName="index_name"/>
          391  +        <Property name="IsUnique" type="System.Boolean" itemName="UNIQUE">
          392  +          <Concepts>
          393  +            <Concept name="IsUnique"/>
          394  +          </Concepts>
          395  +        </Property>
          396  +        <Property name="IsPrimary" type="System.Boolean" itemName="PRIMARY_KEY">
          397  +          <Concepts>
          398  +            <Concept name="IsPrimary"/>
          399  +          </Concepts>
          400  +        </Property>
          401  +      </Properties>
          402  +      <Actions>
          403  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          404  +          <Parameter value="Indexes"/>
          405  +        </Action>
          406  +        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          407  +          <Parameter>
          408  +            <Parameter value="{2}"/>
          409  +            <Parameter value="{1}"/>
          410  +            <Parameter value="Table"/>
          411  +            <Parameter/>
          412  +            <Parameter>
          413  +              <!-- GUID_DSRefProperty_Qualifier -->
          414  +              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
          415  +                <Parameter value="{0}"/>
          416  +              </Parameter>
          417  +              <!-- GUID_DSRefProperty_PreciseType -->
          418  +              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          419  +                <Parameter value="101" type="System.Int32"/>
          420  +                <!-- Table -->
          421  +              </Parameter>
          422  +            </Parameter>
          423  +            <Parameter>
          424  +              <Parameter>
          425  +                <Parameter value="{3}"/>
          426  +                <Parameter/>
          427  +                <Parameter value="Index"/>
          428  +              </Parameter>
          429  +            </Parameter>
          430  +          </Parameter>
          431  +        </Action>
          432  +      </Actions>
          433  +    </Type>
          434  +
          435  +    <Type name="IndexColumn" defaultSort="Database,Table,Index,Ordinal">
          436  +      <Concepts>
          437  +        <Concept name="TableUniqueKeyColumn" restrictions="{Catalog},null,{Table},{TableUniqueKey},{Name}"/>
          438  +      </Concepts>
          439  +      <Identifier>
          440  +        <Part name="Database" itemName="table_catalog">
          441  +          <Concepts>
          442  +            <Concept name="Identifier0"/>
          443  +          </Concepts>
          444  +        </Part>
          445  +        <Part name="Schema" itemName="table_schema">
          446  +          <Concepts>
          447  +            <Concept name="Identifier1"/>
          448  +          </Concepts>
          449  +        </Part>
          450  +        <Part name="Table" itemName="table_name">
          451  +          <Concepts>
          452  +            <Concept name="Identifier2"/>
          453  +          </Concepts>
          454  +        </Part>
          455  +        <Part name="Index" itemName="index_name">
          456  +          <Concepts>
          457  +            <Concept name="Identifier3"/>
          458  +          </Concepts>
          459  +        </Part>
          460  +        <Part name="Name" itemName="column_name">
          461  +          <Concepts>
          462  +            <Concept name="Identifier4"/>
          463  +          </Concepts>
          464  +        </Part>
          465  +      </Identifier>
          466  +      <Properties>
          467  +        <Property name="Name" type="System.String" itemName="column_name"/>
          468  +        <Property name="Ordinal" type="System.Byte" itemName="ordinal_position">
          469  +          <Concepts>
          470  +            <Concept name="Ordinal">
          471  +              <Conversion>
          472  +                <ChangeType type="System.Int32"/>
          473  +              </Conversion>
          474  +            </Concept>
          475  +          </Concepts>
          476  +        </Property>
          477  +      </Properties>
          478  +      <Actions>
          479  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          480  +          <Parameter value="IndexColumns"/>
          481  +        </Action>
          482  +        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          483  +          <Parameter>
          484  +            <Parameter value="{2}"/>
          485  +            <Parameter value="{1}"/>
          486  +            <Parameter value="Table"/>
          487  +            <Parameter/>
          488  +            <Parameter>
          489  +              <!-- GUID_DSRefProperty_Qualifier -->
          490  +              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
          491  +                <Parameter value="{0}"/>
          492  +              </Parameter>
          493  +              <!-- GUID_DSRefProperty_PreciseType -->
          494  +              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          495  +                <Parameter value="101" type="System.Int32"/>
          496  +                <!-- Table -->
          497  +              </Parameter>
          498  +            </Parameter>
          499  +            <Parameter>
          500  +              <Parameter>
          501  +                <Parameter value="{3}"/>
          502  +                <Parameter/>
          503  +                <Parameter value="Index"/>
          504  +                <Parameter/>
          505  +                <Parameter/>
          506  +                <Parameter>
          507  +                  <Parameter>
          508  +                    <Parameter value="{4}"/>
          509  +                    <Parameter/>
          510  +                    <Parameter value="Field"/>
          511  +                  </Parameter>
          512  +                </Parameter>
          513  +              </Parameter>
          514  +            </Parameter>
          515  +          </Parameter>
          516  +        </Action>
          517  +      </Actions>
          518  +    </Type>
          519  +
          520  +    <Type name="Triggers" defaultSort="Database,Table,Name">
          521  +      <Concepts>
          522  +        <Concept name="TableTriggers" restrictions="{Catalog},null,{Table},{Name}"/>
          523  +      </Concepts>
          524  +      <Identifier>
          525  +        <Part name="Database" itemName="table_catalog">
          526  +          <Concepts>
          527  +            <Concept name="Identifier0"/>
          528  +          </Concepts>
          529  +        </Part>
          530  +        <Part name="Schema" itemName="table_schema">
          531  +          <Concepts>
          532  +            <Concept name="Identifier1"/>
          533  +          </Concepts>
          534  +        </Part>
          535  +        <Part name="Table" itemName="table_name">
          536  +          <Concepts>
          537  +            <Concept name="Identifier2"/>
          538  +          </Concepts>
          539  +        </Part>
          540  +        <Part name="Name" itemName="trigger_name">
          541  +          <Concepts>
          542  +            <Concept name="Identifier3"/>
          543  +          </Concepts>
          544  +        </Part>
          545  +      </Identifier>
          546  +      <Properties>
          547  +        <Property name="Name" type="System.String" itemName="trigger_name"/>
          548  +      </Properties>
          549  +      <Actions>
          550  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          551  +          <Parameter value="Triggers"/>
          552  +        </Action>
          553  +      </Actions>
          554  +    </Type>
          555  +
          556  +    <Type name="ForeignKey" defaultSort="Database,Table,Name">
          557  +      <Concepts>
          558  +        <Concept name="TableForeignKey" restrictions="{Catalog},null,{Table},{Name}"/>
          559  +      </Concepts>
          560  +      <Identifier>
          561  +        <Part name="Database" itemName="table_catalog">
          562  +          <Concepts>
          563  +            <Concept name="Identifier0"/>
          564  +          </Concepts>
          565  +        </Part>
          566  +        <Part name="Schema" itemName="table_schema">
          567  +          <Concepts>
          568  +            <Concept name="Identifier1"/>
          569  +          </Concepts>
          570  +        </Part>
          571  +        <Part name="Table" itemName="table_name">
          572  +          <Concepts>
          573  +            <Concept name="Identifier2"/>
          574  +          </Concepts>
          575  +        </Part>
          576  +        <Part name="Name" itemName="constraint_name">
          577  +          <Concepts>
          578  +            <Concept name="Identifier3"/>
          579  +          </Concepts>
          580  +        </Part>
          581  +      </Identifier>
          582  +      <Properties>
          583  +        <Property name="Name" type="System.String" itemName="constraint_name"/>
          584  +        <Property name="ReferencedColumnName" type="System.String" itemName="fkey_to_column"/>
          585  +        <Property name="ColumnName" type="System.String" itemName="fkey_from_column"/>
          586  +        <Property name="ReferencedTableDatabase" type="System.String" itemName="fkey_to_catalog">
          587  +          <Concepts>
          588  +            <Concept name="ReferencedTableId0"/>
          589  +          </Concepts>
          590  +        </Property>
          591  +        <Property name="ReferencedTableSchema" type="System.String" itemName="fkey_to_schema">
          592  +          <Concepts>
          593  +            <Concept name="ReferencedTableId1"/>
          594  +          </Concepts>
          595  +        </Property>
          596  +        <Property name="ReferencedTableName" type="System.String" itemName="fkey_to_table">
          597  +          <Concepts>
          598  +            <Concept name="ReferencedTableId2"/>
          599  +          </Concepts>
          600  +        </Property>
          601  +      </Properties>
          602  +      <Actions>
          603  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          604  +          <Parameter value="ForeignKeys"/>
          605  +        </Action>
          606  +      </Actions>
          607  +    </Type>
          608  +
          609  +    <Type name="ForeignKeyColumn" defaultSort="Database,Table,ForeignKey,Ordinal">
          610  +      <Concepts>
          611  +        <Concept name="TableForeignKeyColumn" restrictions="{Catalog},null,{Table},{TableForeignKey},{Name}"/>
          612  +      </Concepts>
          613  +      <Identifier>
          614  +        <Part name="Database" itemName="table_catalog">
          615  +          <Concepts>
          616  +            <Concept name="Identifier0"/>
          617  +          </Concepts>
          618  +        </Part>
          619  +        <Part name="Schema" itemName="table_schema">
          620  +          <Concepts>
          621  +            <Concept name="Identifier1"/>
          622  +          </Concepts>
          623  +        </Part>
          624  +        <Part name="Table" itemName="table_name">
          625  +          <Concepts>
          626  +            <Concept name="Identifier2"/>
          627  +          </Concepts>
          628  +        </Part>
          629  +        <Part name="ForeignKey" itemName="constraint_name">
          630  +          <Concepts>
          631  +            <Concept name="Identifier3"/>
          632  +          </Concepts>
          633  +        </Part>
          634  +        <Part name="Name" itemName="fkey_from_column">
          635  +          <Concepts>
          636  +            <Concept name="Identifier4"/>
          637  +          </Concepts>
          638  +        </Part>
          639  +      </Identifier>
          640  +      <Properties>
          641  +        <Property name="Name" type="System.String" itemName="fkey_from_column"/>
          642  +        <Property name="Ordinal" type="System.Int32" itemName="fkey_from_ordinal_position">
          643  +          <Concepts>
          644  +            <Concept name="Ordinal"/>
          645  +          </Concepts>
          646  +        </Property>
          647  +        <Property name="ReferencedColumnName" type="System.String" itemName="fkey_to_column">
          648  +          <Concepts>
          649  +            <Concept name="ReferencedTableColumn"/>
          650  +          </Concepts>
          651  +        </Property>
          652  +      </Properties>
          653  +      <Actions>
          654  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          655  +          <Parameter value="ForeignKeys"/>
          656  +        </Action>
          657  +      </Actions>
          658  +    </Type>
          659  +  </Types>
          660  +</VSDataObjectSupport>

Added SQLite.Designer/SQLiteDataObjectSupport2013.xml.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +
            3  +<!--
            4  +/********************************************************
            5  + * ADO.NET 2.0 Data Provider for SQLite Version 3.X
            6  + * Written by Robert Simpson (robert@blackcastlesoft.com)
            7  + *
            8  + * Released to the public domain, use at your own risk!
            9  + ********************************************************/
           10  +-->
           11  +
           12  +<VSDataObjectSupport xmlns="http://tempuri.org/VSDataObjectSupport.xsd">
           13  +	<Types>
           14  +		<RootType>
           15  +			<Properties>
           16  +        <Property name="Server" type="System.String" itemName="DataSource"/>
           17  +        <Property name="Database" type="System.String" itemName="Database"/>
           18  +      </Properties>
           19  +			<Actions>
           20  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetRootObjectEnumerator"/>
           21  +			</Actions>
           22  +		</RootType>
           23  +
           24  +		<Type name="Table" defaultSort="Database,Name">
           25  +			<Concepts>
           26  +				<Concept name="Table" restrictions="{Catalog},null,{Name}"/>
           27  +			</Concepts>
           28  +			<Identifier>
           29  +				<Part name="Database" itemName="table_catalog">
           30  +					<Concepts>
           31  +						<Concept name="Identifier0"/>
           32  +					</Concepts>
           33  +				</Part>
           34  +				<Part name="Schema" itemName="table_schema">
           35  +					<Concepts>
           36  +						<Concept name="Identifier1"/>
           37  +					</Concepts>
           38  +				</Part>
           39  +				<Part name="Name" itemName="table_name">
           40  +					<Concepts>
           41  +						<Concept name="Identifier2"/>
           42  +					</Concepts>
           43  +				</Part>
           44  +			</Identifier>
           45  +			<Properties>
           46  +				<Property name="Name" type="System.String" itemName="table_name"/>
           47  +				<Property name="Schema" type="System.String" itemName="table_schema"/>
           48  +        <Property name="Type" type="System.String" itemName="table_type">
           49  +          <Concepts>
           50  +            <Concept name="Type">
           51  +              <Conversion>
           52  +                <Calculate expr="IIF({0}='TABLE','USER','SYSTEM')" type="System.String"/>
           53  +              </Conversion>
           54  +            </Concept>
           55  +          </Concepts>
           56  +        </Property>
           57  +      </Properties>
           58  +			<Actions>
           59  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
           60  +					<Parameter value="Tables"/>
           61  +				</Action>
           62  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
           63  +					<Parameter>
           64  +						<Parameter value="{2}"/>
           65  +						<Parameter value="{1}"/>
           66  +						<Parameter value="Table"/>
           67  +						<Parameter/>
           68  +						<Parameter>
           69  +							<!-- GUID_DSRefProperty_PreciseType -->
           70  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
           71  +								<Parameter value="101" type="System.Int32"/> <!-- Table -->
           72  +							</Parameter>
           73  +						</Parameter>
           74  +					</Parameter>
           75  +				</Action>
           76  +			</Actions>
           77  +		</Type>
           78  +
           79  +		<Type name="TableColumn" defaultSort="Database,Table,Ordinal">
           80  +			<Concepts>
           81  +				<Concept name="TableColumn" restrictions="{Catalog},null,{Table},{Name}"/>
           82  +			</Concepts>
           83  +			<Identifier>
           84  +				<Part name="Database" itemName="table_catalog">
           85  +					<Concepts>
           86  +						<Concept name="Identifier0"/>
           87  +					</Concepts>
           88  +				</Part>
           89  +				<Part name="Schema" itemName="table_schema">
           90  +					<Concepts>
           91  +						<Concept name="Identifier1"/>
           92  +					</Concepts>
           93  +				</Part>
           94  +				<Part name="Table" itemName="table_name">
           95  +					<Concepts>
           96  +						<Concept name="Identifier2"/>
           97  +					</Concepts>
           98  +				</Part>
           99  +				<Part name="Name" itemName="column_name">
          100  +					<Concepts>
          101  +						<Concept name="Identifier3"/>
          102  +					</Concepts>
          103  +				</Part>
          104  +			</Identifier>
          105  +			<Properties>
          106  +				<Property name="Name" type="System.String" itemName="column_name"/>
          107  +				<Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          108  +					<Concepts>
          109  +						<Concept name="Ordinal">
          110  +						</Concept>
          111  +					</Concepts>
          112  +				</Property>
          113  +        <Property name="DataType" type="System.String" itemName="data_type" />
          114  +        <Property name="SystemType" type="System.String" itemName="data_type">
          115  +          <Concepts>
          116  +            <Concept name="UserDataType"/>
          117  +            <Concept name="NativeDataType"/>
          118  +            <Concept name="ProviderDataType">
          119  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          120  +            </Concept>
          121  +            <Concept name="ProviderDbType">
          122  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          123  +            </Concept>
          124  +            <Concept name="FrameworkDataType">
          125  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          126  +            </Concept>
          127  +          </Concepts>
          128  +        </Property>
          129  +        <Property name="Length" type="System.Int32" itemName='character_maximum_length'>
          130  +					<Concepts>
          131  +						<Concept name="Length"/>
          132  +					</Concepts>
          133  +				</Property>
          134  +				<Property name="Precision" type="System.Int32" itemName="numeric_precision">
          135  +					<Concepts>
          136  +						<Concept name="Precision">
          137  +						</Concept>
          138  +					</Concepts>
          139  +				</Property>
          140  +				<Property name="Scale" type="System.Int32" itemName="numeric_scale">
          141  +					<Concepts>
          142  +						<Concept name="Scale"/>
          143  +					</Concepts>
          144  +				</Property>
          145  +				<Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          146  +					<Concepts>
          147  +						<Concept name="Nullable">
          148  +						</Concept>
          149  +					</Concepts>
          150  +				</Property>
          151  +				<Property name="Default" type="System.String" itemName="column_default">
          152  +					<Concepts>
          153  +						<Concept name="Default"/>
          154  +					</Concepts>
          155  +				</Property>
          156  +        <Property name="InPrimaryKey" type="System.Boolean" itemName="primary_key"/>
          157  +      </Properties>
          158  +			<Actions>
          159  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          160  +					<Parameter value="Columns"/>
          161  +				</Action>
          162  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          163  +					<Parameter>
          164  +						<Parameter value="{2}"/>
          165  +						<Parameter value="{1}"/>
          166  +						<Parameter value="Table"/>
          167  +						<Parameter/>
          168  +						<Parameter>
          169  +							<!-- GUID_DSRefProperty_PreciseType -->
          170  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          171  +								<Parameter value="101" type="System.Int32"/> <!-- Table -->
          172  +							</Parameter>
          173  +						</Parameter>
          174  +						<Parameter>
          175  +							<Parameter>
          176  +								<Parameter value="{3}"/>
          177  +								<Parameter/>
          178  +								<Parameter value="Field"/>
          179  +								<Parameter/>
          180  +								<Parameter>
          181  +									<!-- GUID_DSRefProperty_PreciseType -->
          182  +									<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          183  +										<Parameter value="102" type="System.Int32"/> <!-- Table_Column -->
          184  +									</Parameter>
          185  +								</Parameter>
          186  +							</Parameter>
          187  +						</Parameter>
          188  +					</Parameter>
          189  +				</Action>
          190  +			</Actions>
          191  +		</Type>
          192  +
          193  +		<Type name="View" defaultSort="Database,Name">
          194  +			<Concepts>
          195  +				<Concept name="View" restrictions="{Catalog},null,{Name}"/>
          196  +			</Concepts>
          197  +			<Identifier>
          198  +				<Part name="Database" itemName="table_catalog">
          199  +					<Concepts>
          200  +						<Concept name="Identifier0"/>
          201  +					</Concepts>
          202  +				</Part>
          203  +				<Part name="Schema" itemName="table_schema">
          204  +					<Concepts>
          205  +						<Concept name="Identifier1"/>
          206  +					</Concepts>
          207  +				</Part>
          208  +				<Part name="Name" itemName="table_name">
          209  +					<Concepts>
          210  +						<Concept name="Identifier2"/>
          211  +					</Concepts>
          212  +				</Part>
          213  +			</Identifier>
          214  +			<Properties>
          215  +				<Property name="Name" type="System.String" itemName="table_name"/>
          216  +				<Property name="Schema" type="System.String" itemName="table_schema">
          217  +					<Concepts>
          218  +						<Concept name="Schema"/>
          219  +					</Concepts>
          220  +				</Property>
          221  +				<Property name="CheckOption" type="System.Boolean" itemName="check_option"/>
          222  +				<Property name="IsUpdatable" type="System.Boolean" itemName="is_updatable"/>
          223  +			</Properties>
          224  +			<Actions>
          225  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          226  +					<Parameter value="Views"/>
          227  +				</Action>
          228  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          229  +					<Parameter>
          230  +						<Parameter value="{2}"/>
          231  +						<Parameter value="{1}"/>
          232  +						<Parameter value="View"/>
          233  +						<Parameter/>
          234  +						<Parameter>
          235  +							<!-- GUID_DSRefProperty_PreciseType -->
          236  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          237  +								<Parameter value="301" type="System.Int32"/> <!-- View -->
          238  +							</Parameter>
          239  +						</Parameter>
          240  +					</Parameter>
          241  +				</Action>
          242  +			</Actions>
          243  +		</Type>
          244  +
          245  +		<!--
          246  +			Defines a type that represents a view column.
          247  +		-->
          248  +		<Type name="ViewColumn" defaultSort="Database,View,Ordinal">
          249  +			<Concepts>
          250  +				<Concept name="ViewColumn" restrictions="{Catalog},null,{View},{Name}"/>
          251  +			</Concepts>
          252  +			<Identifier>
          253  +				<Part name="Database" itemName="table_catalog">
          254  +					<Concepts>
          255  +						<Concept name="Identifier0"/>
          256  +					</Concepts>
          257  +				</Part>
          258  +				<Part name="Schema" itemName="table_schema">
          259  +					<Concepts>
          260  +						<Concept name="Identifier1"/>
          261  +					</Concepts>
          262  +				</Part>
          263  +				<Part name="View" itemName="table_name">
          264  +					<Concepts>
          265  +						<Concept name="Identifier2"/>
          266  +					</Concepts>
          267  +				</Part>
          268  +				<Part name="Name" itemName="column_name">
          269  +					<Concepts>
          270  +						<Concept name="Identifier3"/>
          271  +					</Concepts>
          272  +				</Part>
          273  +			</Identifier>
          274  +			<Properties>
          275  +				<Property name="Name" type="System.String" itemName="column_name"/>
          276  +				<Property name="Ordinal" type="System.Int32" itemName="ordinal_position">
          277  +					<Concepts>
          278  +						<Concept name="Ordinal">
          279  +						</Concept>
          280  +					</Concepts>
          281  +				</Property>
          282  +        <Property name="DataType" type="System.String" itemName="data_type" />
          283  +        <Property name="SystemType" type="System.String" itemName="data_type">
          284  +          <Concepts>
          285  +            <Concept name="UserDataType"/>
          286  +            <Concept name="NativeDataType"/>
          287  +            <Concept name="ProviderDataType">
          288  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          289  +            </Concept>
          290  +            <Concept name="ProviderDbType">
          291  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          292  +            </Concept>
          293  +            <Concept name="FrameworkDataType">
          294  +              <Conversion mapper="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectConceptMapper"/>
          295  +            </Concept>
          296  +          </Concepts>
          297  +        </Property>
          298  +        <Property name="Length" type="System.Int32" itemName='character_maximum_length'>
          299  +					<Concepts>
          300  +						<Concept name="Length"/>
          301  +					</Concepts>
          302  +				</Property>
          303  +				<Property name="Precision" type="System.Int32" itemName="numeric_precision">
          304  +					<Concepts>
          305  +						<Concept name="Precision">
          306  +						</Concept>
          307  +					</Concepts>
          308  +				</Property>
          309  +				<Property name="Scale" type="System.Int32" itemName="numeric_scale">
          310  +					<Concepts>
          311  +						<Concept name="Scale"/>
          312  +					</Concepts>
          313  +				</Property>
          314  +				<Property name="Nullable" type="System.Boolean" itemName="is_nullable">
          315  +					<Concepts>
          316  +						<Concept name="Nullable">
          317  +						</Concept>
          318  +					</Concepts>
          319  +				</Property>
          320  +				<Property name="Default" type="System.String" itemName="column_default">
          321  +					<Concepts>
          322  +						<Concept name="Default"/>
          323  +					</Concepts>
          324  +				</Property>
          325  +			</Properties>
          326  +			<Actions>
          327  +				<Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          328  +					<Parameter value="Columns"/>
          329  +				</Action>
          330  +				<Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          331  +					<Parameter>
          332  +						<Parameter value="{2}"/>
          333  +						<Parameter value="{1}"/>
          334  +						<Parameter value="View"/>
          335  +						<Parameter/>
          336  +						<Parameter>
          337  +							<!-- GUID_DSRefProperty_PreciseType -->
          338  +							<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          339  +								<Parameter value="301" type="System.Int32"/> <!-- View -->
          340  +							</Parameter>
          341  +						</Parameter>
          342  +						<Parameter>
          343  +							<Parameter>
          344  +								<Parameter value="{3}"/>
          345  +								<Parameter/>
          346  +								<Parameter value="Field"/>
          347  +								<Parameter/>
          348  +								<Parameter>
          349  +									<!-- GUID_DSRefProperty_PreciseType -->
          350  +									<Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          351  +										<Parameter value="302" type="System.Int32"/> <!-- View_Column -->
          352  +									</Parameter>
          353  +								</Parameter>
          354  +							</Parameter>
          355  +						</Parameter>
          356  +					</Parameter>
          357  +				</Action>
          358  +			</Actions>
          359  +		</Type>
          360  +    <!--
          361  +			Defines a type that represents an index.
          362  +		-->
          363  +    <Type name="Index" defaultSort="Database,Table,Name">
          364  +      <Concepts>
          365  +        <Concept name="TableUniqueKey" restrictions="{Catalog},null,{Table},{Name}" filter="IsUnique = true"/>
          366  +      </Concepts>
          367  +      <Identifier>
          368  +        <Part name="Database" itemName="table_catalog">
          369  +          <Concepts>
          370  +            <Concept name="Identifier0"/>
          371  +          </Concepts>
          372  +        </Part>
          373  +        <Part name="Schema" itemName="table_schema">
          374  +          <Concepts>
          375  +            <Concept name="Identifier1"/>
          376  +          </Concepts>
          377  +        </Part>
          378  +        <Part name="Table" itemName="table_name">
          379  +          <Concepts>
          380  +            <Concept name="Identifier2"/>
          381  +          </Concepts>
          382  +        </Part>
          383  +        <Part name="Name" itemName="index_name">
          384  +          <Concepts>
          385  +            <Concept name="Identifier3"/>
          386  +          </Concepts>
          387  +        </Part>
          388  +      </Identifier>
          389  +      <Properties>
          390  +        <Property name="Name" type="System.String" itemName="index_name"/>
          391  +        <Property name="IsUnique" type="System.Boolean" itemName="UNIQUE">
          392  +          <Concepts>
          393  +            <Concept name="IsUnique"/>
          394  +          </Concepts>
          395  +        </Property>
          396  +        <Property name="IsPrimary" type="System.Boolean" itemName="PRIMARY_KEY">
          397  +          <Concepts>
          398  +            <Concept name="IsPrimary"/>
          399  +          </Concepts>
          400  +        </Property>
          401  +      </Properties>
          402  +      <Actions>
          403  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          404  +          <Parameter value="Indexes"/>
          405  +        </Action>
          406  +        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          407  +          <Parameter>
          408  +            <Parameter value="{2}"/>
          409  +            <Parameter value="{1}"/>
          410  +            <Parameter value="Table"/>
          411  +            <Parameter/>
          412  +            <Parameter>
          413  +              <!-- GUID_DSRefProperty_Qualifier -->
          414  +              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
          415  +                <Parameter value="{0}"/>
          416  +              </Parameter>
          417  +              <!-- GUID_DSRefProperty_PreciseType -->
          418  +              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          419  +                <Parameter value="101" type="System.Int32"/>
          420  +                <!-- Table -->
          421  +              </Parameter>
          422  +            </Parameter>
          423  +            <Parameter>
          424  +              <Parameter>
          425  +                <Parameter value="{3}"/>
          426  +                <Parameter/>
          427  +                <Parameter value="Index"/>
          428  +              </Parameter>
          429  +            </Parameter>
          430  +          </Parameter>
          431  +        </Action>
          432  +      </Actions>
          433  +    </Type>
          434  +
          435  +    <Type name="IndexColumn" defaultSort="Database,Table,Index,Ordinal">
          436  +      <Concepts>
          437  +        <Concept name="TableUniqueKeyColumn" restrictions="{Catalog},null,{Table},{TableUniqueKey},{Name}"/>
          438  +      </Concepts>
          439  +      <Identifier>
          440  +        <Part name="Database" itemName="table_catalog">
          441  +          <Concepts>
          442  +            <Concept name="Identifier0"/>
          443  +          </Concepts>
          444  +        </Part>
          445  +        <Part name="Schema" itemName="table_schema">
          446  +          <Concepts>
          447  +            <Concept name="Identifier1"/>
          448  +          </Concepts>
          449  +        </Part>
          450  +        <Part name="Table" itemName="table_name">
          451  +          <Concepts>
          452  +            <Concept name="Identifier2"/>
          453  +          </Concepts>
          454  +        </Part>
          455  +        <Part name="Index" itemName="index_name">
          456  +          <Concepts>
          457  +            <Concept name="Identifier3"/>
          458  +          </Concepts>
          459  +        </Part>
          460  +        <Part name="Name" itemName="column_name">
          461  +          <Concepts>
          462  +            <Concept name="Identifier4"/>
          463  +          </Concepts>
          464  +        </Part>
          465  +      </Identifier>
          466  +      <Properties>
          467  +        <Property name="Name" type="System.String" itemName="column_name"/>
          468  +        <Property name="Ordinal" type="System.Byte" itemName="ordinal_position">
          469  +          <Concepts>
          470  +            <Concept name="Ordinal">
          471  +              <Conversion>
          472  +                <ChangeType type="System.Int32"/>
          473  +              </Conversion>
          474  +            </Concept>
          475  +          </Concepts>
          476  +        </Property>
          477  +      </Properties>
          478  +      <Actions>
          479  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          480  +          <Parameter value="IndexColumns"/>
          481  +        </Action>
          482  +        <Action name="BuildDSRef" guid="7C030900-E8DD-471b-8F18-D83DA7036144" handler="Microsoft.VisualStudio.Data.DSRefBuilder">
          483  +          <Parameter>
          484  +            <Parameter value="{2}"/>
          485  +            <Parameter value="{1}"/>
          486  +            <Parameter value="Table"/>
          487  +            <Parameter/>
          488  +            <Parameter>
          489  +              <!-- GUID_DSRefProperty_Qualifier -->
          490  +              <Parameter value="4656BAEA-F397-11ce-BFE1-00AA0057B34E">
          491  +                <Parameter value="{0}"/>
          492  +              </Parameter>
          493  +              <!-- GUID_DSRefProperty_PreciseType -->
          494  +              <Parameter value="39A5A7E7-513F-44a4-B79D-7652CD8962D9">
          495  +                <Parameter value="101" type="System.Int32"/>
          496  +                <!-- Table -->
          497  +              </Parameter>
          498  +            </Parameter>
          499  +            <Parameter>
          500  +              <Parameter>
          501  +                <Parameter value="{3}"/>
          502  +                <Parameter/>
          503  +                <Parameter value="Index"/>
          504  +                <Parameter/>
          505  +                <Parameter/>
          506  +                <Parameter>
          507  +                  <Parameter>
          508  +                    <Parameter value="{4}"/>
          509  +                    <Parameter/>
          510  +                    <Parameter value="Field"/>
          511  +                  </Parameter>
          512  +                </Parameter>
          513  +              </Parameter>
          514  +            </Parameter>
          515  +          </Parameter>
          516  +        </Action>
          517  +      </Actions>
          518  +    </Type>
          519  +
          520  +    <Type name="Triggers" defaultSort="Database,Table,Name">
          521  +      <Concepts>
          522  +        <Concept name="TableTriggers" restrictions="{Catalog},null,{Table},{Name}"/>
          523  +      </Concepts>
          524  +      <Identifier>
          525  +        <Part name="Database" itemName="table_catalog">
          526  +          <Concepts>
          527  +            <Concept name="Identifier0"/>
          528  +          </Concepts>
          529  +        </Part>
          530  +        <Part name="Schema" itemName="table_schema">
          531  +          <Concepts>
          532  +            <Concept name="Identifier1"/>
          533  +          </Concepts>
          534  +        </Part>
          535  +        <Part name="Table" itemName="table_name">
          536  +          <Concepts>
          537  +            <Concept name="Identifier2"/>
          538  +          </Concepts>
          539  +        </Part>
          540  +        <Part name="Name" itemName="trigger_name">
          541  +          <Concepts>
          542  +            <Concept name="Identifier3"/>
          543  +          </Concepts>
          544  +        </Part>
          545  +      </Identifier>
          546  +      <Properties>
          547  +        <Property name="Name" type="System.String" itemName="trigger_name"/>
          548  +      </Properties>
          549  +      <Actions>
          550  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          551  +          <Parameter value="Triggers"/>
          552  +        </Action>
          553  +      </Actions>
          554  +    </Type>
          555  +
          556  +    <Type name="ForeignKey" defaultSort="Database,Table,Name">
          557  +      <Concepts>
          558  +        <Concept name="TableForeignKey" restrictions="{Catalog},null,{Table},{Name}"/>
          559  +      </Concepts>
          560  +      <Identifier>
          561  +        <Part name="Database" itemName="table_catalog">
          562  +          <Concepts>
          563  +            <Concept name="Identifier0"/>
          564  +          </Concepts>
          565  +        </Part>
          566  +        <Part name="Schema" itemName="table_schema">
          567  +          <Concepts>
          568  +            <Concept name="Identifier1"/>
          569  +          </Concepts>
          570  +        </Part>
          571  +        <Part name="Table" itemName="table_name">
          572  +          <Concepts>
          573  +            <Concept name="Identifier2"/>
          574  +          </Concepts>
          575  +        </Part>
          576  +        <Part name="Name" itemName="constraint_name">
          577  +          <Concepts>
          578  +            <Concept name="Identifier3"/>
          579  +          </Concepts>
          580  +        </Part>
          581  +      </Identifier>
          582  +      <Properties>
          583  +        <Property name="Name" type="System.String" itemName="constraint_name"/>
          584  +        <Property name="ReferencedColumnName" type="System.String" itemName="fkey_to_column"/>
          585  +        <Property name="ColumnName" type="System.String" itemName="fkey_from_column"/>
          586  +        <Property name="ReferencedTableDatabase" type="System.String" itemName="fkey_to_catalog">
          587  +          <Concepts>
          588  +            <Concept name="ReferencedTableId0"/>
          589  +          </Concepts>
          590  +        </Property>
          591  +        <Property name="ReferencedTableSchema" type="System.String" itemName="fkey_to_schema">
          592  +          <Concepts>
          593  +            <Concept name="ReferencedTableId1"/>
          594  +          </Concepts>
          595  +        </Property>
          596  +        <Property name="ReferencedTableName" type="System.String" itemName="fkey_to_table">
          597  +          <Concepts>
          598  +            <Concept name="ReferencedTableId2"/>
          599  +          </Concepts>
          600  +        </Property>
          601  +      </Properties>
          602  +      <Actions>
          603  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          604  +          <Parameter value="ForeignKeys"/>
          605  +        </Action>
          606  +      </Actions>
          607  +    </Type>
          608  +
          609  +    <Type name="ForeignKeyColumn" defaultSort="Database,Table,ForeignKey,Ordinal">
          610  +      <Concepts>
          611  +        <Concept name="TableForeignKeyColumn" restrictions="{Catalog},null,{Table},{TableForeignKey},{Name}"/>
          612  +      </Concepts>
          613  +      <Identifier>
          614  +        <Part name="Database" itemName="table_catalog">
          615  +          <Concepts>
          616  +            <Concept name="Identifier0"/>
          617  +          </Concepts>
          618  +        </Part>
          619  +        <Part name="Schema" itemName="table_schema">
          620  +          <Concepts>
          621  +            <Concept name="Identifier1"/>
          622  +          </Concepts>
          623  +        </Part>
          624  +        <Part name="Table" itemName="table_name">
          625  +          <Concepts>
          626  +            <Concept name="Identifier2"/>
          627  +          </Concepts>
          628  +        </Part>
          629  +        <Part name="ForeignKey" itemName="constraint_name">
          630  +          <Concepts>
          631  +            <Concept name="Identifier3"/>
          632  +          </Concepts>
          633  +        </Part>
          634  +        <Part name="Name" itemName="fkey_from_column">
          635  +          <Concepts>
          636  +            <Concept name="Identifier4"/>
          637  +          </Concepts>
          638  +        </Part>
          639  +      </Identifier>
          640  +      <Properties>
          641  +        <Property name="Name" type="System.String" itemName="fkey_from_column"/>
          642  +        <Property name="Ordinal" type="System.Int32" itemName="fkey_from_ordinal_position">
          643  +          <Concepts>
          644  +            <Concept name="Ordinal"/>
          645  +          </Concepts>
          646  +        </Property>
          647  +        <Property name="ReferencedColumnName" type="System.String" itemName="fkey_to_column">
          648  +          <Concepts>
          649  +            <Concept name="ReferencedTableColumn"/>
          650  +          </Concepts>
          651  +        </Property>
          652  +      </Properties>
          653  +      <Actions>
          654  +        <Action name="Enumerate" guid="61CC0372-384D-42e5-9707-6D7C8DC5287A" handler="Microsoft.VisualStudio.Data.AdoDotNet.AdoDotNetObjectEnumerator">
          655  +          <Parameter value="ForeignKeys"/>
          656  +        </Action>
          657  +      </Actions>
          658  +    </Type>
          659  +  </Types>
          660  +</VSDataObjectSupport>

Changes to SQLite.Designer/SQLiteDataViewSupport.cs.

     1      1   /********************************************************
     2      2    * ADO.NET 2.0 Data Provider for SQLite Version 3.X
     3      3    * Written by Robert Simpson (robert@blackcastlesoft.com)
     4         - * 
            4  + *
     5      5    * Released to the public domain, use at your own risk!
     6      6    ********************************************************/
     7      7   
     8      8   namespace SQLite.Designer
     9      9   {
    10     10     using System;
    11     11     using System.Collections.Generic;
................................................................................
    17     17   
    18     18     /// <summary>
    19     19     /// Provides DataViewSupport with a location where the XML file is for the Server Explorer's view.
    20     20     /// </summary>
    21     21     internal sealed class SQLiteDataViewSupport : DataViewSupport
    22     22     {
    23     23       public SQLiteDataViewSupport()
    24         -      : base(String.Format(CultureInfo.InvariantCulture, "SQLite.Designer.SQLiteDataViewSupport{0}", GetVSVersion()), typeof(SQLiteDataViewSupport).Assembly)
           24  +      : base(String.Format(CultureInfo.InvariantCulture,
           25  +          "SQLite.Designer.SQLiteDataViewSupport{0}", GetVSVersion()),
           26  +          typeof(SQLiteDataViewSupport).Assembly)
    25     27       {
    26     28       }
    27     29   
    28     30       private static string GetVSVersion()
    29     31       {
    30         -      switch (System.Diagnostics.FileVersionInfo.GetVersionInfo(Environment.GetCommandLineArgs()[0]).FileMajorPart)
           32  +      switch (System.Diagnostics.FileVersionInfo.GetVersionInfo(
           33  +          Environment.GetCommandLineArgs()[0]).FileMajorPart)
    31     34         {
    32     35           case 8:
    33     36             return "2005";
    34     37           case 9:
    35     38             return "2008";
    36     39           case 10:
    37     40             return "2010";
    38     41           case 11:
    39     42             return "2012";
           43  +        case 12:
           44  +          return "2013";
    40     45           default:
    41     46             return null;
    42     47         }
    43     48       }
    44     49     }
    45     50   }

Changes to SQLite.Designer/SQLiteDataViewSupport2005.xml.

     1      1   <?xml version="1.0" encoding="utf-8"?>
     2      2   
     3      3   <!--
     4      4   /********************************************************
     5      5    * ADO.NET 2.0 Data Provider for SQLite Version 3.X
     6      6    * Written by Robert Simpson (robert@blackcastlesoft.com)
     7         - * 
            7  + *
     8      8    * Released to the public domain, use at your own risk!
     9      9    ********************************************************/
    10     10   -->
    11     11   
    12     12   <VSDataViewSupport xmlns="http://tempuri.org/VSDataViewSupport.xsd">
    13     13   	<DataViews>
    14     14   		<!-- This sample defines a single data view -->
................................................................................
    21     21   				<CommandBindings>
    22     22             <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
    23     23             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    24     24             <CommandBinding name="Vacuum"   guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="262" handler="SQLite.Designer.SQLiteCommandHandler"/>
    25     25             <CommandBinding name="Rekey"    guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="263" handler="SQLite.Designer.SQLiteCommandHandler"/>
    26     26           </CommandBindings>
    27     27   				<Children>
    28         -          
           28  +
    29     29   					<StaticNode nid="Tables">
    30     30               <DisplayName>Tables</DisplayName>
    31     31   						<CommandBindings>
    32     32                 <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
    33     33                 <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    34     34               </CommandBindings>
    35     35   						<Children>
................................................................................
    74     74                     <Icon name="View"/>
    75     75   									<Children>
    76     76                       <SubHierarchyRef name="View children"/>
    77     77   									</Children>
    78     78   								</SelectionNode>
    79     79   							</Selection>
    80     80   						</Children>
    81         -					</StaticNode>   
    82         -          
           81  +					</StaticNode>
           82  +
    83     83   				</Children>
    84     84   			</StaticConnectionNode>
    85     85   		</DataView>
    86     86   	</DataViews>
    87         -  
           87  +
    88     88     <SubHierarchies>
    89         -    <SubHierarchy name="table children">      
           89  +    <SubHierarchy name="table children">
    90     90         <StaticNode nid="Columns">
    91     91           <DisplayName>Columns</DisplayName>
    92     92           <CommandBindings>
    93     93             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    94     94           </CommandBindings>
    95     95           <Children>
    96     96             <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=True">
................................................................................
   101    101             <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=False">
   102    102               <SelectionNode>
   103    103                 <Icon name="Column"/>
   104    104               </SelectionNode>
   105    105             </Selection>
   106    106           </Children>
   107    107         </StaticNode>
   108         -      
          108  +
   109    109         <StaticNode nid="Indexes">
   110    110           <DisplayName>Indexes</DisplayName>
   111    111           <CommandBindings>
   112    112             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   113    113           </CommandBindings>
   114    114           <Children>
   115    115             <Selection type="Index" restrictions="{Table.Database},null,{Table.Name}">
................................................................................
   143    143               <SelectionNode>
   144    144                 <Icon name="Index" />
   145    145               </SelectionNode>
   146    146             </Selection>
   147    147           </Children>
   148    148         </StaticNode>
   149    149       </SubHierarchy>
   150         -    
   151         -    <SubHierarchy name="view children">      
          150  +
          151  +    <SubHierarchy name="view children">
   152    152         <StaticNode nid="Columns">
   153    153           <DisplayName>Columns</DisplayName>
   154    154           <CommandBindings>
   155    155             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   156    156           </CommandBindings>
   157    157           <Children>
   158    158             <Selection type="ViewColumn" restrictions="{View.Database},null,{View.Name}">
   159    159               <SelectionNode>
   160    160                 <Icon name="Column"/>
   161    161               </SelectionNode>
   162    162             </Selection>
   163    163           </Children>
   164    164         </StaticNode>
   165         -      
          165  +
   166    166         <StaticNode nid="Triggers">
   167    167           <DisplayName>Triggers</DisplayName>
   168    168           <Children>
   169    169             <Selection type="Triggers" restrictions="{View.Database},null,{View.Name}">
   170    170               <SelectionNode>
   171    171                 <Icon name="Index" />
   172    172               </SelectionNode>
   173    173             </Selection>
   174    174           </Children>
   175    175         </StaticNode>
   176    176       </SubHierarchy>
   177         -    
          177  +
   178    178     </SubHierarchies>
   179    179     <TypeExtensions>
   180         -    
          180  +
   181    181       <TypeExtension name="Table">
   182    182         <Identifier>
   183    183           <Part name="Name">
   184    184             <Category resource="Category_Identity"/>
   185    185           </Part>
   186    186           <Part name="Database">
   187    187             <DisplayName>Catalog</DisplayName>
................................................................................
   197    197             <Parameter value="Open"/>
   198    198           </CommandBinding>
   199    199           <CommandBinding name="Design" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12291" handler="SQLite.Designer.SQLiteCommandHandler">
   200    200             <Parameter value="Table"/>
   201    201           </CommandBinding>
   202    202         </CommandBindings>
   203    203       </TypeExtension>
   204         -    
          204  +
   205    205       <TypeExtension name="View">
   206    206         <Identifier>
   207    207           <Part name="Name">
   208    208             <Category resource="Category_Identity"/>
   209    209           </Part>
   210    210           <Part name="Database">
   211    211             <DisplayName>Catalog</DisplayName>
................................................................................
   226    226             <Parameter value="View"/>
   227    227           </CommandBinding>
   228    228           <CommandBinding name="Browse_Data" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12384" handler="884DD964-5327-461f-9F06-6484DD540F8F">
   229    229             <Parameter value="Open"/>
   230    230           </CommandBinding>
   231    231         </CommandBindings>
   232    232       </TypeExtension>
   233         -    
          233  +
   234    234       <TypeExtension name="ViewColumn">
   235    235         <Identifier>
   236    236           <Part name="Name">
   237    237             <Category resource="Category_Identity"/>
   238    238           </Part>
   239    239           <Part name="Database">
   240    240             <DisplayName>Catalog</DisplayName>
................................................................................
   257    257             <DisplayName>Default Value</DisplayName>
   258    258           </Property>
   259    259         </Properties>
   260    260         <CommandBindings>
   261    261           <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   262    262         </CommandBindings>
   263    263       </TypeExtension>
   264         -    
          264  +
   265    265       <TypeExtension name="Index">
   266    266         <Identifier>
   267    267           <Part name="Name">
   268    268             <Category resource="Category_Identity"/>
   269    269           </Part>
   270    270           <Part name="Database">
   271    271             <DisplayName>Catalog</DisplayName>

Changes to SQLite.Designer/SQLiteDataViewSupport2008.xml.

     1      1   <?xml version="1.0" encoding="utf-8"?>
     2      2   
     3      3   <!--
     4      4   /********************************************************
     5      5    * ADO.NET 2.0 Data Provider for SQLite Version 3.X
     6      6    * Written by Robert Simpson (robert@blackcastlesoft.com)
     7         - * 
            7  + *
     8      8    * Released to the public domain, use at your own risk!
     9      9    ********************************************************/
    10     10   -->
    11     11   
    12     12   <VSDataViewSupport xmlns="http://tempuri.org/VSDataViewSupport.xsd">
    13     13   	<DataViews>
    14     14   		<!-- This sample defines a single data view -->
................................................................................
    21     21   				<CommandBindings>
    22     22             <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
    23     23             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    24     24             <CommandBinding name="Vacuum"   guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="262" handler="SQLite.Designer.SQLiteCommandHandler"/>
    25     25             <CommandBinding name="Rekey"    guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="263" handler="SQLite.Designer.SQLiteCommandHandler"/>
    26     26           </CommandBindings>
    27     27   				<Children>
    28         -          
           28  +
    29     29   					<StaticNode nid="Tables">
    30     30               <DisplayName>Tables</DisplayName>
    31     31   						<CommandBindings>
    32     32                 <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
    33     33                 <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    34     34               </CommandBindings>
    35     35   						<Children>
................................................................................
    74     74                     <Icon name="View"/>
    75     75   									<Children>
    76     76                       <SubHierarchyRef name="View children"/>
    77     77   									</Children>
    78     78   								</SelectionNode>
    79     79   							</Selection>
    80     80   						</Children>
    81         -					</StaticNode>   
    82         -          
           81  +					</StaticNode>
           82  +
    83     83   				</Children>
    84     84   			</StaticConnectionNode>
    85     85   		</DataView>
    86     86   	</DataViews>
    87         -  
           87  +
    88     88     <SubHierarchies>
    89         -    <SubHierarchy name="table children">      
           89  +    <SubHierarchy name="table children">
    90     90         <StaticNode nid="Columns">
    91     91           <DisplayName>Columns</DisplayName>
    92     92           <CommandBindings>
    93     93             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    94     94           </CommandBindings>
    95     95           <Children>
    96     96             <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=True">
................................................................................
   101    101             <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=False">
   102    102               <SelectionNode>
   103    103                 <Icon name="Column"/>
   104    104               </SelectionNode>
   105    105             </Selection>
   106    106           </Children>
   107    107         </StaticNode>
   108         -      
          108  +
   109    109         <StaticNode nid="Indexes">
   110    110           <DisplayName>Indexes</DisplayName>
   111    111           <CommandBindings>
   112    112             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   113    113           </CommandBindings>
   114    114           <Children>
   115    115             <Selection type="Index" restrictions="{Table.Database},null,{Table.Name}">
................................................................................
   143    143               <SelectionNode>
   144    144                 <Icon name="Index" />
   145    145               </SelectionNode>
   146    146             </Selection>
   147    147           </Children>
   148    148         </StaticNode>
   149    149       </SubHierarchy>
   150         -    
   151         -    <SubHierarchy name="view children">      
          150  +
          151  +    <SubHierarchy name="view children">
   152    152         <StaticNode nid="Columns">
   153    153           <DisplayName>Columns</DisplayName>
   154    154           <CommandBindings>
   155    155             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   156    156           </CommandBindings>
   157    157           <Children>
   158    158             <Selection type="ViewColumn" restrictions="{View.Database},null,{View.Name}">
   159    159               <SelectionNode>
   160    160                 <Icon name="Column"/>
   161    161               </SelectionNode>
   162    162             </Selection>
   163    163           </Children>
   164    164         </StaticNode>
   165         -      
          165  +
   166    166         <StaticNode nid="Triggers">
   167    167           <DisplayName>Triggers</DisplayName>
   168    168           <Children>
   169    169             <Selection type="Triggers" restrictions="{View.Database},null,{View.Name}">
   170    170               <SelectionNode>
   171    171                 <Icon name="Index" />
   172    172               </SelectionNode>
   173    173             </Selection>
   174    174           </Children>
   175    175         </StaticNode>
   176    176       </SubHierarchy>
   177         -    
          177  +
   178    178     </SubHierarchies>
   179    179     <TypeExtensions>
   180         -    
          180  +
   181    181       <TypeExtension name="Table">
   182    182         <Identifier>
   183    183           <Part name="Name">
   184    184             <Category resource="Category_Identity"/>
   185    185           </Part>
   186    186           <Part name="Database">
   187    187             <DisplayName>Catalog</DisplayName>
................................................................................
   197    197             <Parameter value="Open"/>
   198    198           </CommandBinding>
   199    199           <CommandBinding name="Design" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12291" handler="SQLite.Designer.SQLiteCommandHandler">
   200    200             <Parameter value="Table"/>
   201    201           </CommandBinding>
   202    202         </CommandBindings>
   203    203       </TypeExtension>
   204         -    
          204  +
   205    205       <TypeExtension name="View">
   206    206         <Identifier>
   207    207           <Part name="Name">
   208    208             <Category resource="Category_Identity"/>
   209    209           </Part>
   210    210           <Part name="Database">
   211    211             <DisplayName>Catalog</DisplayName>
................................................................................
   226    226             <Parameter value="View"/>
   227    227           </CommandBinding>
   228    228           <CommandBinding name="Browse_Data" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12384" handler="884DD964-5327-461f-9F06-6484DD540F8F">
   229    229             <Parameter value="Open"/>
   230    230           </CommandBinding>
   231    231         </CommandBindings>
   232    232       </TypeExtension>
   233         -    
          233  +
   234    234       <TypeExtension name="ViewColumn">
   235    235         <Identifier>
   236    236           <Part name="Name">
   237    237             <Category resource="Category_Identity"/>
   238    238           </Part>
   239    239           <Part name="Database">
   240    240             <DisplayName>Catalog</DisplayName>
................................................................................
   257    257             <DisplayName>Default Value</DisplayName>
   258    258           </Property>
   259    259         </Properties>
   260    260         <CommandBindings>
   261    261           <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   262    262         </CommandBindings>
   263    263       </TypeExtension>
   264         -    
          264  +
   265    265       <TypeExtension name="Index">
   266    266         <Identifier>
   267    267           <Part name="Name">
   268    268             <Category resource="Category_Identity"/>
   269    269           </Part>
   270    270           <Part name="Database">
   271    271             <DisplayName>Catalog</DisplayName>

Changes to SQLite.Designer/SQLiteDataViewSupport2010.xml.

     1      1   <?xml version="1.0" encoding="utf-8"?>
     2      2   
     3      3   <!--
     4      4   /********************************************************
     5      5    * ADO.NET 2.0 Data Provider for SQLite Version 3.X
     6      6    * Written by Robert Simpson (robert@blackcastlesoft.com)
     7         - * 
            7  + *
     8      8    * Released to the public domain, use at your own risk!
     9      9    ********************************************************/
    10     10   -->
    11     11   
    12     12   <VSDataViewSupport xmlns="http://tempuri.org/VSDataViewSupport.xsd">
    13     13   	<DataViews>
    14     14   		<!-- This sample defines a single data view -->
................................................................................
    21     21   				<CommandBindings>
    22     22             <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
    23     23             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    24     24             <CommandBinding name="Vacuum"   guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="262" handler="SQLite.Designer.SQLiteCommandHandler"/>
    25     25             <CommandBinding name="Rekey"    guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="263" handler="SQLite.Designer.SQLiteCommandHandler"/>
    26     26           </CommandBindings>
    27     27   				<Children>
    28         -          
           28  +
    29     29   					<StaticNode nid="Tables">
    30     30               <DisplayName>Tables</DisplayName>
    31     31   						<CommandBindings>
    32     32                 <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
    33     33                 <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    34     34               </CommandBindings>
    35     35   						<Children>
................................................................................
    74     74                     <Icon name="View"/>
    75     75   									<Children>
    76     76                       <SubHierarchyRef name="View children"/>
    77     77   									</Children>
    78     78   								</SelectionNode>
    79     79   							</Selection>
    80     80   						</Children>
    81         -					</StaticNode>   
    82         -          
           81  +					</StaticNode>
           82  +
    83     83   				</Children>
    84     84   			</StaticConnectionNode>
    85     85   		</DataView>
    86     86   	</DataViews>
    87         -  
           87  +
    88     88     <SubHierarchies>
    89         -    <SubHierarchy name="table children">      
           89  +    <SubHierarchy name="table children">
    90     90         <StaticNode nid="Columns">
    91     91           <DisplayName>Columns</DisplayName>
    92     92           <CommandBindings>
    93     93             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    94     94           </CommandBindings>
    95     95           <Children>
    96     96             <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=True">
................................................................................
   101    101             <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=False">
   102    102               <SelectionNode>
   103    103                 <Icon name="Column"/>
   104    104               </SelectionNode>
   105    105             </Selection>
   106    106           </Children>
   107    107         </StaticNode>
   108         -      
          108  +
   109    109         <StaticNode nid="Indexes">
   110    110           <DisplayName>Indexes</DisplayName>
   111    111           <CommandBindings>
   112    112             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   113    113           </CommandBindings>
   114    114           <Children>
   115    115             <Selection type="Index" restrictions="{Table.Database},null,{Table.Name}">
................................................................................
   143    143               <SelectionNode>
   144    144                 <Icon name="Index" />
   145    145               </SelectionNode>
   146    146             </Selection>
   147    147           </Children>
   148    148         </StaticNode>
   149    149       </SubHierarchy>
   150         -    
   151         -    <SubHierarchy name="view children">      
          150  +
          151  +    <SubHierarchy name="view children">
   152    152         <StaticNode nid="Columns">
   153    153           <DisplayName>Columns</DisplayName>
   154    154           <CommandBindings>
   155    155             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   156    156           </CommandBindings>
   157    157           <Children>
   158    158             <Selection type="ViewColumn" restrictions="{View.Database},null,{View.Name}">
   159    159               <SelectionNode>
   160    160                 <Icon name="Column"/>
   161    161               </SelectionNode>
   162    162             </Selection>
   163    163           </Children>
   164    164         </StaticNode>
   165         -      
          165  +
   166    166         <StaticNode nid="Triggers">
   167    167           <DisplayName>Triggers</DisplayName>
   168    168           <Children>
   169    169             <Selection type="Triggers" restrictions="{View.Database},null,{View.Name}">
   170    170               <SelectionNode>
   171    171                 <Icon name="Index" />
   172    172               </SelectionNode>
   173    173             </Selection>
   174    174           </Children>
   175    175         </StaticNode>
   176    176       </SubHierarchy>
   177         -    
          177  +
   178    178     </SubHierarchies>
   179    179     <TypeExtensions>
   180         -    
          180  +
   181    181       <TypeExtension name="Table">
   182    182         <Identifier>
   183    183           <Part name="Name">
   184    184             <Category resource="Category_Identity"/>
   185    185           </Part>
   186    186           <Part name="Database">
   187    187             <DisplayName>Catalog</DisplayName>
................................................................................
   197    197             <Parameter value="Open"/>
   198    198           </CommandBinding>
   199    199           <CommandBinding name="Design" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12291" handler="SQLite.Designer.SQLiteCommandHandler">
   200    200             <Parameter value="Table"/>
   201    201           </CommandBinding>
   202    202         </CommandBindings>
   203    203       </TypeExtension>
   204         -    
          204  +
   205    205       <TypeExtension name="View">
   206    206         <Identifier>
   207    207           <Part name="Name">
   208    208             <Category resource="Category_Identity"/>
   209    209           </Part>
   210    210           <Part name="Database">
   211    211             <DisplayName>Catalog</DisplayName>
................................................................................
   226    226             <Parameter value="View"/>
   227    227           </CommandBinding>
   228    228           <CommandBinding name="Browse_Data" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12384" handler="884DD964-5327-461f-9F06-6484DD540F8F">
   229    229             <Parameter value="Open"/>
   230    230           </CommandBinding>
   231    231         </CommandBindings>
   232    232       </TypeExtension>
   233         -    
          233  +
   234    234       <TypeExtension name="ViewColumn">
   235    235         <Identifier>
   236    236           <Part name="Name">
   237    237             <Category resource="Category_Identity"/>
   238    238           </Part>
   239    239           <Part name="Database">
   240    240             <DisplayName>Catalog</DisplayName>
................................................................................
   257    257             <DisplayName>Default Value</DisplayName>
   258    258           </Property>
   259    259         </Properties>
   260    260         <CommandBindings>
   261    261           <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   262    262         </CommandBindings>
   263    263       </TypeExtension>
   264         -    
          264  +
   265    265       <TypeExtension name="Index">
   266    266         <Identifier>
   267    267           <Part name="Name">
   268    268             <Category resource="Category_Identity"/>
   269    269           </Part>
   270    270           <Part name="Database">
   271    271             <DisplayName>Catalog</DisplayName>

Changes to SQLite.Designer/SQLiteDataViewSupport2012.xml.

     1      1   <?xml version="1.0" encoding="utf-8"?>
     2      2   
     3      3   <!--
     4      4   /********************************************************
     5      5    * ADO.NET 2.0 Data Provider for SQLite Version 3.X
     6      6    * Written by Robert Simpson (robert@blackcastlesoft.com)
     7         - * 
            7  + *
     8      8    * Released to the public domain, use at your own risk!
     9      9    ********************************************************/
    10     10   -->
    11     11   
    12     12   <VSDataViewSupport xmlns="http://tempuri.org/VSDataViewSupport.xsd">
    13     13   	<DataViews>
    14     14   		<!-- This sample defines a single data view -->
................................................................................
    21     21   				<CommandBindings>
    22     22             <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
    23     23             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    24     24             <CommandBinding name="Vacuum"   guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="262" handler="SQLite.Designer.SQLiteCommandHandler"/>
    25     25             <CommandBinding name="Rekey"    guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="263" handler="SQLite.Designer.SQLiteCommandHandler"/>
    26     26           </CommandBindings>
    27     27   				<Children>
    28         -          
           28  +
    29     29   					<StaticNode nid="Tables">
    30     30               <DisplayName>Tables</DisplayName>
    31     31   						<CommandBindings>
    32     32                 <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
    33     33                 <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    34     34               </CommandBindings>
    35     35   						<Children>
................................................................................
    74     74                     <Icon name="View"/>
    75     75   									<Children>
    76     76                       <SubHierarchyRef name="View children"/>
    77     77   									</Children>
    78     78   								</SelectionNode>
    79     79   							</Selection>
    80     80   						</Children>
    81         -					</StaticNode>   
    82         -          
           81  +					</StaticNode>
           82  +
    83     83   				</Children>
    84     84   			</StaticConnectionNode>
    85     85   		</DataView>
    86     86   	</DataViews>
    87         -  
           87  +
    88     88     <SubHierarchies>
    89         -    <SubHierarchy name="table children">      
           89  +    <SubHierarchy name="table children">
    90     90         <StaticNode nid="Columns">
    91     91           <DisplayName>Columns</DisplayName>
    92     92           <CommandBindings>
    93     93             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
    94     94           </CommandBindings>
    95     95           <Children>
    96     96             <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=True">
................................................................................
   101    101             <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=False">
   102    102               <SelectionNode>
   103    103                 <Icon name="Column"/>
   104    104               </SelectionNode>
   105    105             </Selection>
   106    106           </Children>
   107    107         </StaticNode>
   108         -      
          108  +
   109    109         <StaticNode nid="Indexes">
   110    110           <DisplayName>Indexes</DisplayName>
   111    111           <CommandBindings>
   112    112             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   113    113           </CommandBindings>
   114    114           <Children>
   115    115             <Selection type="Index" restrictions="{Table.Database},null,{Table.Name}">
................................................................................
   143    143               <SelectionNode>
   144    144                 <Icon name="Index" />
   145    145               </SelectionNode>
   146    146             </Selection>
   147    147           </Children>
   148    148         </StaticNode>
   149    149       </SubHierarchy>
   150         -    
   151         -    <SubHierarchy name="view children">      
          150  +
          151  +    <SubHierarchy name="view children">
   152    152         <StaticNode nid="Columns">
   153    153           <DisplayName>Columns</DisplayName>
   154    154           <CommandBindings>
   155    155             <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   156    156           </CommandBindings>
   157    157           <Children>
   158    158             <Selection type="ViewColumn" restrictions="{View.Database},null,{View.Name}">
   159    159               <SelectionNode>
   160    160                 <Icon name="Column"/>
   161    161               </SelectionNode>
   162    162             </Selection>
   163    163           </Children>
   164    164         </StaticNode>
   165         -      
          165  +
   166    166         <StaticNode nid="Triggers">
   167    167           <DisplayName>Triggers</DisplayName>
   168    168           <Children>
   169    169             <Selection type="Triggers" restrictions="{View.Database},null,{View.Name}">
   170    170               <SelectionNode>
   171    171                 <Icon name="Index" />
   172    172               </SelectionNode>
   173    173             </Selection>
   174    174           </Children>
   175    175         </StaticNode>
   176    176       </SubHierarchy>
   177         -    
          177  +
   178    178     </SubHierarchies>
   179    179     <TypeExtensions>
   180         -    
          180  +
   181    181       <TypeExtension name="Table">
   182    182         <Identifier>
   183    183           <Part name="Name">
   184    184             <Category resource="Category_Identity"/>
   185    185           </Part>
   186    186           <Part name="Database">
   187    187             <DisplayName>Catalog</DisplayName>
................................................................................
   197    197             <Parameter value="Open"/>
   198    198           </CommandBinding>
   199    199           <CommandBinding name="Design" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12291" handler="SQLite.Designer.SQLiteCommandHandler">
   200    200             <Parameter value="Table"/>
   201    201           </CommandBinding>
   202    202         </CommandBindings>
   203    203       </TypeExtension>
   204         -    
          204  +
   205    205       <TypeExtension name="View">
   206    206         <Identifier>
   207    207           <Part name="Name">
   208    208             <Category resource="Category_Identity"/>
   209    209           </Part>
   210    210           <Part name="Database">
   211    211             <DisplayName>Catalog</DisplayName>
................................................................................
   226    226             <Parameter value="View"/>
   227    227           </CommandBinding>
   228    228           <CommandBinding name="Browse_Data" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12384" handler="884DD964-5327-461f-9F06-6484DD540F8F">
   229    229             <Parameter value="Open"/>
   230    230           </CommandBinding>
   231    231         </CommandBindings>
   232    232       </TypeExtension>
   233         -    
          233  +
   234    234       <TypeExtension name="ViewColumn">
   235    235         <Identifier>
   236    236           <Part name="Name">
   237    237             <Category resource="Category_Identity"/>
   238    238           </Part>
   239    239           <Part name="Database">
   240    240             <DisplayName>Catalog</DisplayName>
................................................................................
   257    257             <DisplayName>Default Value</DisplayName>
   258    258           </Property>
   259    259         </Properties>
   260    260         <CommandBindings>
   261    261           <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
   262    262         </CommandBindings>
   263    263       </TypeExtension>
   264         -    
          264  +
   265    265       <TypeExtension name="Index">
   266    266         <Identifier>
   267    267           <Part name="Name">
   268    268             <Category resource="Category_Identity"/>
   269    269           </Part>
   270    270           <Part name="Database">
   271    271             <DisplayName>Catalog</DisplayName>

Added SQLite.Designer/SQLiteDataViewSupport2013.xml.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +
            3  +<!--
            4  +/********************************************************
            5  + * ADO.NET 2.0 Data Provider for SQLite Version 3.X
            6  + * Written by Robert Simpson (robert@blackcastlesoft.com)
            7  + *
            8  + * Released to the public domain, use at your own risk!
            9  + ********************************************************/
           10  +-->
           11  +
           12  +<VSDataViewSupport xmlns="http://tempuri.org/VSDataViewSupport.xsd">
           13  +	<DataViews>
           14  +		<!-- This sample defines a single data view -->
           15  +		<DataView name="SQLite">
           16  +      <DisplayName>SQLite</DisplayName>
           17  +			<!-- The connection node is static, i.e. has no underlying object -->
           18  +			<StaticConnectionNode>
           19  +				<!-- We can always specify data from the root object -->
           20  +				<InitialDisplayName>SQLite [{Root.Server}]</InitialDisplayName>
           21  +				<CommandBindings>
           22  +          <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
           23  +          <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
           24  +          <CommandBinding name="Vacuum"   guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="262" handler="SQLite.Designer.SQLiteCommandHandler"/>
           25  +          <CommandBinding name="Rekey"    guid="814658EE-A28E-4b97-BC33-4B1BC81EBECB" cmdid="263" handler="SQLite.Designer.SQLiteCommandHandler"/>
           26  +        </CommandBindings>
           27  +				<Children>
           28  +
           29  +					<StaticNode nid="Tables">
           30  +            <DisplayName>Tables</DisplayName>
           31  +						<CommandBindings>
           32  +              <CommandBinding name="NewTable" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13600" handler="SQLite.Designer.SQLiteCommandHandler"/>
           33  +              <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
           34  +            </CommandBindings>
           35  +						<Children>
           36  +              <Selection type="Table" filter="TYPE='TABLE'">
           37  +                <SelectionNode nid="Table">
           38  +                  <Icon name="Table"/>
           39  +                  <Children>
           40  +                    <SubHierarchyRef name="Table children"/>
           41  +                  </Children>
           42  +                </SelectionNode>
           43  +              </Selection>
           44  +            </Children>
           45  +					</StaticNode>
           46  +
           47  +          <StaticNode nid="Tables">
           48  +            <DisplayName>System Tables</DisplayName>
           49  +            <CommandBindings>
           50  +              <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
           51  +            </CommandBindings>
           52  +            <Children>
           53  +              <Selection type="Table" filter="TYPE='SYSTEM_TABLE'">
           54  +                <SelectionNode nid="Table">
           55  +                  <Icon name="Table"/>
           56  +                  <Children>
           57  +                    <SubHierarchyRef name="Table children"/>
           58  +                  </Children>
           59  +                </SelectionNode>
           60  +              </Selection>
           61  +            </Children>
           62  +          </StaticNode>
           63  +
           64  +          <StaticNode nid="Views">
           65  +            <DisplayName>Views</DisplayName>
           66  +						<CommandBindings>
           67  +              <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
           68  +              <CommandBinding name="NewView" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13601" handler="SQLite.Designer.SQLiteCommandHandler" />
           69  +            </CommandBindings>
           70  +						<Children>
           71  +							<Selection type="View">
           72  +								<SelectionNode nid="View">
           73  +                  <DisplayName>{View.Name}</DisplayName>
           74  +                  <Icon name="View"/>
           75  +									<Children>
           76  +                    <SubHierarchyRef name="View children"/>
           77  +									</Children>
           78  +								</SelectionNode>
           79  +							</Selection>
           80  +						</Children>
           81  +					</StaticNode>
           82  +
           83  +				</Children>
           84  +			</StaticConnectionNode>
           85  +		</DataView>
           86  +	</DataViews>
           87  +
           88  +  <SubHierarchies>
           89  +    <SubHierarchy name="table children">
           90  +      <StaticNode nid="Columns">
           91  +        <DisplayName>Columns</DisplayName>
           92  +        <CommandBindings>
           93  +          <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
           94  +        </CommandBindings>
           95  +        <Children>
           96  +          <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=True">
           97  +            <SelectionNode>
           98  +              <Icon name="PrimaryKey"/>
           99  +            </SelectionNode>
          100  +          </Selection>
          101  +          <Selection type="TableColumn" restrictions="{Table.Database},null,{Table.Name}" filter="InPrimaryKey=False">
          102  +            <SelectionNode>
          103  +              <Icon name="Column"/>
          104  +            </SelectionNode>
          105  +          </Selection>
          106  +        </Children>
          107  +      </StaticNode>
          108  +
          109  +      <StaticNode nid="Indexes">
          110  +        <DisplayName>Indexes</DisplayName>
          111  +        <CommandBindings>
          112  +          <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          113  +        </CommandBindings>
          114  +        <Children>
          115  +          <Selection type="Index" restrictions="{Table.Database},null,{Table.Name}">
          116  +            <SelectionNode>
          117  +              <Icon when="{IsPrimary}=true" name="PrimaryKey"/>
          118  +              <Icon when="{IsUnique}=true" name="UniqueKey"/>
          119  +              <Icon name="Index"/>
          120  +            </SelectionNode>
          121  +          </Selection>
          122  +        </Children>
          123  +      </StaticNode>
          124  +
          125  +      <StaticNode nid="ForeignKeys">
          126  +        <DisplayName>Foreign Keys</DisplayName>
          127  +        <CommandBindings>
          128  +          <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          129  +        </CommandBindings>
          130  +        <Children>
          131  +          <Selection type="ForeignKey" restrictions="{Table.Database},null,{Table.Name}">
          132  +            <SelectionNode>
          133  +              <Icon name="ForeignKey"/>
          134  +            </SelectionNode>
          135  +          </Selection>
          136  +        </Children>
          137  +      </StaticNode>
          138  +
          139  +      <StaticNode nid="Triggers">
          140  +        <DisplayName>Triggers</DisplayName>
          141  +        <Children>
          142  +          <Selection type="Triggers" restrictions="{Table.Database},null,{Table.Name}">
          143  +            <SelectionNode>
          144  +              <Icon name="Index" />
          145  +            </SelectionNode>
          146  +          </Selection>
          147  +        </Children>
          148  +      </StaticNode>
          149  +    </SubHierarchy>
          150  +
          151  +    <SubHierarchy name="view children">
          152  +      <StaticNode nid="Columns">
          153  +        <DisplayName>Columns</DisplayName>
          154  +        <CommandBindings>
          155  +          <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          156  +        </CommandBindings>
          157  +        <Children>
          158  +          <Selection type="ViewColumn" restrictions="{View.Database},null,{View.Name}">
          159  +            <SelectionNode>
          160  +              <Icon name="Column"/>
          161  +            </SelectionNode>
          162  +          </Selection>
          163  +        </Children>
          164  +      </StaticNode>
          165  +
          166  +      <StaticNode nid="Triggers">
          167  +        <DisplayName>Triggers</DisplayName>
          168  +        <Children>
          169  +          <Selection type="Triggers" restrictions="{View.Database},null,{View.Name}">
          170  +            <SelectionNode>
          171  +              <Icon name="Index" />
          172  +            </SelectionNode>
          173  +          </Selection>
          174  +        </Children>
          175  +      </StaticNode>
          176  +    </SubHierarchy>
          177  +
          178  +  </SubHierarchies>
          179  +  <TypeExtensions>
          180  +
          181  +    <TypeExtension name="Table">
          182  +      <Identifier>
          183  +        <Part name="Name">
          184  +          <Category resource="Category_Identity"/>
          185  +        </Part>
          186  +        <Part name="Database">
          187  +          <DisplayName>Catalog</DisplayName>
          188  +          <Category resource="Category_Location"/>
          189  +        </Part>
          190  +      </Identifier>
          191  +      <CommandBindings>
          192  +        <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          193  +        <CommandBinding name="DropTable" guid="5efc7975-14bc-11cf-9b2b-00aa00573819" cmdid="17" handler="SQLite.Designer.SQLiteCommandHandler">
          194  +          <Parameter value="Table"/>
          195  +        </CommandBinding>
          196  +        <CommandBinding name="Browse_Data" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12384" handler="884DD964-5327-461f-9F06-6484DD540F8F">
          197  +          <Parameter value="Open"/>
          198  +        </CommandBinding>
          199  +        <CommandBinding name="Design" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12291" handler="SQLite.Designer.SQLiteCommandHandler">
          200  +          <Parameter value="Table"/>
          201  +        </CommandBinding>
          202  +      </CommandBindings>
          203  +    </TypeExtension>
          204  +
          205  +    <TypeExtension name="View">
          206  +      <Identifier>
          207  +        <Part name="Name">
          208  +          <Category resource="Category_Identity"/>
          209  +        </Part>
          210  +        <Part name="Database">
          211  +          <DisplayName>Catalog</DisplayName>
          212  +          <Category resource="Category_Location"/>
          213  +        </Part>
          214  +      </Identifier>
          215  +      <Properties>
          216  +        <Property name="IsUpdatable">
          217  +          <DisplayName>Updatable</DisplayName>
          218  +        </Property>
          219  +      </Properties>
          220  +      <CommandBindings>
          221  +        <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          222  +        <CommandBinding name="DropView" guid="5efc7975-14bc-11cf-9b2b-00aa00573819" cmdid="17" handler="SQLite.Designer.SQLiteCommandHandler">
          223  +          <Parameter value="View"/>
          224  +        </CommandBinding>
          225  +        <CommandBinding name="Design" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12291" handler="SQLite.Designer.SQLiteCommandHandler">
          226  +          <Parameter value="View"/>
          227  +        </CommandBinding>
          228  +        <CommandBinding name="Browse_Data" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="12384" handler="884DD964-5327-461f-9F06-6484DD540F8F">
          229  +          <Parameter value="Open"/>
          230  +        </CommandBinding>
          231  +      </CommandBindings>
          232  +    </TypeExtension>
          233  +
          234  +    <TypeExtension name="ViewColumn">
          235  +      <Identifier>
          236  +        <Part name="Name">
          237  +          <Category resource="Category_Identity"/>
          238  +        </Part>
          239  +        <Part name="Database">
          240  +          <DisplayName>Catalog</DisplayName>
          241  +          <Category resource="Category_Location"/>
          242  +        </Part>
          243  +        <Part name="View">
          244  +          <Category resource="Category_Location"/>
          245  +        </Part>
          246  +      </Identifier>
          247  +      <Properties>
          248  +        <Property name="Ordinal"/>
          249  +        <Property name="Length"/>
          250  +        <Property name="DataType">
          251  +          <DisplayName>Data Type</DisplayName>
          252  +        </Property>
          253  +        <Property name="Nullable">
          254  +          <DisplayName>Allow Nulls</DisplayName>
          255  +        </Property>
          256  +        <Property name="Default">
          257  +          <DisplayName>Default Value</DisplayName>
          258  +        </Property>
          259  +      </Properties>
          260  +      <CommandBindings>
          261  +        <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          262  +      </CommandBindings>
          263  +    </TypeExtension>
          264  +
          265  +    <TypeExtension name="Index">
          266  +      <Identifier>
          267  +        <Part name="Name">
          268  +          <Category resource="Category_Identity"/>
          269  +        </Part>
          270  +        <Part name="Database">
          271  +          <DisplayName>Catalog</DisplayName>
          272  +          <Category resource="Category_Location"/>
          273  +        </Part>
          274  +        <Part name="Table">
          275  +          <Category resource="Category_Location"/>
          276  +        </Part>
          277  +      </Identifier>
          278  +      <Properties>
          279  +        <Property name="IsUnique">
          280  +          <DisplayName>Is Unique</DisplayName>
          281  +        </Property>
          282  +        <Property name="IsPrimary">
          283  +          <DisplayName>Primary Key</DisplayName>
          284  +        </Property>
          285  +      </Properties>
          286  +      <CommandBindings>
          287  +        <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          288  +        <CommandBinding name="DropIndex" guid="5efc7975-14bc-11cf-9b2b-00aa00573819" cmdid="17" handler="SQLite.Designer.SQLiteCommandHandler">
          289  +          <Parameter value="Index"/>
          290  +        </CommandBinding>
          291  +      </CommandBindings>
          292  +    </TypeExtension>
          293  +
          294  +    <TypeExtension name="Triggers">
          295  +      <Identifier>
          296  +        <Part name="Name">
          297  +          <Category resource="Category_Identity"/>
          298  +        </Part>
          299  +        <Part name="Database">
          300  +          <DisplayName>Catalog</DisplayName>
          301  +          <Category resource="Category_Location"/>
          302  +        </Part>
          303  +        <Part name="Table">
          304  +          <Category resource="Category_Location"/>
          305  +        </Part>
          306  +      </Identifier>
          307  +    </TypeExtension>
          308  +
          309  +    <TypeExtension name="TableColumn">
          310  +      <Identifier>
          311  +        <Part name="Name">
          312  +          <Category resource="Category_Identity"/>
          313  +        </Part>
          314  +        <Part name="Database">
          315  +          <DisplayName>Catalog</DisplayName>
          316  +          <Category resource="Category_Location"/>
          317  +        </Part>
          318  +        <Part name="Table">
          319  +          <Category resource="Category_Location"/>
          320  +        </Part>
          321  +      </Identifier>
          322  +      <Properties>
          323  +        <Property name="Ordinal"/>
          324  +        <Property name="Length"/>
          325  +        <Property name="DataType">
          326  +          <DisplayName>Data Type</DisplayName>
          327  +        </Property>
          328  +        <Property name="Nullable">
          329  +          <DisplayName>Allow Nulls</DisplayName>
          330  +        </Property>
          331  +        <Property name="Default">
          332  +          <DisplayName>Default Value</DisplayName>
          333  +        </Property>
          334  +        <Property name="InPrimaryKey">
          335  +          <DisplayName>Primary Key</DisplayName>
          336  +        </Property>
          337  +      </Properties>
          338  +      <CommandBindings>
          339  +        <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          340  +      </CommandBindings>
          341  +    </TypeExtension>
          342  +
          343  +    <TypeExtension name="ForeignKey">
          344  +      <Identifier>
          345  +        <Part name="Name">
          346  +          <Category resource="Category_Identity"/>
          347  +        </Part>
          348  +        <Part name="Database">
          349  +          <DisplayName>Catalog</DisplayName>
          350  +          <Category resource="Category_Location"/>
          351  +        </Part>
          352  +        <Part name="Table">
          353  +          <Category resource="Category_Location"/>
          354  +        </Part>
          355  +      </Identifier>
          356  +      <Properties>
          357  +        <!--<Property name="ColumnName">
          358  +          <DisplayName>Source Column</DisplayName>
          359  +          <Category resource="Category_Source"/>
          360  +        </Property>-->
          361  +        <Property name="ReferencedTableDatabase">
          362  +          <DisplayName>Referenced Database</DisplayName>
          363  +          <Category resource="Category_Refs"/>
          364  +        </Property>
          365  +        <Property name="ReferencedTableName">
          366  +          <DisplayName>Referenced Table</DisplayName>
          367  +          <Category resource="Category_Refs"/>
          368  +        </Property>
          369  +        <!--<Property name="ReferencedColumnName">
          370  +          <DisplayName>Referenced Column</DisplayName>
          371  +          <Category resource="Category_Refs"/>
          372  +        </Property>-->
          373  +      </Properties>
          374  +      <CommandBindings>
          375  +        <CommandBinding name="NewQuery" guid="501822E1-B5AF-11d0-B4DC-00A0C91506EF" cmdid="13608" handler="884DD964-5327-461f-9F06-6484DD540F8F"/>
          376  +      </CommandBindings>
          377  +    </TypeExtension>
          378  +  </TypeExtensions>
          379  +
          380  +  <Resources baseName="SQLite.Designer.VSPackage">
          381  +    <Resource name="Category_Identity">(Identity)</Resource>
          382  +    <Resource name="Category_Location">(Location)</Resource>
          383  +    <Resource name="Category_Source">(Source)</Resource>
          384  +    <Resource name="Category_Refs">References</Resource>
          385  +  </Resources>
          386  +</VSDataViewSupport>

Added SQLite.Interop/SQLite.Interop.2013.vcxproj.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +<!--
            3  + *
            4  + * SQLite.Interop.2013.vcxproj -
            5  + *
            6  + * Written by Joe Mistachkin.
            7  + * Released to the public domain, use at your own risk!
            8  + *
            9  +-->
           10  +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
           11  +  <PropertyGroup>
           12  +    <SQLiteNetDir>$(MSBuildProjectDirectory)\..</SQLiteNetDir>
           13  +  </PropertyGroup>
           14  +  <Import Project="$(SQLiteNetDir)\SQLite.NET.Settings.targets" />
           15  +  <ItemGroup Label="ProjectConfigurations">
           16  +    <ProjectConfiguration Include="DebugNativeOnly|x64">
           17  +      <Configuration>DebugNativeOnly</Configuration>
           18  +      <Platform>x64</Platform>
           19  +    </ProjectConfiguration>
           20  +    <ProjectConfiguration Include="Debug|Win32">
           21  +      <Configuration>Debug</Configuration>
           22  +      <Platform>Win32</Platform>
           23  +    </ProjectConfiguration>
           24  +    <ProjectConfiguration Include="DebugNativeOnly|Win32">
           25  +      <Configuration>DebugNativeOnly</Configuration>
           26  +      <Platform>Win32</Platform>
           27  +    </ProjectConfiguration>
           28  +    <ProjectConfiguration Include="Debug|x64">
           29  +      <Configuration>Debug</Configuration>
           30  +      <Platform>x64</Platform>
           31  +    </ProjectConfiguration>
           32  +    <ProjectConfiguration Include="ReleaseNativeOnly|x64">
           33  +      <Configuration>ReleaseNativeOnly</Configuration>
           34  +      <Platform>x64</Platform>
           35  +    </ProjectConfiguration>
           36  +    <ProjectConfiguration Include="Release|Win32">
           37  +      <Configuration>Release</Configuration>
           38  +      <Platform>Win32</Platform>
           39  +    </ProjectConfiguration>
           40  +    <ProjectConfiguration Include="ReleaseNativeOnly|Win32">
           41  +      <Configuration>ReleaseNativeOnly</Configuration>
           42  +      <Platform>Win32</Platform>
           43  +    </ProjectConfiguration>
           44  +    <ProjectConfiguration Include="Release|x64">
           45  +      <Configuration>Release</Configuration>
           46  +      <Platform>x64</Platform>
           47  +    </ProjectConfiguration>
           48  +  </ItemGroup>
           49  +  <PropertyGroup Label="Globals">
           50  +    <ProjectName>SQLite.Interop.2013</ProjectName>
           51  +    <ProjectGuid>{53784BC1-A8BC-4AC8-8A3E-158D6807345A}</ProjectGuid>
           52  +    <RootNamespace>SQLite.Interop</RootNamespace>
           53  +    <Keyword>Win32Proj</Keyword>
           54  +  </PropertyGroup>
           55  +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
           56  +  <Import Project="props\sqlite3.props" />
           57  +  <Import Project="props\SQLite.Interop.2013.props" />
           58  +  <Import Project="$(INTEROP_EXTRA_PROPS_FILE)"
           59  +          Condition="'$(INTEROP_EXTRA_PROPS_FILE)' != '' And
           60  +                     Exists('$(INTEROP_EXTRA_PROPS_FILE)')" />
           61  +  <PropertyGroup Condition="('$(Configuration)' == 'DebugNativeOnly' Or
           62  +                             '$(Configuration)' == 'ReleaseNativeOnly') And
           63  +                            (('$(Platform)' == 'Win32' And
           64  +                             ('$(PROCESSOR_ARCHITECTURE)' != 'x86' Or
           65  +                              '$(PROCESSOR_ARCHITEW6432)' != '')) Or
           66  +                             ('$(Platform)' == 'x64' And
           67  +                             ('$(PROCESSOR_ARCHITECTURE)' != 'x86' Or
           68  +                              '$(PROCESSOR_ARCHITEW6432)' != 'AMD64')))"
           69  +                 Label="PostBuildEvent">
           70  +    <PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
           71  +  </PropertyGroup>
           72  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
           73  +    <TargetName>$(INTEROP_MIXED_NAME)</TargetName>
           74  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           75  +    <CharacterSet>Unicode</CharacterSet>
           76  +    <PlatformToolset>v120</PlatformToolset>
           77  +  </PropertyGroup>
           78  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
           79  +    <TargetName>$(INTEROP_MIXED_NAME)</TargetName>
           80  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           81  +    <CharacterSet>Unicode</CharacterSet>
           82  +    <PlatformToolset>v120</PlatformToolset>
           83  +  </PropertyGroup>
           84  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|Win32'" Label="Configuration">
           85  +    <TargetName>$(INTEROP_NATIVE_NAME)</TargetName>
           86  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           87  +    <CharacterSet>Unicode</CharacterSet>
           88  +    <PlatformToolset>v120</PlatformToolset>
           89  +  </PropertyGroup>
           90  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|x64'" Label="Configuration">
           91  +    <TargetName>$(INTEROP_NATIVE_NAME)</TargetName>
           92  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           93  +    <CharacterSet>Unicode</CharacterSet>
           94  +    <PlatformToolset>v120</PlatformToolset>
           95  +  </PropertyGroup>
           96  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
           97  +    <TargetName>$(INTEROP_MIXED_NAME)</TargetName>
           98  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           99  +    <CharacterSet>Unicode</CharacterSet>
          100  +    <WholeProgramOptimization>true</WholeProgramOptimization>
          101  +    <PlatformToolset>v120</PlatformToolset>
          102  +  </PropertyGroup>
          103  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
          104  +    <TargetName>$(INTEROP_MIXED_NAME)</TargetName>
          105  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
          106  +    <CharacterSet>Unicode</CharacterSet>
          107  +    <WholeProgramOptimization>true</WholeProgramOptimization>
          108  +    <PlatformToolset>v120</PlatformToolset>
          109  +  </PropertyGroup>
          110  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|Win32'" Label="Configuration">
          111  +    <TargetName>$(INTEROP_NATIVE_NAME)</TargetName>
          112  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
          113  +    <CharacterSet>Unicode</CharacterSet>
          114  +    <WholeProgramOptimization>true</WholeProgramOptimization>
          115  +    <PlatformToolset>v120</PlatformToolset>
          116  +  </PropertyGroup>
          117  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|x64'" Label="Configuration">
          118  +    <TargetName>$(INTEROP_NATIVE_NAME)</TargetName>
          119  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
          120  +    <CharacterSet>Unicode</CharacterSet>
          121  +    <WholeProgramOptimization>true</WholeProgramOptimization>
          122  +    <PlatformToolset>v120</PlatformToolset>
          123  +  </PropertyGroup>
          124  +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
          125  +  <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
          126  +  <PropertyGroup>
          127  +    <OutDir>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Platform)\$(Configuration)\</OutDir>
          128  +    <IntDir>..\obj\$(ConfigurationYear)\$(Platform)\$(Configuration)\</IntDir>
          129  +    <LinkIncremental>false</LinkIncremental>
          130  +    <LinkKeyFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(INTEROP_KEY_FILE)</LinkKeyFile>
          131  +    <LinkKeyFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(INTEROP_KEY_FILE)</LinkKeyFile>
          132  +    <LinkKeyFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(INTEROP_KEY_FILE)</LinkKeyFile>
          133  +    <LinkKeyFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(INTEROP_KEY_FILE)</LinkKeyFile>
          134  +    <LinkDelaySign Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkDelaySign>
          135  +    <LinkDelaySign Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkDelaySign>
          136  +    <LinkDelaySign Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</LinkDelaySign>
          137  +    <LinkDelaySign Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</LinkDelaySign>
          138  +  </PropertyGroup>
          139  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
          140  +    <ClCompile>
          141  +      <Optimization>Disabled</Optimization>
          142  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          143  +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_DEBUG_DEFINES);$(INTEROP_EXTRA_DEFINES);$(INTEROP_DEBUG_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          144  +      <MinimalRebuild>false</MinimalRebuild>
          145  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          146  +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
          147  +      <WarningLevel>Level4</WarningLevel>
          148  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          149  +      <CompileAs>Default</CompileAs>
          150  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          151  +    </ClCompile>
          152  +    <ResourceCompile>
          153  +      <PreprocessorDefinitions>_DEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          154  +    </ResourceCompile>
          155  +    <Link>
          156  +      <AdditionalOptions>$(INTEROP_ASSEMBLY_RESOURCES) %(AdditionalOptions)</AdditionalOptions>
          157  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          158  +      <AdditionalDependencies>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Configuration)Module\bin\System.Data.SQLite.netmodule $(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          159  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          160  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          161  +      <AssemblyDebug>true</AssemblyDebug>
          162  +      <GenerateMapFile>true</GenerateMapFile>
          163  +      <MapExports>true</MapExports>
          164  +      <SubSystem>Windows</SubSystem>
          165  +      <OptimizeReferences>true</OptimizeReferences>
          166  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          167  +      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
          168  +      <TargetMachine>MachineX86</TargetMachine>
          169  +      <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
          170  +      <KeyFile>$(INTEROP_KEY_FILE)</KeyFile>
          171  +      <DelaySign>true</DelaySign>
          172  +    </Link>
          173  +    <Manifest>
          174  +      <VerboseOutput>true</VerboseOutput>
          175  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=x86, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          176  +      <UpdateFileHashes>true</UpdateFileHashes>
          177  +    </Manifest>
          178  +    <PostBuildEvent>
          179  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'==''">"$(FrameworkSDKDir)Bin\sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          180  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'!=''">"$(TargetFrameworkSDKToolsDirectory)sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          181  +    </PostBuildEvent>
          182  +  </ItemDefinitionGroup>
          183  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
          184  +    <ClCompile>
          185  +      <Optimization>Disabled</Optimization>
          186  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          187  +      <PreprocessorDefinitions>WIN32;x64;_DEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_DEBUG_DEFINES);$(INTEROP_EXTRA_DEFINES);$(INTEROP_DEBUG_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          188  +      <MinimalRebuild>false</MinimalRebuild>
          189  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          190  +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
          191  +      <WarningLevel>Level4</WarningLevel>
          192  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          193  +      <CompileAs>Default</CompileAs>
          194  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);$(SQLITE_DISABLE_X64_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          195  +    </ClCompile>
          196  +    <ResourceCompile>
          197  +      <PreprocessorDefinitions>_DEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          198  +    </ResourceCompile>
          199  +    <Link>
          200  +      <AdditionalOptions>$(INTEROP_ASSEMBLY_RESOURCES) %(AdditionalOptions)</AdditionalOptions>
          201  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          202  +      <AdditionalDependencies>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Configuration)Module\bin\System.Data.SQLite.netmodule $(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          203  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          204  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          205  +      <AssemblyDebug>true</AssemblyDebug>
          206  +      <GenerateMapFile>true</GenerateMapFile>
          207  +      <MapExports>true</MapExports>
          208  +      <SubSystem>Windows</SubSystem>
          209  +      <OptimizeReferences>true</OptimizeReferences>
          210  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          211  +      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
          212  +      <TargetMachine>MachineX64</TargetMachine>
          213  +      <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
          214  +      <KeyFile>$(INTEROP_KEY_FILE)</KeyFile>
          215  +      <DelaySign>true</DelaySign>
          216  +    </Link>
          217  +    <Manifest>
          218  +      <VerboseOutput>true</VerboseOutput>
          219  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=amd64, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          220  +      <UpdateFileHashes>true</UpdateFileHashes>
          221  +    </Manifest>
          222  +    <PostBuildEvent>
          223  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'==''">"$(FrameworkSDKDir)Bin\sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          224  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'!=''">"$(TargetFrameworkSDKToolsDirectory)sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          225  +    </PostBuildEvent>
          226  +  </ItemDefinitionGroup>
          227  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|Win32'">
          228  +    <ClCompile>
          229  +      <Optimization>Disabled</Optimization>
          230  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          231  +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_DEBUG_DEFINES);$(INTEROP_EXTRA_DEFINES);$(INTEROP_DEBUG_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          232  +      <MinimalRebuild>false</MinimalRebuild>
          233  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          234  +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
          235  +      <WarningLevel>Level4</WarningLevel>
          236  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          237  +      <CompileAs>Default</CompileAs>
          238  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          239  +    </ClCompile>
          240  +    <ResourceCompile>
          241  +      <PreprocessorDefinitions>_DEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          242  +    </ResourceCompile>
          243  +    <Link>
          244  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          245  +      <AdditionalDependencies>$(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          246  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          247  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          248  +      <GenerateMapFile>true</GenerateMapFile>
          249  +      <MapExports>true</MapExports>
          250  +      <SubSystem>Windows</SubSystem>
          251  +      <OptimizeReferences>true</OptimizeReferences>
          252  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          253  +      <TargetMachine>MachineX86</TargetMachine>
          254  +    </Link>
          255  +    <Manifest>
          256  +      <VerboseOutput>true</VerboseOutput>
          257  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=x86, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          258  +      <UpdateFileHashes>true</UpdateFileHashes>
          259  +    </Manifest>
          260  +    <PostBuildEvent>
          261  +      <Command>XCOPY "$(TargetPath)" "$(OutDir)..\..\Debug\bin\$(Platform)\" /D /E /V /I /F /H /Y
          262  +XCOPY "$(TargetPath)" "$(OutDir)..\..\Debug\bin\" /D /E /V /I /F /H /Y</Command>
          263  +    </PostBuildEvent>
          264  +  </ItemDefinitionGroup>
          265  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|x64'">
          266  +    <ClCompile>
          267  +      <Optimization>Disabled</Optimization>
          268  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          269  +      <PreprocessorDefinitions>WIN32;x64;_DEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_DEBUG_DEFINES);$(INTEROP_EXTRA_DEFINES);$(INTEROP_DEBUG_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          270  +      <MinimalRebuild>false</MinimalRebuild>
          271  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          272  +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
          273  +      <WarningLevel>Level4</WarningLevel>
          274  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          275  +      <CompileAs>Default</CompileAs>
          276  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);$(SQLITE_DISABLE_X64_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          277  +    </ClCompile>
          278  +    <ResourceCompile>
          279  +      <PreprocessorDefinitions>_DEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          280  +    </ResourceCompile>
          281  +    <Link>
          282  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          283  +      <AdditionalDependencies>$(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          284  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          285  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          286  +      <GenerateMapFile>true</GenerateMapFile>
          287  +      <MapExports>true</MapExports>
          288  +      <SubSystem>Windows</SubSystem>
          289  +      <OptimizeReferences>true</OptimizeReferences>
          290  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          291  +      <TargetMachine>MachineX64</TargetMachine>
          292  +    </Link>
          293  +    <Manifest>
          294  +      <VerboseOutput>true</VerboseOutput>
          295  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=amd64, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          296  +      <UpdateFileHashes>true</UpdateFileHashes>
          297  +    </Manifest>
          298  +    <PostBuildEvent>
          299  +      <Command>XCOPY "$(TargetPath)" "$(OutDir)..\..\Debug\bin\$(Platform)\" /D /E /V /I /F /H /Y
          300  +XCOPY "$(TargetPath)" "$(OutDir)..\..\Debug\bin\" /D /E /V /I /F /H /Y</Command>
          301  +    </PostBuildEvent>
          302  +  </ItemDefinitionGroup>
          303  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
          304  +    <ClCompile>
          305  +      <Optimization>Full</Optimization>
          306  +      <IntrinsicFunctions>true</IntrinsicFunctions>
          307  +      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
          308  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          309  +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_RELEASE_DEFINES);$(INTEROP_EXTRA_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          310  +      <MinimalRebuild>false</MinimalRebuild>
          311  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          312  +      <StringPooling>true</StringPooling>
          313  +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
          314  +      <WarningLevel>Level4</WarningLevel>
          315  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          316  +      <CompileAs>Default</CompileAs>
          317  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          318  +    </ClCompile>
          319  +    <ResourceCompile>
          320  +      <PreprocessorDefinitions>NDEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          321  +    </ResourceCompile>
          322  +    <Link>
          323  +      <AdditionalOptions>$(INTEROP_ASSEMBLY_RESOURCES) %(AdditionalOptions)</AdditionalOptions>
          324  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          325  +      <AdditionalDependencies>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Configuration)Module\bin\System.Data.SQLite.netmodule $(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          326  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          327  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          328  +      <GenerateMapFile>true</GenerateMapFile>
          329  +      <MapExports>true</MapExports>
          330  +      <SubSystem>Windows</SubSystem>
          331  +      <OptimizeReferences>true</OptimizeReferences>
          332  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          333  +      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
          334  +      <TargetMachine>MachineX86</TargetMachine>
          335  +      <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
          336  +      <KeyFile>$(INTEROP_KEY_FILE)</KeyFile>
          337  +      <DelaySign>true</DelaySign>
          338  +    </Link>
          339  +    <Manifest>
          340  +      <VerboseOutput>true</VerboseOutput>
          341  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=x86, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          342  +      <UpdateFileHashes>true</UpdateFileHashes>
          343  +    </Manifest>
          344  +    <PostBuildEvent>
          345  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'==''">"$(FrameworkSDKDir)Bin\sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          346  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'!=''">"$(TargetFrameworkSDKToolsDirectory)sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          347  +    </PostBuildEvent>
          348  +  </ItemDefinitionGroup>
          349  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
          350  +    <ClCompile>
          351  +      <Optimization>Full</Optimization>
          352  +      <IntrinsicFunctions>true</IntrinsicFunctions>
          353  +      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
          354  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          355  +      <PreprocessorDefinitions>WIN32;x64;NDEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_RELEASE_DEFINES);$(INTEROP_EXTRA_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          356  +      <MinimalRebuild>false</MinimalRebuild>
          357  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          358  +      <StringPooling>true</StringPooling>
          359  +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
          360  +      <WarningLevel>Level4</WarningLevel>
          361  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          362  +      <CompileAs>Default</CompileAs>
          363  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);$(SQLITE_DISABLE_X64_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          364  +    </ClCompile>
          365  +    <ResourceCompile>
          366  +      <PreprocessorDefinitions>NDEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          367  +    </ResourceCompile>
          368  +    <Link>
          369  +      <AdditionalOptions>$(INTEROP_ASSEMBLY_RESOURCES) %(AdditionalOptions)</AdditionalOptions>
          370  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          371  +      <AdditionalDependencies>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Configuration)Module\bin\System.Data.SQLite.netmodule $(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          372  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          373  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          374  +      <GenerateMapFile>true</GenerateMapFile>
          375  +      <MapExports>true</MapExports>
          376  +      <SubSystem>Windows</SubSystem>
          377  +      <OptimizeReferences>true</OptimizeReferences>
          378  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          379  +      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
          380  +      <TargetMachine>MachineX64</TargetMachine>
          381  +      <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
          382  +      <KeyFile>$(INTEROP_KEY_FILE)</KeyFile>
          383  +      <DelaySign>true</DelaySign>
          384  +    </Link>
          385  +    <Manifest>
          386  +      <VerboseOutput>true</VerboseOutput>
          387  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=amd64, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          388  +      <UpdateFileHashes>true</UpdateFileHashes>
          389  +    </Manifest>
          390  +    <PostBuildEvent>
          391  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'==''">"$(FrameworkSDKDir)Bin\sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          392  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'!=''">"$(TargetFrameworkSDKToolsDirectory)sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          393  +    </PostBuildEvent>
          394  +  </ItemDefinitionGroup>
          395  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|Win32'">
          396  +    <ClCompile>
          397  +      <Optimization>Full</Optimization>
          398  +      <IntrinsicFunctions>true</IntrinsicFunctions>
          399  +      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
          400  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          401  +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_RELEASE_DEFINES);$(INTEROP_EXTRA_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          402  +      <MinimalRebuild>false</MinimalRebuild>
          403  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          404  +      <StringPooling>true</StringPooling>
          405  +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
          406  +      <WarningLevel>Level4</WarningLevel>
          407  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          408  +      <CompileAs>Default</CompileAs>
          409  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          410  +    </ClCompile>
          411  +    <ResourceCompile>
          412  +      <PreprocessorDefinitions>NDEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          413  +    </ResourceCompile>
          414  +    <Link>
          415  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          416  +      <AdditionalDependencies>$(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          417  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          418  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          419  +      <GenerateMapFile>true</GenerateMapFile>
          420  +      <MapExports>true</MapExports>
          421  +      <SubSystem>Windows</SubSystem>
          422  +      <OptimizeReferences>true</OptimizeReferences>
          423  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          424  +      <TargetMachine>MachineX86</TargetMachine>
          425  +    </Link>
          426  +    <Manifest>
          427  +      <VerboseOutput>true</VerboseOutput>
          428  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=x86, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          429  +      <UpdateFileHashes>true</UpdateFileHashes>
          430  +    </Manifest>
          431  +    <PostBuildEvent>
          432  +      <Command>XCOPY "$(TargetPath)" "$(OutDir)..\..\Release\bin\$(Platform)\" /D /E /V /I /F /H /Y
          433  +XCOPY "$(TargetPath)" "$(OutDir)..\..\Release\bin\" /D /E /V /I /F /H /Y</Command>
          434  +    </PostBuildEvent>
          435  +  </ItemDefinitionGroup>
          436  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|x64'">
          437  +    <ClCompile>
          438  +      <Optimization>Full</Optimization>
          439  +      <IntrinsicFunctions>true</IntrinsicFunctions>
          440  +      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
          441  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          442  +      <PreprocessorDefinitions>WIN32;x64;NDEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_RELEASE_DEFINES);$(INTEROP_EXTRA_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          443  +      <MinimalRebuild>false</MinimalRebuild>
          444  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          445  +      <StringPooling>true</StringPooling>
          446  +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
          447  +      <WarningLevel>Level4</WarningLevel>
          448  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          449  +      <CompileAs>Default</CompileAs>
          450  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);$(SQLITE_DISABLE_X64_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          451  +    </ClCompile>
          452  +    <ResourceCompile>
          453  +      <PreprocessorDefinitions>NDEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          454  +    </ResourceCompile>
          455  +    <Link>
          456  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          457  +      <AdditionalDependencies>$(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          458  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          459  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          460  +      <GenerateMapFile>true</GenerateMapFile>
          461  +      <MapExports>true</MapExports>
          462  +      <SubSystem>Windows</SubSystem>
          463  +      <OptimizeReferences>true</OptimizeReferences>
          464  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          465  +      <TargetMachine>MachineX64</TargetMachine>
          466  +    </Link>
          467  +    <Manifest>
          468  +      <VerboseOutput>true</VerboseOutput>
          469  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=amd64, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          470  +      <UpdateFileHashes>true</UpdateFileHashes>
          471  +    </Manifest>
          472  +    <PostBuildEvent>
          473  +      <Command>XCOPY "$(TargetPath)" "$(OutDir)..\..\Release\bin\$(Platform)\" /D /E /V /I /F /H /Y
          474  +XCOPY "$(TargetPath)" "$(OutDir)..\..\Release\bin\" /D /E /V /I /F /H /Y</Command>
          475  +    </PostBuildEvent>
          476  +  </ItemDefinitionGroup>
          477  +  <ItemGroup>
          478  +    <ClCompile Include="src\win\AssemblyInfo.cpp">
          479  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          480  +    </ClCompile>
          481  +    <ClCompile Include="src\win\crypt.c">
          482  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          483  +    </ClCompile>
          484  +    <ClCompile Include="src\contrib\extension-functions.c">
          485  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          486  +    </ClCompile>
          487  +    <ClCompile Include="src\ext\regexp.c">
          488  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          489  +    </ClCompile>
          490  +    <ClCompile Include="src\ext\totype.c">
          491  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          492  +    </ClCompile>
          493  +    <ClCompile Include="src\ext\vtshim.c">
          494  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          495  +    </ClCompile>
          496  +    <ClCompile Include="src\win\interop.c" />
          497  +    <ClCompile Include="src\core\sqlite3.c">
          498  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          499  +    </ClCompile>
          500  +  </ItemGroup>
          501  +  <ItemGroup>
          502  +    <None Include="props\SQLite.Interop.2013.props" />
          503  +    <None Include="props\sqlite3.props" />
          504  +  </ItemGroup>
          505  +  <ItemGroup>
          506  +    <ClInclude Include="src\core\sqlite3.h" />
          507  +    <ClInclude Include="src\core\sqlite3ext.h" />
          508  +    <ClInclude Include="src\win\interop.h" />
          509  +  </ItemGroup>
          510  +  <ItemGroup>
          511  +    <ResourceCompile Include="src\win\SQLite.Interop.rc" />
          512  +  </ItemGroup>
          513  +  <ItemGroup>
          514  +    <EmbeddedResource Include="..\System.Data.SQLite\SR.resx">
          515  +      <LogicalName>System.Data.SQLite.%(Filename).resources</LogicalName>
          516  +      <SubType>Designer</SubType>
          517  +      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|Win32'">true</ExcludedFromBuild>
          518  +      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|x64'">true</ExcludedFromBuild>
          519  +      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|Win32'">true</ExcludedFromBuild>
          520  +      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|x64'">true</ExcludedFromBuild>
          521  +    </EmbeddedResource>
          522  +  </ItemGroup>
          523  +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
          524  +</Project>

Added SQLite.Interop/SQLite.Interop.2013.vcxproj.filters.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +<!--
            3  + *
            4  + * SQLite.Interop.2013.vcxproj.filters -
            5  + *
            6  + * Written by Joe Mistachkin.
            7  + * Released to the public domain, use at your own risk!
            8  + *
            9  +-->
           10  +<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
           11  +  <ItemGroup>
           12  +    <Filter Include="Source Files">
           13  +      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
           14  +      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
           15  +    </Filter>
           16  +    <Filter Include="Header Files">
           17  +      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
           18  +      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
           19  +    </Filter>
           20  +    <Filter Include="Resource Files">
           21  +      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
           22  +      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
           23  +    </Filter>
           24  +    <Filter Include="Property Files">
           25  +      <UniqueIdentifier>{d69d5c95-1d03-4325-ad06-fce223ab4e42}</UniqueIdentifier>
           26  +    </Filter>
           27  +  </ItemGroup>
           28  +  <ItemGroup>
           29  +    <ClCompile Include="src\win\AssemblyInfo.cpp">
           30  +      <Filter>Source Files</Filter>
           31  +    </ClCompile>
           32  +    <ClCompile Include="src\win\crypt.c">
           33  +      <Filter>Source Files</Filter>
           34  +    </ClCompile>
           35  +    <ClCompile Include="src\contrib\extension-functions.c">
           36  +      <Filter>Source Files</Filter>
           37  +    </ClCompile>
           38  +    <ClCompile Include="src\ext\regexp.c">
           39  +      <Filter>Source Files</Filter>
           40  +    </ClCompile>
           41  +    <ClCompile Include="src\ext\totype.c">
           42  +      <Filter>Source Files</Filter>
           43  +    </ClCompile>
           44  +    <ClCompile Include="src\ext\vtshim.c">
           45  +      <Filter>Source Files</Filter>
           46  +    </ClCompile>
           47  +    <ClCompile Include="src\win\interop.c">
           48  +      <Filter>Source Files</Filter>
           49  +    </ClCompile>
           50  +    <ClCompile Include="src\core\sqlite3.c">
           51  +      <Filter>Source Files</Filter>
           52  +    </ClCompile>
           53  +  </ItemGroup>
           54  +  <ItemGroup>
           55  +    <None Include="props\sqlite3.props">
           56  +      <Filter>Property Files</Filter>
           57  +    </None>
           58  +    <None Include="props\SQLite.Interop.2013.props">
           59  +      <Filter>Property Files</Filter>
           60  +    </None>
           61  +  </ItemGroup>
           62  +  <ItemGroup>
           63  +    <ClInclude Include="src\core\sqlite3.h">
           64  +      <Filter>Header Files</Filter>
           65  +    </ClInclude>
           66  +    <ClInclude Include="src\core\sqlite3ext.h">
           67  +      <Filter>Header Files</Filter>
           68  +    </ClInclude>
           69  +    <ClInclude Include="src\win\interop.h">
           70  +      <Filter>Header Files</Filter>
           71  +    </ClInclude>
           72  +  </ItemGroup>
           73  +  <ItemGroup>
           74  +    <ResourceCompile Include="src\win\SQLite.Interop.rc">
           75  +      <Filter>Resource Files</Filter>
           76  +    </ResourceCompile>
           77  +    <EmbeddedResource Include="..\System.Data.SQLite\SR.resx">
           78  +      <Filter>Resource Files</Filter>
           79  +    </EmbeddedResource>
           80  +  </ItemGroup>
           81  +</Project>

Added SQLite.Interop/SQLite.Interop.Static.2013.vcxproj.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +<!--
            3  + *
            4  + * SQLite.Interop.Static.2013.vcxproj -
            5  + *
            6  + * Written by Joe Mistachkin.
            7  + * Released to the public domain, use at your own risk!
            8  + *
            9  +-->
           10  +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
           11  +  <PropertyGroup>
           12  +    <SQLiteNetDir>$(MSBuildProjectDirectory)\..</SQLiteNetDir>
           13  +  </PropertyGroup>
           14  +  <Import Project="$(SQLiteNetDir)\SQLite.NET.Settings.targets" />
           15  +  <ItemGroup Label="ProjectConfigurations">
           16  +    <ProjectConfiguration Include="DebugNativeOnly|x64">
           17  +      <Configuration>DebugNativeOnly</Configuration>
           18  +      <Platform>x64</Platform>
           19  +    </ProjectConfiguration>
           20  +    <ProjectConfiguration Include="Debug|Win32">
           21  +      <Configuration>Debug</Configuration>
           22  +      <Platform>Win32</Platform>
           23  +    </ProjectConfiguration>
           24  +    <ProjectConfiguration Include="DebugNativeOnly|Win32">
           25  +      <Configuration>DebugNativeOnly</Configuration>
           26  +      <Platform>Win32</Platform>
           27  +    </ProjectConfiguration>
           28  +    <ProjectConfiguration Include="Debug|x64">
           29  +      <Configuration>Debug</Configuration>
           30  +      <Platform>x64</Platform>
           31  +    </ProjectConfiguration>
           32  +    <ProjectConfiguration Include="ReleaseNativeOnly|x64">
           33  +      <Configuration>ReleaseNativeOnly</Configuration>
           34  +      <Platform>x64</Platform>
           35  +    </ProjectConfiguration>
           36  +    <ProjectConfiguration Include="Release|Win32">
           37  +      <Configuration>Release</Configuration>
           38  +      <Platform>Win32</Platform>
           39  +    </ProjectConfiguration>
           40  +    <ProjectConfiguration Include="ReleaseNativeOnly|Win32">
           41  +      <Configuration>ReleaseNativeOnly</Configuration>
           42  +      <Platform>Win32</Platform>
           43  +    </ProjectConfiguration>
           44  +    <ProjectConfiguration Include="Release|x64">
           45  +      <Configuration>Release</Configuration>
           46  +      <Platform>x64</Platform>
           47  +    </ProjectConfiguration>
           48  +  </ItemGroup>
           49  +  <PropertyGroup Label="Globals">
           50  +    <ProjectName>SQLite.Interop.Static.2013</ProjectName>
           51  +    <ProjectGuid>{490CBC51-A3B2-4397-89F9-16E858DCB4F8}</ProjectGuid>
           52  +    <RootNamespace>SQLite.Interop</RootNamespace>
           53  +    <Keyword>Win32Proj</Keyword>
           54  +  </PropertyGroup>
           55  +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
           56  +  <Import Project="props\sqlite3.props" />
           57  +  <Import Project="props\SQLite.Interop.2013.props" />
           58  +  <Import Project="$(INTEROP_EXTRA_PROPS_FILE)"
           59  +          Condition="'$(INTEROP_EXTRA_PROPS_FILE)' != '' And
           60  +                     Exists('$(INTEROP_EXTRA_PROPS_FILE)')" />
           61  +  <PropertyGroup Condition="('$(Configuration)' == 'DebugNativeOnly' Or
           62  +                             '$(Configuration)' == 'ReleaseNativeOnly') And
           63  +                            (('$(Platform)' == 'Win32' And
           64  +                             ('$(PROCESSOR_ARCHITECTURE)' != 'x86' Or
           65  +                              '$(PROCESSOR_ARCHITEW6432)' != '')) Or
           66  +                             ('$(Platform)' == 'x64' And
           67  +                             ('$(PROCESSOR_ARCHITECTURE)' != 'x86' Or
           68  +                              '$(PROCESSOR_ARCHITEW6432)' != 'AMD64')))"
           69  +                 Label="PostBuildEvent">
           70  +    <PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
           71  +  </PropertyGroup>
           72  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
           73  +    <TargetName>$(INTEROP_MIXED_NAME)</TargetName>
           74  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           75  +    <CharacterSet>Unicode</CharacterSet>
           76  +    <PlatformToolset>v120</PlatformToolset>
           77  +  </PropertyGroup>
           78  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
           79  +    <TargetName>$(INTEROP_MIXED_NAME)</TargetName>
           80  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           81  +    <CharacterSet>Unicode</CharacterSet>
           82  +    <PlatformToolset>v120</PlatformToolset>
           83  +  </PropertyGroup>
           84  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|Win32'" Label="Configuration">
           85  +    <TargetName>$(INTEROP_NATIVE_NAME)</TargetName>
           86  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           87  +    <CharacterSet>Unicode</CharacterSet>
           88  +    <PlatformToolset>v120</PlatformToolset>
           89  +  </PropertyGroup>
           90  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|x64'" Label="Configuration">
           91  +    <TargetName>$(INTEROP_NATIVE_NAME)</TargetName>
           92  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           93  +    <CharacterSet>Unicode</CharacterSet>
           94  +    <PlatformToolset>v120</PlatformToolset>
           95  +  </PropertyGroup>
           96  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
           97  +    <TargetName>$(INTEROP_MIXED_NAME)</TargetName>
           98  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
           99  +    <CharacterSet>Unicode</CharacterSet>
          100  +    <WholeProgramOptimization>true</WholeProgramOptimization>
          101  +    <PlatformToolset>v120</PlatformToolset>
          102  +  </PropertyGroup>
          103  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
          104  +    <TargetName>$(INTEROP_MIXED_NAME)</TargetName>
          105  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
          106  +    <CharacterSet>Unicode</CharacterSet>
          107  +    <WholeProgramOptimization>true</WholeProgramOptimization>
          108  +    <PlatformToolset>v120</PlatformToolset>
          109  +  </PropertyGroup>
          110  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|Win32'" Label="Configuration">
          111  +    <TargetName>$(INTEROP_NATIVE_NAME)</TargetName>
          112  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
          113  +    <CharacterSet>Unicode</CharacterSet>
          114  +    <WholeProgramOptimization>true</WholeProgramOptimization>
          115  +    <PlatformToolset>v120</PlatformToolset>
          116  +  </PropertyGroup>
          117  +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|x64'" Label="Configuration">
          118  +    <TargetName>$(INTEROP_NATIVE_NAME)</TargetName>
          119  +    <ConfigurationType>DynamicLibrary</ConfigurationType>
          120  +    <CharacterSet>Unicode</CharacterSet>
          121  +    <WholeProgramOptimization>true</WholeProgramOptimization>
          122  +    <PlatformToolset>v120</PlatformToolset>
          123  +  </PropertyGroup>
          124  +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
          125  +  <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
          126  +  <PropertyGroup>
          127  +    <OutDir>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Platform)\$(Configuration)Static\</OutDir>
          128  +    <IntDir>..\obj\$(ConfigurationYear)\$(Platform)\$(Configuration)Static\</IntDir>
          129  +    <LinkIncremental>false</LinkIncremental>
          130  +    <LinkKeyFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(INTEROP_KEY_FILE)</LinkKeyFile>
          131  +    <LinkKeyFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(INTEROP_KEY_FILE)</LinkKeyFile>
          132  +    <LinkKeyFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(INTEROP_KEY_FILE)</LinkKeyFile>
          133  +    <LinkKeyFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(INTEROP_KEY_FILE)</LinkKeyFile>
          134  +    <LinkDelaySign Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkDelaySign>
          135  +    <LinkDelaySign Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkDelaySign>
          136  +    <LinkDelaySign Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</LinkDelaySign>
          137  +    <LinkDelaySign Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</LinkDelaySign>
          138  +  </PropertyGroup>
          139  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
          140  +    <ClCompile>
          141  +      <Optimization>Disabled</Optimization>
          142  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          143  +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_DEBUG_DEFINES);$(INTEROP_EXTRA_DEFINES);$(INTEROP_DEBUG_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          144  +      <MinimalRebuild>false</MinimalRebuild>
          145  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          146  +      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
          147  +      <WarningLevel>Level4</WarningLevel>
          148  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          149  +      <CompileAs>Default</CompileAs>
          150  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          151  +    </ClCompile>
          152  +    <ResourceCompile>
          153  +      <PreprocessorDefinitions>_DEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          154  +    </ResourceCompile>
          155  +    <Link>
          156  +      <AdditionalOptions>$(INTEROP_ASSEMBLY_RESOURCES) %(AdditionalOptions)</AdditionalOptions>
          157  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          158  +      <AdditionalDependencies>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Configuration)Module\bin\System.Data.SQLite.netmodule $(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          159  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          160  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          161  +      <AssemblyDebug>true</AssemblyDebug>
          162  +      <GenerateMapFile>true</GenerateMapFile>
          163  +      <MapExports>true</MapExports>
          164  +      <SubSystem>Windows</SubSystem>
          165  +      <OptimizeReferences>true</OptimizeReferences>
          166  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          167  +      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
          168  +      <TargetMachine>MachineX86</TargetMachine>
          169  +      <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
          170  +      <KeyFile>$(INTEROP_KEY_FILE)</KeyFile>
          171  +      <DelaySign>true</DelaySign>
          172  +    </Link>
          173  +    <Manifest>
          174  +      <VerboseOutput>true</VerboseOutput>
          175  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=x86, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          176  +      <UpdateFileHashes>true</UpdateFileHashes>
          177  +    </Manifest>
          178  +    <PostBuildEvent>
          179  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'==''">"$(FrameworkSDKDir)Bin\sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          180  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'!=''">"$(TargetFrameworkSDKToolsDirectory)sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          181  +    </PostBuildEvent>
          182  +  </ItemDefinitionGroup>
          183  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
          184  +    <ClCompile>
          185  +      <Optimization>Disabled</Optimization>
          186  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          187  +      <PreprocessorDefinitions>WIN32;x64;_DEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_DEBUG_DEFINES);$(INTEROP_EXTRA_DEFINES);$(INTEROP_DEBUG_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          188  +      <MinimalRebuild>false</MinimalRebuild>
          189  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          190  +      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
          191  +      <WarningLevel>Level4</WarningLevel>
          192  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          193  +      <CompileAs>Default</CompileAs>
          194  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);$(SQLITE_DISABLE_X64_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          195  +    </ClCompile>
          196  +    <ResourceCompile>
          197  +      <PreprocessorDefinitions>_DEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          198  +    </ResourceCompile>
          199  +    <Link>
          200  +      <AdditionalOptions>$(INTEROP_ASSEMBLY_RESOURCES) %(AdditionalOptions)</AdditionalOptions>
          201  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          202  +      <AdditionalDependencies>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Configuration)Module\bin\System.Data.SQLite.netmodule $(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          203  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          204  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          205  +      <AssemblyDebug>true</AssemblyDebug>
          206  +      <GenerateMapFile>true</GenerateMapFile>
          207  +      <MapExports>true</MapExports>
          208  +      <SubSystem>Windows</SubSystem>
          209  +      <OptimizeReferences>true</OptimizeReferences>
          210  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          211  +      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
          212  +      <TargetMachine>MachineX64</TargetMachine>
          213  +      <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
          214  +      <KeyFile>$(INTEROP_KEY_FILE)</KeyFile>
          215  +      <DelaySign>true</DelaySign>
          216  +    </Link>
          217  +    <Manifest>
          218  +      <VerboseOutput>true</VerboseOutput>
          219  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=amd64, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          220  +      <UpdateFileHashes>true</UpdateFileHashes>
          221  +    </Manifest>
          222  +    <PostBuildEvent>
          223  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'==''">"$(FrameworkSDKDir)Bin\sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          224  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'!=''">"$(TargetFrameworkSDKToolsDirectory)sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          225  +    </PostBuildEvent>
          226  +  </ItemDefinitionGroup>
          227  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|Win32'">
          228  +    <ClCompile>
          229  +      <Optimization>Disabled</Optimization>
          230  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          231  +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_DEBUG_DEFINES);$(INTEROP_EXTRA_DEFINES);$(INTEROP_DEBUG_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          232  +      <MinimalRebuild>false</MinimalRebuild>
          233  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          234  +      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
          235  +      <WarningLevel>Level4</WarningLevel>
          236  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          237  +      <CompileAs>Default</CompileAs>
          238  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          239  +    </ClCompile>
          240  +    <ResourceCompile>
          241  +      <PreprocessorDefinitions>_DEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          242  +    </ResourceCompile>
          243  +    <Link>
          244  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          245  +      <AdditionalDependencies>$(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          246  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          247  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          248  +      <GenerateMapFile>true</GenerateMapFile>
          249  +      <MapExports>true</MapExports>
          250  +      <SubSystem>Windows</SubSystem>
          251  +      <OptimizeReferences>true</OptimizeReferences>
          252  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          253  +      <TargetMachine>MachineX86</TargetMachine>
          254  +    </Link>
          255  +    <Manifest>
          256  +      <VerboseOutput>true</VerboseOutput>
          257  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=x86, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          258  +      <UpdateFileHashes>true</UpdateFileHashes>
          259  +    </Manifest>
          260  +    <PostBuildEvent>
          261  +      <Command>XCOPY "$(TargetPath)" "$(OutDir)..\..\Debug\bin\$(Platform)\" /D /E /V /I /F /H /Y
          262  +XCOPY "$(TargetPath)" "$(OutDir)..\..\Debug\bin\" /D /E /V /I /F /H /Y</Command>
          263  +    </PostBuildEvent>
          264  +  </ItemDefinitionGroup>
          265  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|x64'">
          266  +    <ClCompile>
          267  +      <Optimization>Disabled</Optimization>
          268  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          269  +      <PreprocessorDefinitions>WIN32;x64;_DEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_DEBUG_DEFINES);$(INTEROP_EXTRA_DEFINES);$(INTEROP_DEBUG_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          270  +      <MinimalRebuild>false</MinimalRebuild>
          271  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          272  +      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
          273  +      <WarningLevel>Level4</WarningLevel>
          274  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          275  +      <CompileAs>Default</CompileAs>
          276  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);$(SQLITE_DISABLE_X64_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          277  +    </ClCompile>
          278  +    <ResourceCompile>
          279  +      <PreprocessorDefinitions>_DEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          280  +    </ResourceCompile>
          281  +    <Link>
          282  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          283  +      <AdditionalDependencies>$(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          284  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          285  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          286  +      <GenerateMapFile>true</GenerateMapFile>
          287  +      <MapExports>true</MapExports>
          288  +      <SubSystem>Windows</SubSystem>
          289  +      <OptimizeReferences>true</OptimizeReferences>
          290  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          291  +      <TargetMachine>MachineX64</TargetMachine>
          292  +    </Link>
          293  +    <Manifest>
          294  +      <VerboseOutput>true</VerboseOutput>
          295  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=amd64, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          296  +      <UpdateFileHashes>true</UpdateFileHashes>
          297  +    </Manifest>
          298  +    <PostBuildEvent>
          299  +      <Command>XCOPY "$(TargetPath)" "$(OutDir)..\..\Debug\bin\$(Platform)\" /D /E /V /I /F /H /Y
          300  +XCOPY "$(TargetPath)" "$(OutDir)..\..\Debug\bin\" /D /E /V /I /F /H /Y</Command>
          301  +    </PostBuildEvent>
          302  +  </ItemDefinitionGroup>
          303  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
          304  +    <ClCompile>
          305  +      <Optimization>Full</Optimization>
          306  +      <IntrinsicFunctions>true</IntrinsicFunctions>
          307  +      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
          308  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          309  +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_RELEASE_DEFINES);$(INTEROP_EXTRA_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          310  +      <MinimalRebuild>false</MinimalRebuild>
          311  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          312  +      <StringPooling>true</StringPooling>
          313  +      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
          314  +      <WarningLevel>Level4</WarningLevel>
          315  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          316  +      <CompileAs>Default</CompileAs>
          317  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          318  +    </ClCompile>
          319  +    <ResourceCompile>
          320  +      <PreprocessorDefinitions>NDEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          321  +    </ResourceCompile>
          322  +    <Link>
          323  +      <AdditionalOptions>$(INTEROP_ASSEMBLY_RESOURCES) %(AdditionalOptions)</AdditionalOptions>
          324  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          325  +      <AdditionalDependencies>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Configuration)Module\bin\System.Data.SQLite.netmodule $(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          326  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          327  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          328  +      <GenerateMapFile>true</GenerateMapFile>
          329  +      <MapExports>true</MapExports>
          330  +      <SubSystem>Windows</SubSystem>
          331  +      <OptimizeReferences>true</OptimizeReferences>
          332  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          333  +      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
          334  +      <TargetMachine>MachineX86</TargetMachine>
          335  +      <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
          336  +      <KeyFile>$(INTEROP_KEY_FILE)</KeyFile>
          337  +      <DelaySign>true</DelaySign>
          338  +    </Link>
          339  +    <Manifest>
          340  +      <VerboseOutput>true</VerboseOutput>
          341  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=x86, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          342  +      <UpdateFileHashes>true</UpdateFileHashes>
          343  +    </Manifest>
          344  +    <PostBuildEvent>
          345  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'==''">"$(FrameworkSDKDir)Bin\sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          346  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'!=''">"$(TargetFrameworkSDKToolsDirectory)sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          347  +    </PostBuildEvent>
          348  +  </ItemDefinitionGroup>
          349  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
          350  +    <ClCompile>
          351  +      <Optimization>Full</Optimization>
          352  +      <IntrinsicFunctions>true</IntrinsicFunctions>
          353  +      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
          354  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          355  +      <PreprocessorDefinitions>WIN32;x64;NDEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_RELEASE_DEFINES);$(INTEROP_EXTRA_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          356  +      <MinimalRebuild>false</MinimalRebuild>
          357  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          358  +      <StringPooling>true</StringPooling>
          359  +      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
          360  +      <WarningLevel>Level4</WarningLevel>
          361  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          362  +      <CompileAs>Default</CompileAs>
          363  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);$(SQLITE_DISABLE_X64_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          364  +    </ClCompile>
          365  +    <ResourceCompile>
          366  +      <PreprocessorDefinitions>NDEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          367  +    </ResourceCompile>
          368  +    <Link>
          369  +      <AdditionalOptions>$(INTEROP_ASSEMBLY_RESOURCES) %(AdditionalOptions)</AdditionalOptions>
          370  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          371  +      <AdditionalDependencies>$(ProjectDir)..\bin\$(ConfigurationYear)\$(Configuration)Module\bin\System.Data.SQLite.netmodule $(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          372  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          373  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          374  +      <GenerateMapFile>true</GenerateMapFile>
          375  +      <MapExports>true</MapExports>
          376  +      <SubSystem>Windows</SubSystem>
          377  +      <OptimizeReferences>true</OptimizeReferences>
          378  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          379  +      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
          380  +      <TargetMachine>MachineX64</TargetMachine>
          381  +      <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
          382  +      <KeyFile>$(INTEROP_KEY_FILE)</KeyFile>
          383  +      <DelaySign>true</DelaySign>
          384  +    </Link>
          385  +    <Manifest>
          386  +      <VerboseOutput>true</VerboseOutput>
          387  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=amd64, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          388  +      <UpdateFileHashes>true</UpdateFileHashes>
          389  +    </Manifest>
          390  +    <PostBuildEvent>
          391  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'==''">"$(FrameworkSDKDir)Bin\sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          392  +      <Command Condition="'$(TargetFrameworkSDKToolsDirectory)'!=''">"$(TargetFrameworkSDKToolsDirectory)sn.exe" -Ra "$(TargetPath)" "$(INTEROP_KEY_FILE)"</Command>
          393  +    </PostBuildEvent>
          394  +  </ItemDefinitionGroup>
          395  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|Win32'">
          396  +    <ClCompile>
          397  +      <Optimization>Full</Optimization>
          398  +      <IntrinsicFunctions>true</IntrinsicFunctions>
          399  +      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
          400  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          401  +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_RELEASE_DEFINES);$(INTEROP_EXTRA_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          402  +      <MinimalRebuild>false</MinimalRebuild>
          403  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          404  +      <StringPooling>true</StringPooling>
          405  +      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
          406  +      <WarningLevel>Level4</WarningLevel>
          407  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          408  +      <CompileAs>Default</CompileAs>
          409  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          410  +    </ClCompile>
          411  +    <ResourceCompile>
          412  +      <PreprocessorDefinitions>NDEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          413  +    </ResourceCompile>
          414  +    <Link>
          415  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          416  +      <AdditionalDependencies>$(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          417  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          418  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          419  +      <GenerateMapFile>true</GenerateMapFile>
          420  +      <MapExports>true</MapExports>
          421  +      <SubSystem>Windows</SubSystem>
          422  +      <OptimizeReferences>true</OptimizeReferences>
          423  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          424  +      <TargetMachine>MachineX86</TargetMachine>
          425  +    </Link>
          426  +    <Manifest>
          427  +      <VerboseOutput>true</VerboseOutput>
          428  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=x86, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          429  +      <UpdateFileHashes>true</UpdateFileHashes>
          430  +    </Manifest>
          431  +    <PostBuildEvent>
          432  +      <Command>XCOPY "$(TargetPath)" "$(OutDir)..\..\Release\bin\$(Platform)\" /D /E /V /I /F /H /Y
          433  +XCOPY "$(TargetPath)" "$(OutDir)..\..\Release\bin\" /D /E /V /I /F /H /Y</Command>
          434  +    </PostBuildEvent>
          435  +  </ItemDefinitionGroup>
          436  +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|x64'">
          437  +    <ClCompile>
          438  +      <Optimization>Full</Optimization>
          439  +      <IntrinsicFunctions>true</IntrinsicFunctions>
          440  +      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
          441  +      <AdditionalIncludeDirectories>$(INTEROP_INCLUDE_DIRECTORIES);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
          442  +      <PreprocessorDefinitions>WIN32;x64;NDEBUG;_WINDOWS;_USRDLL;$(SQLITE_COMMON_DEFINES);$(SQLITE_EXTRA_DEFINES);$(SQLITE_RELEASE_DEFINES);$(INTEROP_EXTRA_DEFINES);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          443  +      <MinimalRebuild>false</MinimalRebuild>
          444  +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
          445  +      <StringPooling>true</StringPooling>
          446  +      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
          447  +      <WarningLevel>Level4</WarningLevel>
          448  +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
          449  +      <CompileAs>Default</CompileAs>
          450  +      <DisableSpecificWarnings>$(SQLITE_DISABLE_WARNINGS);$(SQLITE_DISABLE_X64_WARNINGS);%(DisableSpecificWarnings)</DisableSpecificWarnings>
          451  +    </ClCompile>
          452  +    <ResourceCompile>
          453  +      <PreprocessorDefinitions>NDEBUG;INTEROP_RC_VERSION=$(INTEROP_RC_VERSION);%(PreprocessorDefinitions)</PreprocessorDefinitions>
          454  +    </ResourceCompile>
          455  +    <Link>
          456  +      <AdditionalLibraryDirectories>$(INTEROP_LIBRARY_DIRECTORIES)</AdditionalLibraryDirectories>
          457  +      <AdditionalDependencies>$(INTEROP_LIBRARY_DEPENDENCIES);%(AdditionalDependencies)</AdditionalDependencies>
          458  +      <Version>$(INTEROP_LINKER_VERSION)</Version>
          459  +      <GenerateDebugInformation>true</GenerateDebugInformation>
          460  +      <GenerateMapFile>true</GenerateMapFile>
          461  +      <MapExports>true</MapExports>
          462  +      <SubSystem>Windows</SubSystem>
          463  +      <OptimizeReferences>true</OptimizeReferences>
          464  +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
          465  +      <TargetMachine>MachineX64</TargetMachine>
          466  +    </Link>
          467  +    <Manifest>
          468  +      <VerboseOutput>true</VerboseOutput>
          469  +      <AssemblyIdentity>$(ProjectName), processorArchitecture=amd64, version=$(INTEROP_MANIFEST_VERSION), type=win32</AssemblyIdentity>
          470  +      <UpdateFileHashes>true</UpdateFileHashes>
          471  +    </Manifest>
          472  +    <PostBuildEvent>
          473  +      <Command>XCOPY "$(TargetPath)" "$(OutDir)..\..\Release\bin\$(Platform)\" /D /E /V /I /F /H /Y
          474  +XCOPY "$(TargetPath)" "$(OutDir)..\..\Release\bin\" /D /E /V /I /F /H /Y</Command>
          475  +    </PostBuildEvent>
          476  +  </ItemDefinitionGroup>
          477  +  <ItemGroup>
          478  +    <ClCompile Include="src\win\AssemblyInfo.cpp">
          479  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          480  +    </ClCompile>
          481  +    <ClCompile Include="src\win\crypt.c">
          482  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          483  +    </ClCompile>
          484  +    <ClCompile Include="src\contrib\extension-functions.c">
          485  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          486  +    </ClCompile>
          487  +    <ClCompile Include="src\ext\regexp.c">
          488  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          489  +    </ClCompile>
          490  +    <ClCompile Include="src\ext\totype.c">
          491  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          492  +    </ClCompile>
          493  +    <ClCompile Include="src\ext\vtshim.c">
          494  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          495  +    </ClCompile>
          496  +    <ClCompile Include="src\win\interop.c" />
          497  +    <ClCompile Include="src\core\sqlite3.c">
          498  +      <ExcludedFromBuild>true</ExcludedFromBuild>
          499  +    </ClCompile>
          500  +  </ItemGroup>
          501  +  <ItemGroup>
          502  +    <None Include="props\SQLite.Interop.2013.props" />
          503  +    <None Include="props\sqlite3.props" />
          504  +  </ItemGroup>
          505  +  <ItemGroup>
          506  +    <ClInclude Include="src\core\sqlite3.h" />
          507  +    <ClInclude Include="src\core\sqlite3ext.h" />
          508  +    <ClInclude Include="src\win\interop.h" />
          509  +  </ItemGroup>
          510  +  <ItemGroup>
          511  +    <ResourceCompile Include="src\win\SQLite.Interop.rc" />
          512  +  </ItemGroup>
          513  +  <ItemGroup>
          514  +    <EmbeddedResource Include="..\System.Data.SQLite\SR.resx">
          515  +      <LogicalName>System.Data.SQLite.%(Filename).resources</LogicalName>
          516  +      <SubType>Designer</SubType>
          517  +      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|Win32'">true</ExcludedFromBuild>
          518  +      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugNativeOnly|x64'">true</ExcludedFromBuild>
          519  +      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|Win32'">true</ExcludedFromBuild>
          520  +      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='ReleaseNativeOnly|x64'">true</ExcludedFromBuild>
          521  +    </EmbeddedResource>
          522  +  </ItemGroup>
          523  +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
          524  +</Project>

Added SQLite.Interop/SQLite.Interop.Static.2013.vcxproj.filters.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +<!--
            3  + *
            4  + * SQLite.Interop.Static.2013.vcxproj.filters -
            5  + *
            6  + * Written by Joe Mistachkin.
            7  + * Released to the public domain, use at your own risk!
            8  + *
            9  +-->
           10  +<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
           11  +  <ItemGroup>
           12  +    <Filter Include="Source Files">
           13  +      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
           14  +      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
           15  +    </Filter>
           16  +    <Filter Include="Header Files">
           17  +      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
           18  +      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
           19  +    </Filter>
           20  +    <Filter Include="Resource Files">
           21  +      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
           22  +      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
           23  +    </Filter>
           24  +    <Filter Include="Property Files">
           25  +      <UniqueIdentifier>{d69d5c95-1d03-4325-ad06-fce223ab4e42}</UniqueIdentifier>
           26  +    </Filter>
           27  +  </ItemGroup>
           28  +  <ItemGroup>
           29  +    <ClCompile Include="src\win\AssemblyInfo.cpp">
           30  +      <Filter>Source Files</Filter>
           31  +    </ClCompile>
           32  +    <ClCompile Include="src\win\crypt.c">
           33  +      <Filter>Source Files</Filter>
           34  +    </ClCompile>
           35  +    <ClCompile Include="src\contrib\extension-functions.c">
           36  +      <Filter>Source Files</Filter>
           37  +    </ClCompile>
           38  +    <ClCompile Include="src\ext\regexp.c">
           39  +      <Filter>Source Files</Filter>
           40  +    </ClCompile>
           41  +    <ClCompile Include="src\ext\totype.c">
           42  +      <Filter>Source Files</Filter>
           43  +    </ClCompile>
           44  +    <ClCompile Include="src\ext\vtshim.c">
           45  +      <Filter>Source Files</Filter>
           46  +    </ClCompile>
           47  +    <ClCompile Include="src\win\interop.c">
           48  +      <Filter>Source Files</Filter>
           49  +    </ClCompile>
           50  +    <ClCompile Include="src\core\sqlite3.c">
           51  +      <Filter>Source Files</Filter>
           52  +    </ClCompile>
           53  +  </ItemGroup>
           54  +  <ItemGroup>
           55  +    <None Include="props\sqlite3.props">
           56  +      <Filter>Property Files</Filter>
           57  +    </None>
           58  +    <None Include="props\SQLite.Interop.2013.props">
           59  +      <Filter>Property Files</Filter>
           60  +    </None>
           61  +  </ItemGroup>
           62  +  <ItemGroup>
           63  +    <ClInclude Include="src\core\sqlite3.h">
           64  +      <Filter>Header Files</Filter>
           65  +    </ClInclude>
           66  +    <ClInclude Include="src\core\sqlite3ext.h">
           67  +      <Filter>Header Files</Filter>
           68  +    </ClInclude>
           69  +    <ClInclude Include="src\win\interop.h">
           70  +      <Filter>Header Files</Filter>
           71  +    </ClInclude>
           72  +  </ItemGroup>
           73  +  <ItemGroup>
           74  +    <ResourceCompile Include="src\win\SQLite.Interop.rc">
           75  +      <Filter>Resource Files</Filter>
           76  +    </ResourceCompile>
           77  +    <EmbeddedResource Include="..\System.Data.SQLite\SR.resx">
           78  +      <Filter>Resource Files</Filter>
           79  +    </EmbeddedResource>
           80  +  </ItemGroup>
           81  +</Project>

Added SQLite.Interop/props/SQLite.Interop.2013.props.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +<!--
            3  + *
            4  + * SQLite.Interop.2013.props -
            5  + *
            6  + * Written by Joe Mistachkin.
            7  + * Released to the public domain, use at your own risk!
            8  + *
            9  +-->
           10  +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
           11  +  <PropertyGroup Label="UserMacros">
           12  +    <ConfigurationYear>2013</ConfigurationYear>
           13  +    <INTEROP_BUILD_NUMBER>090</INTEROP_BUILD_NUMBER>
           14  +    <INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION>
           15  +    <INTEROP_MANIFEST_VERSION>1.0.90.0</INTEROP_MANIFEST_VERSION>
           16  +    <INTEROP_RC_VERSION>1,0,90,0</INTEROP_RC_VERSION>
           17  +    <INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES>
           18  +    <INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES>
           19  +    <INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES>
           20  +    <INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES>
           21  +    <INTEROP_EXTRA_DEFINES>INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1</INTEROP_EXTRA_DEFINES>
           22  +    <INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES>
           23  +    <INTEROP_KEY_FILE>$(ProjectDir)..\System.Data.SQLite\System.Data.SQLite.snk</INTEROP_KEY_FILE>
           24  +    <INTEROP_NATIVE_NAME>SQLite.Interop</INTEROP_NATIVE_NAME>
           25  +    <INTEROP_MIXED_NAME>System.Data.SQLite</INTEROP_MIXED_NAME>
           26  +  </PropertyGroup>
           27  +  <ItemGroup>
           28  +    <BuildMacro Include="ConfigurationYear">
           29  +      <Value>$(ConfigurationYear)</Value>
           30  +      <EnvironmentVariable>true</EnvironmentVariable>
           31  +    </BuildMacro>
           32  +    <BuildMacro Include="INTEROP_BUILD_NUMBER">
           33  +      <Value>$(INTEROP_BUILD_NUMBER)</Value>
           34  +      <EnvironmentVariable>true</EnvironmentVariable>
           35  +    </BuildMacro>
           36  +    <BuildMacro Include="INTEROP_LINKER_VERSION">
           37  +      <Value>$(INTEROP_LINKER_VERSION)</Value>
           38  +      <EnvironmentVariable>true</EnvironmentVariable>
           39  +    </BuildMacro>
           40  +    <BuildMacro Include="INTEROP_MANIFEST_VERSION">
           41  +      <Value>$(INTEROP_MANIFEST_VERSION)</Value>
           42  +      <EnvironmentVariable>true</EnvironmentVariable>
           43  +    </BuildMacro>
           44  +    <BuildMacro Include="INTEROP_RC_VERSION">
           45  +      <Value>$(INTEROP_RC_VERSION)</Value>
           46  +      <EnvironmentVariable>true</EnvironmentVariable>
           47  +    </BuildMacro>
           48  +    <BuildMacro Include="INTEROP_INCLUDE_DIRECTORIES">
           49  +      <Value>$(INTEROP_INCLUDE_DIRECTORIES)</Value>
           50  +      <EnvironmentVariable>true</EnvironmentVariable>
           51  +    </BuildMacro>
           52  +    <BuildMacro Include="INTEROP_LIBRARY_DIRECTORIES">
           53  +      <Value>$(INTEROP_LIBRARY_DIRECTORIES)</Value>
           54  +      <EnvironmentVariable>true</EnvironmentVariable>
           55  +    </BuildMacro>
           56  +    <BuildMacro Include="INTEROP_LIBRARY_DEPENDENCIES">
           57  +      <Value>$(INTEROP_LIBRARY_DEPENDENCIES)</Value>
           58  +      <EnvironmentVariable>true</EnvironmentVariable>
           59  +    </BuildMacro>
           60  +    <BuildMacro Include="INTEROP_DEBUG_DEFINES">
           61  +      <Value>$(INTEROP_DEBUG_DEFINES)</Value>
           62  +      <EnvironmentVariable>true</EnvironmentVariable>
           63  +    </BuildMacro>
           64  +    <BuildMacro Include="INTEROP_EXTRA_DEFINES">
           65  +      <Value>$(INTEROP_EXTRA_DEFINES)</Value>
           66  +      <EnvironmentVariable>true</EnvironmentVariable>
           67  +    </BuildMacro>
           68  +    <BuildMacro Include="INTEROP_ASSEMBLY_RESOURCES">
           69  +      <Value>$(INTEROP_ASSEMBLY_RESOURCES)</Value>
           70  +      <EnvironmentVariable>true</EnvironmentVariable>
           71  +    </BuildMacro>
           72  +    <BuildMacro Include="INTEROP_KEY_FILE">
           73  +      <Value>$(INTEROP_KEY_FILE)</Value>
           74  +      <EnvironmentVariable>true</EnvironmentVariable>
           75  +    </BuildMacro>
           76  +    <BuildMacro Include="INTEROP_NATIVE_NAME">
           77  +      <Value>$(INTEROP_NATIVE_NAME)</Value>
           78  +      <EnvironmentVariable>true</EnvironmentVariable>
           79  +    </BuildMacro>
           80  +    <BuildMacro Include="INTEROP_MIXED_NAME">
           81  +      <Value>$(INTEROP_MIXED_NAME)</Value>
           82  +      <EnvironmentVariable>true</EnvironmentVariable>
           83  +    </BuildMacro>
           84  +  </ItemGroup>
           85  +</Project>

Changes to SQLite.Interop/src/contrib/extension-functions.c.

    89     89   
    90     90   */
    91     91   
    92     92   /* #include "config.h" */
    93     93   #include <windows.h>
    94     94   
    95     95   /* #define COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE */
    96         -/* #define HAVE_ACOSH 1 */
    97         -/* #define HAVE_ASINH 1 */
    98         -/* #define HAVE_ATANH 1 */
    99         -#define HAVE_SINH 1
   100         -#define HAVE_COSH 1
   101         -#define HAVE_TANH 1
   102         -#define HAVE_LOG10 1
   103         -/* #define HAVE_ISBLANK 1 */
   104         -#define SQLITE_SOUNDEX 1
   105         -#define HAVE_TRIM 1		/* LMH 2007-03-25 if sqlite has trim functions */
           96  +
           97  +/* NOTE: More functions are available with MSVC 2013. */
           98  +#if defined(_MSC_VER) && _MSC_VER >= 1800
           99  +#  define HAVE_ACOSH		1
          100  +#  define HAVE_ASINH		1
          101  +#  define HAVE_ATANH		1
          102  +#  define HAVE_ISBLANK		1
          103  +#endif
          104  +
          105  +#define HAVE_SINH		1
          106  +#define HAVE_COSH		1
          107  +#define HAVE_TANH		1
          108  +#define HAVE_LOG10		1
          109  +#define SQLITE_SOUNDEX		1
          110  +
          111  +/* LMH 2007-03-25 if SQLite has trim functions */
          112  +#define HAVE_TRIM		1
   106    113   
   107    114   #ifdef COMPILE_SQLITE_EXTENSIONS_AS_LOADABLE_MODULE
   108    115   #include "../core/sqlite3ext.h"
   109    116   SQLITE_EXTENSION_INIT1
   110    117   #else
   111    118   #include "../core/sqlite3.h"
   112    119   #endif
................................................................................
   117    124   #include <string.h>
   118    125   #include <stdio.h>
   119    126   
   120    127   #if !defined(_WIN32_WCE) || defined(HAVE_ERRNO_H)
   121    128   #include <errno.h>		/* LMH 2007-03-25 */
   122    129   #else
   123    130   int errno;
   124         -#define strerror(x) ""
          131  +#define strerror(x)		""
   125    132   #endif
   126    133   
   127    134   #include <stdlib.h>
   128    135   #include <assert.h>
   129    136   
   130    137   #ifndef _MAP_H_
   131    138   #define _MAP_H_

Changes to SQLite.Interop/src/core/sqlite3.c.

   133    133   **
   134    134   ** See also: [sqlite3_libversion()],
   135    135   ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
   136    136   ** [sqlite_version()] and [sqlite_source_id()].
   137    137   */
   138    138   #define SQLITE_VERSION        "3.8.2"
   139    139   #define SQLITE_VERSION_NUMBER 3008002
   140         -#define SQLITE_SOURCE_ID      "2013-11-22 21:32:44 f336c18fb72ab90e93640b12ac540d41accc7658"
          140  +#define SQLITE_SOURCE_ID      "2013-11-27 04:22:27 83c0bb9913838d18ba355033afde6e38b4690842"
   141    141   
   142    142   /*
   143    143   ** CAPI3REF: Run-Time Library Version Numbers
   144    144   ** KEYWORDS: sqlite3_version, sqlite3_sourceid
   145    145   **
   146    146   ** These interfaces provide the same information as the [SQLITE_VERSION],
   147    147   ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
................................................................................
  1711   1711   ** either the [PRAGMA mmap_size] command, or by using the
  1712   1712   ** [SQLITE_FCNTL_MMAP_SIZE] file control.  ^(The maximum allowed mmap size
  1713   1713   ** cannot be changed at run-time.  Nor may the maximum allowed mmap size
  1714   1714   ** exceed the compile-time maximum mmap size set by the
  1715   1715   ** [SQLITE_MAX_MMAP_SIZE] compile-time option.)^
  1716   1716   ** ^If either argument to this option is negative, then that argument is
  1717   1717   ** changed to its compile-time default.
         1718  +**
         1719  +** [[SQLITE_CONFIG_WIN32_HEAPSIZE]]
         1720  +** <dt>SQLITE_CONFIG_WIN32_HEAPSIZE
         1721  +** <dd>^This option is only available if SQLite is compiled for Windows
         1722  +** with the [SQLITE_WIN32_MALLOC] pre-processor macro defined.
         1723  +** SQLITE_CONFIG_WIN32_HEAPSIZE takes a 32-bit unsigned integer value
         1724  +** that specifies the maximum size of the created heap.
  1718   1725   ** </dl>
  1719   1726   */
  1720   1727   #define SQLITE_CONFIG_SINGLETHREAD  1  /* nil */
  1721   1728   #define SQLITE_CONFIG_MULTITHREAD   2  /* nil */
  1722   1729   #define SQLITE_CONFIG_SERIALIZED    3  /* nil */
  1723   1730   #define SQLITE_CONFIG_MALLOC        4  /* sqlite3_mem_methods* */
  1724   1731   #define SQLITE_CONFIG_GETMALLOC     5  /* sqlite3_mem_methods* */
................................................................................
  1735   1742   #define SQLITE_CONFIG_LOG          16  /* xFunc, void* */
  1736   1743   #define SQLITE_CONFIG_URI          17  /* int */
  1737   1744   #define SQLITE_CONFIG_PCACHE2      18  /* sqlite3_pcache_methods2* */
  1738   1745   #define SQLITE_CONFIG_GETPCACHE2   19  /* sqlite3_pcache_methods2* */
  1739   1746   #define SQLITE_CONFIG_COVERING_INDEX_SCAN 20  /* int */
  1740   1747   #define SQLITE_CONFIG_SQLLOG       21  /* xSqllog, void* */
  1741   1748   #define SQLITE_CONFIG_MMAP_SIZE    22  /* sqlite3_int64, sqlite3_int64 */
         1749  +#define SQLITE_CONFIG_WIN32_HEAPSIZE      23  /* int nByte */
  1742   1750   
  1743   1751   /*
  1744   1752   ** CAPI3REF: Database Connection Configuration Options
  1745   1753   **
  1746   1754   ** These constants are the available integer configuration options that
  1747   1755   ** can be passed as the second argument to the [sqlite3_db_config()] interface.
  1748   1756   **
................................................................................
 17495  17503       int i = ((u8 *)p-mem5.zPool)/mem5.szAtom;
 17496  17504       assert( i>=0 && i<mem5.nBlock );
 17497  17505       iSize = mem5.szAtom * (1 << (mem5.aCtrl[i]&CTRL_LOGSIZE));
 17498  17506     }
 17499  17507     return iSize;
 17500  17508   }
 17501  17509   
 17502         -/*
 17503         -** Find the first entry on the freelist iLogsize.  Unlink that
 17504         -** entry and return its index. 
 17505         -*/
 17506         -static int memsys5UnlinkFirst(int iLogsize){
 17507         -  int i;
 17508         -  int iFirst;
 17509         -
 17510         -  assert( iLogsize>=0 && iLogsize<=LOGMAX );
 17511         -  i = iFirst = mem5.aiFreelist[iLogsize];
 17512         -  assert( iFirst>=0 );
 17513         -  while( i>0 ){
 17514         -    if( i<iFirst ) iFirst = i;
 17515         -    i = MEM5LINK(i)->next;
 17516         -  }
 17517         -  memsys5Unlink(iFirst, iLogsize);
 17518         -  return iFirst;
 17519         -}
 17520         -
 17521  17510   /*
 17522  17511   ** Return a block of memory of at least nBytes in size.
 17523  17512   ** Return NULL if unable.  Return NULL if nBytes==0.
 17524  17513   **
 17525  17514   ** The caller guarantees that nByte is positive.
 17526  17515   **
 17527  17516   ** The caller has obtained a mutex prior to invoking this
................................................................................
 17559  17548     */
 17560  17549     for(iBin=iLogsize; mem5.aiFreelist[iBin]<0 && iBin<=LOGMAX; iBin++){}
 17561  17550     if( iBin>LOGMAX ){
 17562  17551       testcase( sqlite3GlobalConfig.xLog!=0 );
 17563  17552       sqlite3_log(SQLITE_NOMEM, "failed to allocate %u bytes", nByte);
 17564  17553       return 0;
 17565  17554     }
 17566         -  i = memsys5UnlinkFirst(iBin);
        17555  +  i = mem5.aiFreelist[iBin];
        17556  +  memsys5Unlink(i, iBin);
 17567  17557     while( iBin>iLogsize ){
 17568  17558       int newSize;
 17569  17559   
 17570  17560       iBin--;
 17571  17561       newSize = 1 << iBin;
 17572  17562       mem5.aCtrl[i+newSize] = CTRL_FREE | iBin;
 17573  17563       memsys5Link(i+newSize, iBin);
................................................................................
 21848  21838     }
 21849  21839     zStart = zNum;
 21850  21840     while( zNum<zEnd && zNum[0]=='0' ){ zNum+=incr; } /* Skip leading zeros. */
 21851  21841     for(i=0; &zNum[i]<zEnd && (c=zNum[i])>='0' && c<='9'; i+=incr){
 21852  21842       u = u*10 + c - '0';
 21853  21843     }
 21854  21844     if( u>LARGEST_INT64 ){
 21855         -    *pNum = SMALLEST_INT64;
        21845  +    *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64;
 21856  21846     }else if( neg ){
 21857  21847       *pNum = -(i64)u;
 21858  21848     }else{
 21859  21849       *pNum = (i64)u;
 21860  21850     }
 21861  21851     testcase( i==18 );
 21862  21852     testcase( i==19 );
................................................................................
 21879  21869       }else if( c>0 ){
 21880  21870         /* zNum is greater than 9223372036854775808 so it overflows */
 21881  21871         return 1;
 21882  21872       }else{
 21883  21873         /* zNum is exactly 9223372036854775808.  Fits if negative.  The
 21884  21874         ** special case 2 overflow if positive */
 21885  21875         assert( u-1==LARGEST_INT64 );
 21886         -      assert( (*pNum)==SMALLEST_INT64 );
 21887  21876         return neg ? 0 : 2;
 21888  21877       }
 21889  21878     }
 21890  21879   }
 21891  21880   
 21892  21881   /*
 21893  21882   ** If zNum represents an integer that will fit in 32-bits, then set
................................................................................
 31002  30991   ** Make sure at least one set of Win32 APIs is available.
 31003  30992   */
 31004  30993   #if !defined(SQLITE_WIN32_HAS_ANSI) && !defined(SQLITE_WIN32_HAS_WIDE)
 31005  30994   #  error "At least one of SQLITE_WIN32_HAS_ANSI and SQLITE_WIN32_HAS_WIDE\
 31006  30995    must be defined."
 31007  30996   #endif
 31008  30997   
        30998  +/*
        30999  +** Define the required Windows SDK version constants if they are not
        31000  +** already available.
        31001  +*/
        31002  +#ifndef NTDDI_WIN8
        31003  +#  define NTDDI_WIN8                        0x06020000
        31004  +#endif
        31005  +
        31006  +#ifndef NTDDI_WINBLUE
        31007  +#  define NTDDI_WINBLUE                     0x06030000
        31008  +#endif
        31009  +
        31010  +/*
        31011  +** Check if the GetVersionEx[AW] functions should be considered deprecated
        31012  +** and avoid using them in that case.  It should be noted here that if the
        31013  +** value of the SQLITE_WIN32_GETVERSIONEX pre-processor macro is zero
        31014  +** (whether via this block or via being manually specified), that implies
        31015  +** the underlying operating system will always be based on the Windows NT
        31016  +** Kernel.
        31017  +*/
        31018  +#ifndef SQLITE_WIN32_GETVERSIONEX
        31019  +#  if defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_WINBLUE
        31020  +#    define SQLITE_WIN32_GETVERSIONEX   0
        31021  +#  else
        31022  +#    define SQLITE_WIN32_GETVERSIONEX   1
        31023  +#  endif
        31024  +#endif
        31025  +
 31009  31026   /*
 31010  31027   ** This constant should already be defined (in the "WinDef.h" SDK file).
 31011  31028   */
 31012  31029   #ifndef MAX_PATH
 31013  31030   #  define MAX_PATH                      (260)
 31014  31031   #endif
 31015  31032   
................................................................................
 31637  31654     { "GetTickCount",            (SYSCALL)GetTickCount,            0 },
 31638  31655   #else
 31639  31656     { "GetTickCount",            (SYSCALL)0,                       0 },
 31640  31657   #endif
 31641  31658   
 31642  31659   #define osGetTickCount ((DWORD(WINAPI*)(VOID))aSyscall[33].pCurrent)
 31643  31660   
 31644         -#if defined(SQLITE_WIN32_HAS_ANSI)
        31661  +#if defined(SQLITE_WIN32_HAS_ANSI) && defined(SQLITE_WIN32_GETVERSIONEX) && \
        31662  +        SQLITE_WIN32_GETVERSIONEX
 31645  31663     { "GetVersionExA",           (SYSCALL)GetVersionExA,           0 },
 31646  31664   #else
 31647  31665     { "GetVersionExA",           (SYSCALL)0,                       0 },
 31648  31666   #endif
 31649  31667   
 31650  31668   #define osGetVersionExA ((BOOL(WINAPI*)( \
 31651  31669           LPOSVERSIONINFOA))aSyscall[34].pCurrent)
 31652  31670   
 31653         -#if !SQLITE_OS_WINRT && defined(SQLITE_WIN32_HAS_WIDE)
        31671  +#if !SQLITE_OS_WINRT && defined(SQLITE_WIN32_HAS_WIDE) && \
        31672  +        defined(SQLITE_WIN32_GETVERSIONEX) && SQLITE_WIN32_GETVERSIONEX
 31654  31673     { "GetVersionExW",           (SYSCALL)GetVersionExW,           0 },
 31655  31674   #else
 31656  31675     { "GetVersionExW",           (SYSCALL)0,                       0 },
 31657  31676   #endif
 31658  31677   
 31659  31678   #define osGetVersionExW ((BOOL(WINAPI*)( \
 31660  31679           LPOSVERSIONINFOW))aSyscall[35].pCurrent)
................................................................................
 32203  32222   ** Here is an interesting observation:  Win95, Win98, and WinME lack
 32204  32223   ** the LockFileEx() API.  But we can still statically link against that
 32205  32224   ** API as long as we don't call it when running Win95/98/ME.  A call to
 32206  32225   ** this routine is used to determine if the host is Win95/98/ME or
 32207  32226   ** WinNT/2K/XP so that we will know whether or not we can safely call
 32208  32227   ** the LockFileEx() API.
 32209  32228   */
 32210         -#ifndef NTDDI_WIN8
 32211         -#  define NTDDI_WIN8                        0x06020000
 32212         -#endif
 32213  32229   
 32214         -#if SQLITE_OS_WINCE || SQLITE_OS_WINRT || !defined(SQLITE_WIN32_HAS_ANSI)
        32230  +#if !defined(SQLITE_WIN32_GETVERSIONEX) || !SQLITE_WIN32_GETVERSIONEX
        32231  +# define osIsNT()  (1)
        32232  +#elif SQLITE_OS_WINCE || SQLITE_OS_WINRT || !defined(SQLITE_WIN32_HAS_ANSI)
 32215  32233   # define osIsNT()  (1)
 32216  32234   #elif !defined(SQLITE_WIN32_HAS_WIDE)
 32217  32235   # define osIsNT()  (0)
 32218  32236   #else
 32219  32237     static int osIsNT(void){
 32220  32238       if( sqlite3_os_type==0 ){
 32221  32239   #if defined(NTDDI_VERSION) && NTDDI_VERSION >= NTDDI_WIN8
................................................................................
 32344  32362   
 32345  32363     if( !pWinMemData ) return SQLITE_ERROR;
 32346  32364     assert( pWinMemData->magic1==WINMEM_MAGIC1 );
 32347  32365     assert( pWinMemData->magic2==WINMEM_MAGIC2 );
 32348  32366   
 32349  32367   #if !SQLITE_OS_WINRT && SQLITE_WIN32_HEAP_CREATE
 32350  32368     if( !pWinMemData->hHeap ){
        32369  +    DWORD dwInitialSize = SQLITE_WIN32_HEAP_INIT_SIZE;
        32370  +    DWORD dwMaximumSize = (DWORD)sqlite3GlobalConfig.nHeap;
        32371  +    if( dwMaximumSize==0 ){
        32372  +      dwMaximumSize = SQLITE_WIN32_HEAP_MAX_SIZE;
        32373  +    }else if( dwInitialSize>dwMaximumSize ){
        32374  +      dwInitialSize = dwMaximumSize;
        32375  +    }
 32351  32376       pWinMemData->hHeap = osHeapCreate(SQLITE_WIN32_HEAP_FLAGS,
 32352         -                                      SQLITE_WIN32_HEAP_INIT_SIZE,
 32353         -                                      SQLITE_WIN32_HEAP_MAX_SIZE);
        32377  +                                      dwInitialSize, dwMaximumSize);
 32354  32378       if( !pWinMemData->hHeap ){
 32355  32379         sqlite3_log(SQLITE_NOMEM,
 32356         -          "failed to HeapCreate (%lu), flags=%u, initSize=%u, maxSize=%u",
 32357         -          osGetLastError(), SQLITE_WIN32_HEAP_FLAGS,
 32358         -          SQLITE_WIN32_HEAP_INIT_SIZE, SQLITE_WIN32_HEAP_MAX_SIZE);
        32380  +          "failed to HeapCreate (%lu), flags=%u, initSize=%lu, maxSize=%lu",
        32381  +          osGetLastError(), SQLITE_WIN32_HEAP_FLAGS, dwInitialSize,
        32382  +          dwMaximumSize);
 32359  32383         return SQLITE_NOMEM;
 32360  32384       }
 32361  32385       pWinMemData->bOwned = TRUE;
 32362  32386       assert( pWinMemData->bOwned );
 32363  32387     }
 32364  32388   #else
 32365  32389     pWinMemData->hHeap = osGetProcessHeap();
................................................................................
 35011  35035   /****************************************************************************
 35012  35036   **************************** sqlite3_vfs methods ****************************
 35013  35037   **
 35014  35038   ** This division contains the implementation of methods on the
 35015  35039   ** sqlite3_vfs object.
 35016  35040   */
 35017  35041   
 35018         -#if 0
        35042  +#if defined(__CYGWIN__)
 35019  35043   /*
 35020  35044   ** Convert a filename from whatever the underlying operating system
 35021  35045   ** supports for filenames into UTF-8.  Space to hold the result is
 35022  35046   ** obtained from malloc and must be freed by the calling function.
 35023  35047   */
 35024  35048   static char *winConvertToUtf8Filename(const void *zFilename){
 35025  35049     char *zConverted = 0;
................................................................................
 35187  35211                                "winGetTempname2", zDir);
 35188  35212           }
 35189  35213           if( winIsDir(zConverted) ){
 35190  35214             /* At this point, we know the candidate directory exists and should
 35191  35215             ** be used.  However, we may need to convert the string containing
 35192  35216             ** its name into UTF-8 (i.e. if it is UTF-16 right now).
 35193  35217             */
 35194         -          if( osIsNT() ){
 35195         -            char *zUtf8 = winUnicodeToUtf8(zConverted);
 35196         -            if( !zUtf8 ){
 35197         -              sqlite3_free(zConverted);
 35198         -              sqlite3_free(zBuf);
 35199         -              OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_NOMEM\n"));
 35200         -              return SQLITE_IOERR_NOMEM;
 35201         -            }
 35202         -            sqlite3_snprintf(nMax, zBuf, "%s", zUtf8);
 35203         -            sqlite3_free(zUtf8);
        35218  +          char *zUtf8 = winConvertToUtf8Filename(zConverted);
        35219  +          if( !zUtf8 ){
 35204  35220               sqlite3_free(zConverted);
 35205         -            break;
 35206         -          }else{
 35207         -            sqlite3_snprintf(nMax, zBuf, "%s", zConverted);
 35208         -            sqlite3_free(zConverted);
 35209         -            break;
        35221  +            sqlite3_free(zBuf);
        35222  +            OSTRACE(("TEMP-FILENAME rc=SQLITE_IOERR_NOMEM\n"));
        35223  +            return SQLITE_IOERR_NOMEM;
 35210  35224             }
        35225  +          sqlite3_snprintf(nMax, zBuf, "%s", zUtf8);
        35226  +          sqlite3_free(zUtf8);
        35227  +          sqlite3_free(zConverted);
        35228  +          break;
 35211  35229           }
 35212  35230           sqlite3_free(zConverted);
 35213  35231         }
 35214  35232       }
 35215  35233     }
 35216  35234   #elif !SQLITE_OS_WINRT && !defined(__CYGWIN__)
 35217  35235     else if( osIsNT() ){
................................................................................
 35888  35906       **       for converting the relative path name to an absolute
 35889  35907       **       one by prepending the data directory and a slash.
 35890  35908       */
 35891  35909       char *zOut = sqlite3MallocZero( pVfs->mxPathname+1 );
 35892  35910       if( !zOut ){
 35893  35911         return SQLITE_IOERR_NOMEM;
 35894  35912       }
 35895         -    if( cygwin_conv_path(CCP_POSIX_TO_WIN_A|CCP_RELATIVE, zRelative, zOut,
 35896         -                         pVfs->mxPathname+1)<0 ){
        35913  +    if( cygwin_conv_path(
        35914  +            (osIsNT() ? CCP_POSIX_TO_WIN_W : CCP_POSIX_TO_WIN_A) |
        35915  +            CCP_RELATIVE, zRelative, zOut, pVfs->mxPathname+1)<0 ){
 35897  35916         sqlite3_free(zOut);
 35898  35917         return winLogError(SQLITE_CANTOPEN_CONVPATH, (DWORD)errno,
 35899  35918                            "winFullPathname1", zRelative);
        35919  +    }else{
        35920  +      char *zUtf8 = winConvertToUtf8Filename(zOut);
        35921  +      if( !zUtf8 ){
        35922  +        sqlite3_free(zOut);
        35923  +        return SQLITE_IOERR_NOMEM;
        35924  +      }
        35925  +      sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s%c%s",
        35926  +                       sqlite3_data_directory, winGetDirSep(), zUtf8);
        35927  +      sqlite3_free(zUtf8);
        35928  +      sqlite3_free(zOut);
 35900  35929       }
 35901         -    sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s%c%s",
 35902         -                     sqlite3_data_directory, winGetDirSep(), zOut);
 35903         -    sqlite3_free(zOut);
 35904  35930     }else{
 35905         -    if( cygwin_conv_path(CCP_POSIX_TO_WIN_A, zRelative, zFull, nFull)<0 ){
        35931  +    char *zOut = sqlite3MallocZero( pVfs->mxPathname+1 );
        35932  +    if( !zOut ){
        35933  +      return SQLITE_IOERR_NOMEM;
        35934  +    }
        35935  +    if( cygwin_conv_path(
        35936  +            (osIsNT() ? CCP_POSIX_TO_WIN_W : CCP_POSIX_TO_WIN_A),
        35937  +            zRelative, zOut, pVfs->mxPathname+1)<0 ){
        35938  +      sqlite3_free(zOut);
 35906  35939         return winLogError(SQLITE_CANTOPEN_CONVPATH, (DWORD)errno,
 35907  35940                            "winFullPathname2", zRelative);
        35941  +    }else{
        35942  +      char *zUtf8 = winConvertToUtf8Filename(zOut);
        35943  +      if( !zUtf8 ){
        35944  +        sqlite3_free(zOut);
        35945  +        return SQLITE_IOERR_NOMEM;
        35946  +      }
        35947  +      sqlite3_snprintf(MIN(nFull, pVfs->mxPathname), zFull, "%s", zUtf8);
        35948  +      sqlite3_free(zUtf8);
        35949  +      sqlite3_free(zOut);
 35908  35950       }
 35909  35951     }
 35910  35952     return SQLITE_OK;
 35911  35953   #endif
 35912  35954   
 35913  35955   #if (SQLITE_OS_WINCE || SQLITE_OS_WINRT) && !defined(__CYGWIN__)
 35914  35956     SimulateIOError( return SQLITE_ERROR );
................................................................................
 54494  54536     u32 nLocal;
 54495  54537   
 54496  54538     assert( pCur!=0 && pCur->iPage>=0 && pCur->apPage[pCur->iPage]);
 54497  54539     assert( pCur->eState==CURSOR_VALID );
 54498  54540     assert( cursorHoldsMutex(pCur) );
 54499  54541     pPage = pCur->apPage[pCur->iPage];
 54500  54542     assert( pCur->aiIdx[pCur->iPage]<pPage->nCell );
 54501         -  if( NEVER(pCur->info.nSize==0) ){
        54543  +  if( pCur->info.nSize==0 ){
 54502  54544       btreeParseCell(pCur->apPage[pCur->iPage], pCur->aiIdx[pCur->iPage],
 54503  54545                      &pCur->info);
 54504  54546     }
 54505  54547     aPayload = pCur->info.pCell;
 54506  54548     aPayload += pCur->info.nHeader;
 54507  54549     if( pPage->intKey ){
 54508  54550       nKey = 0;
................................................................................
 54922  54964     if( pCur->eState==CURSOR_INVALID ){
 54923  54965       *pRes = -1;
 54924  54966       assert( pCur->pgnoRoot==0 || pCur->apPage[pCur->iPage]->nCell==0 );
 54925  54967       return SQLITE_OK;
 54926  54968     }
 54927  54969     assert( pCur->apPage[0]->intKey || pIdxKey );
 54928  54970     for(;;){
 54929         -    int lwr, upr, idx;
        54971  +    int lwr, upr, idx, c;
 54930  54972       Pgno chldPg;
 54931  54973       MemPage *pPage = pCur->apPage[pCur->iPage];
 54932         -    int c;
        54974  +    u8 *pCell;                          /* Pointer to current cell in pPage */
 54933  54975   
 54934  54976       /* pPage->nCell must be greater than zero. If this is the root-page
 54935  54977       ** the cursor would have been INVALID above and this for(;;) loop
 54936  54978       ** not run. If this is not the root-page, then the moveToChild() routine
 54937  54979       ** would have already detected db corruption. Similarly, pPage must
 54938  54980       ** be the right kind (index or table) of b-tree page. Otherwise
 54939  54981       ** a moveToChild() or moveToRoot() call would have detected corruption.  */
 54940  54982       assert( pPage->nCell>0 );
 54941  54983       assert( pPage->intKey==(pIdxKey==0) );
 54942  54984       lwr = 0;
 54943  54985       upr = pPage->nCell-1;
 54944         -    if( biasRight ){
 54945         -      pCur->aiIdx[pCur->iPage] = (u16)(idx = upr);
 54946         -    }else{
 54947         -      pCur->aiIdx[pCur->iPage] = (u16)(idx = (upr+lwr)/2);
 54948         -    }
 54949         -    for(;;){
 54950         -      u8 *pCell;                          /* Pointer to current cell in pPage */
 54951         -
 54952         -      assert( idx==pCur->aiIdx[pCur->iPage] );
 54953         -      pCur->info.nSize = 0;
 54954         -      pCell = findCell(pPage, idx) + pPage->childPtrSize;
 54955         -      if( pPage->intKey ){
        54986  +    assert( biasRight==0 || biasRight==1 );
        54987  +    idx = upr>>(1-biasRight); /* idx = biasRight ? upr : (lwr+upr)/2; */
        54988  +    pCur->aiIdx[pCur->iPage] = (u16)idx;
        54989  +    if( pPage->intKey ){
        54990  +      for(;;){
 54956  54991           i64 nCellKey;
        54992  +        pCell = findCell(pPage, idx) + pPage->childPtrSize;
 54957  54993           if( pPage->hasData ){
 54958         -          u32 dummy;
 54959         -          pCell += getVarint32(pCell, dummy);
        54994  +          while( 0x80 <= *(pCell++) ){
        54995  +            if( pCell>=pPage->aDataEnd ) return SQLITE_CORRUPT_BKPT;
        54996  +          }
 54960  54997           }
 54961  54998           getVarint(pCell, (u64*)&nCellKey);
 54962         -        if( nCellKey==intKey ){
 54963         -          c = 0;
 54964         -        }else if( nCellKey<intKey ){
 54965         -          c = -1;
        54999  +        if( nCellKey<intKey ){
        55000  +          lwr = idx+1;
        55001  +          if( lwr>upr ){ c = -1; break; }
        55002  +        }else if( nCellKey>intKey ){
        55003  +          upr = idx-1;
        55004  +          if( lwr>upr ){ c = +1; break; }
 54966  55005           }else{
 54967         -          assert( nCellKey>intKey );
 54968         -          c = +1;
        55006  +          assert( nCellKey==intKey );
        55007  +          pCur->validNKey = 1;
        55008  +          pCur->info.nKey = nCellKey;
        55009  +          pCur->aiIdx[pCur->iPage] = (u16)idx;
        55010  +          if( !pPage->leaf ){
        55011  +            lwr = idx;
        55012  +            goto moveto_next_layer;
        55013  +          }else{
        55014  +            *pRes = 0;
        55015  +            rc = SQLITE_OK;
        55016  +            goto moveto_finish;
        55017  +          }
 54969  55018           }
 54970         -        pCur->validNKey = 1;
 54971         -        pCur->info.nKey = nCellKey;
 54972         -      }else{
        55019  +        assert( lwr+upr>=0 );
        55020  +        idx = (lwr+upr)>>1;  /* idx = (lwr+upr)/2; */
        55021  +      }
        55022  +    }else{
        55023  +      for(;;){
        55024  +        int nCell;
        55025  +        pCell = findCell(pPage, idx) + pPage->childPtrSize;
        55026  +
 54973  55027           /* The maximum supported page-size is 65536 bytes. This means that
 54974  55028           ** the maximum number of record bytes stored on an index B-Tree
 54975  55029           ** page is less than 16384 bytes and may be stored as a 2-byte
 54976  55030           ** varint. This information is used to attempt to avoid parsing 
 54977  55031           ** the entire cell by checking for the cases where the record is 
 54978  55032           ** stored entirely within the b-tree page by inspecting the first 
 54979  55033           ** 2 bytes of the cell.
 54980  55034           */
 54981         -        int nCell = pCell[0];
        55035  +        nCell = pCell[0];
 54982  55036           if( nCell<=pPage->max1bytePayload
 54983  55037            /* && (pCell+nCell)<pPage->aDataEnd */
 54984  55038           ){
 54985  55039             /* This branch runs if the record-size field of the cell is a
 54986  55040             ** single byte varint and the record fits entirely on the main
 54987  55041             ** b-tree page.  */
 54988  55042             testcase( pCell+nCell+1==pPage->aDataEnd );
................................................................................
 55005  55059             btreeParseCellPtr(pPage, pCellBody, &pCur->info);
 55006  55060             nCell = (int)pCur->info.nKey;
 55007  55061             pCellKey = sqlite3Malloc( nCell );
 55008  55062             if( pCellKey==0 ){
 55009  55063               rc = SQLITE_NOMEM;
 55010  55064               goto moveto_finish;
 55011  55065             }
        55066  +          pCur->aiIdx[pCur->iPage] = (u16)idx;
 55012  55067             rc = accessPayload(pCur, 0, nCell, (unsigned char*)pCellKey, 0);
 55013  55068             if( rc ){
 55014  55069               sqlite3_free(pCellKey);
 55015  55070               goto moveto_finish;
 55016  55071             }
 55017  55072             c = sqlite3VdbeRecordCompare(nCell, pCellKey, pIdxKey);
 55018  55073             sqlite3_free(pCellKey);
 55019  55074           }
 55020         -      }
 55021         -      if( c==0 ){
 55022         -        if( pPage->intKey && !pPage->leaf ){
 55023         -          lwr = idx;
 55024         -          break;
        55075  +        if( c<0 ){
        55076  +          lwr = idx+1;
        55077  +        }else if( c>0 ){
        55078  +          upr = idx-1;
 55025  55079           }else{
        55080  +          assert( c==0 );
 55026  55081             *pRes = 0;
 55027  55082             rc = SQLITE_OK;
        55083  +          pCur->aiIdx[pCur->iPage] = (u16)idx;
 55028  55084             goto moveto_finish;
 55029  55085           }
        55086  +        if( lwr>upr ) break;
        55087  +        assert( lwr+upr>=0 );
        55088  +        idx = (lwr+upr)>>1;  /* idx = (lwr+upr)/2 */
 55030  55089         }
 55031         -      if( c<0 ){
 55032         -        lwr = idx+1;
 55033         -      }else{
 55034         -        upr = idx-1;
 55035         -      }
 55036         -      if( lwr>upr ){
 55037         -        break;
 55038         -      }
 55039         -      pCur->aiIdx[pCur->iPage] = (u16)(idx = (lwr+upr)/2);
 55040  55090       }
 55041  55091       assert( lwr==upr+1 || (pPage->intKey && !pPage->leaf) );
 55042  55092       assert( pPage->isInit );
 55043  55093       if( pPage->leaf ){
 55044         -      chldPg = 0;
 55045         -    }else if( lwr>=pPage->nCell ){
 55046         -      chldPg = get4byte(&pPage->aData[pPage->hdrOffset+8]);
 55047         -    }else{
 55048         -      chldPg = get4byte(findCell(pPage, lwr));
 55049         -    }
 55050         -    if( chldPg==0 ){
 55051  55094         assert( pCur->aiIdx[pCur->iPage]<pCur->apPage[pCur->iPage]->nCell );
        55095  +      pCur->aiIdx[pCur->iPage] = (u16)idx;
 55052  55096         *pRes = c;
 55053  55097         rc = SQLITE_OK;
 55054  55098         goto moveto_finish;
 55055  55099       }
        55100  +moveto_next_layer:
        55101  +    if( lwr>=pPage->nCell ){
        55102  +      chldPg = get4byte(&pPage->aData[pPage->hdrOffset+8]);
        55103  +    }else{
        55104  +      chldPg = get4byte(findCell(pPage, lwr));
        55105  +    }
 55056  55106       pCur->aiIdx[pCur->iPage] = (u16)lwr;
 55057         -    pCur->info.nSize = 0;
 55058         -    pCur->validNKey = 0;
 55059  55107       rc = moveToChild(pCur, chldPg);
 55060         -    if( rc ) goto moveto_finish;
        55108  +    if( rc ) break;
 55061  55109     }
 55062  55110   moveto_finish:
        55111  +  pCur->info.nSize = 0;
        55112  +  pCur->validNKey = 0;
 55063  55113     return rc;
 55064  55114   }
 55065  55115   
 55066  55116   
 55067  55117   /*
 55068  55118   ** Return TRUE if the cursor is not pointing at an entry of the table.
 55069  55119   **
................................................................................
 59850  59900     p->z = 0;
 59851  59901     p->zMalloc = 0;
 59852  59902     p->xDel = 0;
 59853  59903   }
 59854  59904   
 59855  59905   /*
 59856  59906   ** Convert a 64-bit IEEE double into a 64-bit signed integer.
 59857         -** If the double is too large, return 0x8000000000000000.
 59858         -**
 59859         -** Most systems appear to do this simply by assigning
 59860         -** variables and without the extra range tests.  But
 59861         -** there are reports that windows throws an expection
 59862         -** if the floating point value is out of range. (See ticket #2880.)
 59863         -** Because we do not completely understand the problem, we will
 59864         -** take the conservative approach and always do range tests
 59865         -** before attempting the conversion.
        59907  +** If the double is out of range of a 64-bit signed integer then
        59908  +** return the closest available 64-bit signed integer.
 59866  59909   */
 59867  59910   static i64 doubleToInt64(double r){
 59868  59911   #ifdef SQLITE_OMIT_FLOATING_POINT
 59869  59912     /* When floating-point is omitted, double and int64 are the same thing */
 59870  59913     return r;
 59871  59914   #else
 59872  59915     /*
................................................................................
 59875  59918     ** inconsistently.  And many do not understand the "LL" notation.
 59876  59919     ** So we define our own static constants here using nothing
 59877  59920     ** larger than a 32-bit integer constant.
 59878  59921     */
 59879  59922     static const i64 maxInt = LARGEST_INT64;
 59880  59923     static const i64 minInt = SMALLEST_INT64;
 59881  59924   
 59882         -  if( r<(double)minInt ){
        59925  +  if( r<=(double)minInt ){
 59883  59926       return minInt;
 59884         -  }else if( r>(double)maxInt ){
 59885         -    /* minInt is correct here - not maxInt.  It turns out that assigning
 59886         -    ** a very large positive number to an integer results in a very large
 59887         -    ** negative integer.  This makes no sense, but it is what x86 hardware
 59888         -    ** does so for compatibility we will do the same in software. */
 59889         -    return minInt;
        59927  +  }else if( r>=(double)maxInt ){
        59928  +    return maxInt;
 59890  59929     }else{
 59891  59930       return (i64)r;
 59892  59931     }
 59893  59932   #endif
 59894  59933   }
 59895  59934   
 59896  59935   /*
................................................................................
 59964  60003     **
 59965  60004     **    (1) the round-trip conversion real->int->real is a no-op, and
 59966  60005     **    (2) The integer is neither the largest nor the smallest
 59967  60006     **        possible integer (ticket #3922)
 59968  60007     **
 59969  60008     ** The second and third terms in the following conditional enforces
 59970  60009     ** the second condition under the assumption that addition overflow causes
 59971         -  ** values to wrap around.  On x86 hardware, the third term is always
 59972         -  ** true and could be omitted.  But we leave it in because other
 59973         -  ** architectures might behave differently.
        60010  +  ** values to wrap around.
 59974  60011     */
 59975  60012     if( pMem->r==(double)pMem->u.i
 59976  60013      && pMem->u.i>SMALLEST_INT64
 59977         -#if defined(__i486__) || defined(__x86_64__)
 59978         -   && ALWAYS(pMem->u.i<LARGEST_INT64)
 59979         -#else
 59980  60014      && pMem->u.i<LARGEST_INT64
 59981         -#endif
 59982  60015     ){
 59983  60016       pMem->flags |= MEM_Int;
 59984  60017     }
 59985  60018   }
 59986  60019   
 59987  60020   /*
 59988  60021   ** Convert pMem to type integer.  Invalidate any prior representations.
................................................................................
 64075  64108     */
 64076  64109     /*  mem1.u.i = 0;  // not needed, here to silence compiler warning */
 64077  64110     
 64078  64111     idx1 = getVarint32(aKey1, szHdr1);
 64079  64112     d1 = szHdr1;
 64080  64113     assert( pKeyInfo->nField+pKeyInfo->nXField>=pPKey2->nField );
 64081  64114     assert( pKeyInfo->aSortOrder!=0 );
 64082         -  while( idx1<szHdr1 && i<pPKey2->nField ){
        64115  +  assert( idx1<szHdr1 && i<pPKey2->nField );
        64116  +  do{
 64083  64117       u32 serial_type1;
 64084  64118   
 64085  64119       /* Read the serial types for the next element in each key. */
 64086  64120       idx1 += getVarint32( aKey1+idx1, serial_type1 );
 64087  64121   
 64088  64122       /* Verify that there is enough key space remaining to avoid
 64089  64123       ** a buffer overread.  The "d1+serial_type1+2" subexpression will
................................................................................
 64108  64142         assert( mem1.zMalloc==0 );  /* See comment below */
 64109  64143         if( pKeyInfo->aSortOrder[i] ){
 64110  64144           rc = -rc;  /* Invert the result for DESC sort order. */
 64111  64145         }
 64112  64146         return rc;
 64113  64147       }
 64114  64148       i++;
 64115         -  }
        64149  +  }while( idx1<szHdr1 && i<pPKey2->nField );
 64116  64150   
 64117  64151     /* No memory allocation is ever used on mem1.  Prove this using
 64118  64152     ** the following assert().  If the assert() fails, it indicates a
 64119  64153     ** memory leak and a need to call sqlite3VdbeMemRelease(&mem1).
 64120  64154     */
 64121  64155     assert( mem1.zMalloc==0 );
 64122  64156   
................................................................................
 70048  70082       if( (pIn3->flags & MEM_Int)==0 ){
 70049  70083         if( (pIn3->flags & MEM_Real)==0 ){
 70050  70084           /* If the P3 value cannot be converted into any kind of a number,
 70051  70085           ** then the seek is not possible, so jump to P2 */
 70052  70086           pc = pOp->p2 - 1;
 70053  70087           break;
 70054  70088         }
 70055         -      /* If we reach this point, then the P3 value must be a floating
 70056         -      ** point number. */
 70057         -      assert( (pIn3->flags & MEM_Real)!=0 );
 70058         -
 70059         -      if( u.bd.iKey==SMALLEST_INT64 && (pIn3->r<(double)u.bd.iKey || pIn3->r>0) ){
 70060         -        /* The P3 value is too large in magnitude to be expressed as an
 70061         -        ** integer. */
 70062         -        u.bd.res = 1;
 70063         -        if( pIn3->r<0 ){
 70064         -          if( u.bd.oc>=OP_SeekGe ){  assert( u.bd.oc==OP_SeekGe || u.bd.oc==OP_SeekGt );
 70065         -            rc = sqlite3BtreeFirst(u.bd.pC->pCursor, &u.bd.res);
 70066         -            if( rc!=SQLITE_OK ) goto abort_due_to_error;
 70067         -          }
 70068         -        }else{
 70069         -          if( u.bd.oc<=OP_SeekLe ){  assert( u.bd.oc==OP_SeekLt || u.bd.oc==OP_SeekLe );
 70070         -            rc = sqlite3BtreeLast(u.bd.pC->pCursor, &u.bd.res);
 70071         -            if( rc!=SQLITE_OK ) goto abort_due_to_error;
 70072         -          }
 70073         -        }
 70074         -        if( u.bd.res ){
 70075         -          pc = pOp->p2 - 1;
 70076         -        }
 70077         -        break;
 70078         -      }else if( u.bd.oc==OP_SeekLt || u.bd.oc==OP_SeekGe ){
 70079         -        /* Use the ceiling() function to convert real->int */
 70080         -        if( pIn3->r > (double)u.bd.iKey ) u.bd.iKey++;
 70081         -      }else{
 70082         -        /* Use the floor() function to convert real->int */
 70083         -        assert( u.bd.oc==OP_SeekLe || u.bd.oc==OP_SeekGt );
 70084         -        if( pIn3->r < (double)u.bd.iKey ) u.bd.iKey--;
        70089  +
        70090  +      /* If the approximation u.bd.iKey is larger than the actual real search
        70091  +      ** term, substitute >= for > and < for <=. e.g. if the search term
        70092  +      ** is 4.9 and the integer approximation 5:
        70093  +      **
        70094  +      **        (x >  4.9)    ->     (x >= 5)
        70095  +      **        (x <= 4.9)    ->     (x <  5)
        70096  +      */
        70097  +      if( pIn3->r<(double)u.bd.iKey ){
        70098  +        assert( OP_SeekGe==(OP_SeekGt-1) );
        70099  +        assert( OP_SeekLt==(OP_SeekLe-1) );
        70100  +        assert( (OP_SeekLe & 0x0001)==(OP_SeekGt & 0x0001) );
        70101  +        if( (u.bd.oc & 0x0001)==(OP_SeekGt & 0x0001) ) u.bd.oc--;
        70102  +      }
        70103  +
        70104  +      /* If the approximation u.bd.iKey is smaller than the actual real search
        70105  +      ** term, substitute <= for < and > for >=.  */
        70106  +      else if( pIn3->r>(double)u.bd.iKey ){
        70107  +        assert( OP_SeekLe==(OP_SeekLt+1) );
        70108  +        assert( OP_SeekGt==(OP_SeekGe+1) );
        70109  +        assert( (OP_SeekLt & 0x0001)==(OP_SeekGe & 0x0001) );
        70110  +        if( (u.bd.oc & 0x0001)==(OP_SeekLt & 0x0001) ) u.bd.oc++;
 70085  70111         }
 70086  70112       }
 70087  70113       rc = sqlite3BtreeMovetoUnpacked(u.bd.pC->pCursor, 0, (u64)u.bd.iKey, 0, &u.bd.res);
 70088  70114       if( rc!=SQLITE_OK ){
 70089  70115         goto abort_due_to_error;
 70090  70116       }
 70091  70117       if( u.bd.res==0 ){
................................................................................
 70623  70649       u.bi.nZero = u.bi.pData->u.nZero;
 70624  70650     }else{
 70625  70651       u.bi.nZero = 0;
 70626  70652     }
 70627  70653     sqlite3BtreeSetCachedRowid(u.bi.pC->pCursor, 0);
 70628  70654     rc = sqlite3BtreeInsert(u.bi.pC->pCursor, 0, u.bi.iKey,
 70629  70655                             u.bi.pData->z, u.bi.pData->n, u.bi.nZero,
 70630         -                          pOp->p5 & OPFLAG_APPEND, u.bi.seekResult
        70656  +                          (pOp->p5 & OPFLAG_APPEND)!=0, u.bi.seekResult
 70631  70657     );
 70632  70658     u.bi.pC->rowidIsValid = 0;
 70633  70659     u.bi.pC->deferredMoveto = 0;
 70634  70660     u.bi.pC->cacheStatus = CACHE_STALE;
 70635  70661   
 70636  70662     /* Invoke the update-hook if required. */
 70637  70663     if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z ){
................................................................................
 70667  70693   */
 70668  70694   case OP_Delete: {
 70669  70695   #if 0  /* local variables moved into u.bj */
 70670  70696     i64 iKey;
 70671  70697     VdbeCursor *pC;
 70672  70698   #endif /* local variables moved into u.bj */
 70673  70699   
 70674         -  u.bj.iKey = 0;
 70675  70700     assert( pOp->p1>=0 && pOp->p1<p->nCursor );
 70676  70701     u.bj.pC = p->apCsr[pOp->p1];
 70677  70702     assert( u.bj.pC!=0 );
 70678  70703     assert( u.bj.pC->pCursor!=0 );  /* Only valid for real tables, no pseudotables */
 70679         -
 70680         -  /* If the update-hook will be invoked, set u.bj.iKey to the rowid of the
 70681         -  ** row being deleted.
 70682         -  */
 70683         -  if( db->xUpdateCallback && pOp->p4.z ){
 70684         -    assert( u.bj.pC->isTable );
 70685         -    assert( u.bj.pC->rowidIsValid );  /* lastRowid set by previous OP_NotFound */
 70686         -    u.bj.iKey = u.bj.pC->lastRowid;
 70687         -  }
        70704  +  u.bj.iKey = u.bj.pC->lastRowid;      /* Only used for the update hook */
 70688  70705   
 70689  70706     /* The OP_Delete opcode always follows an OP_NotExists or OP_Last or
 70690  70707     ** OP_Column on the same table without any intervening operations that
 70691  70708     ** might move or invalidate the cursor.  Hence cursor u.bj.pC is always pointing
 70692  70709     ** to the row to be deleted and the sqlite3VdbeCursorMoveto() operation
 70693  70710     ** below is always a no-op and cannot fail.  We will run it anyhow, though,
 70694  70711     ** to guard against future changes to the code generator.
................................................................................
 70698  70715     if( NEVER(rc!=SQLITE_OK) ) goto abort_due_to_error;
 70699  70716   
 70700  70717     sqlite3BtreeSetCachedRowid(u.bj.pC->pCursor, 0);
 70701  70718     rc = sqlite3BtreeDelete(u.bj.pC->pCursor);
 70702  70719     u.bj.pC->cacheStatus = CACHE_STALE;
 70703  70720   
 70704  70721     /* Invoke the update-hook if required. */
 70705         -  if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z ){
        70722  +  if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z && u.bj.pC->isTable ){
 70706  70723       const char *zDb = db->aDb[u.bj.pC->iDb].zName;
 70707  70724       const char *zTbl = pOp->p4.z;
 70708  70725       db->xUpdateCallback(db->pUpdateArg, SQLITE_DELETE, zDb, zTbl, u.bj.iKey);
 70709  70726       assert( u.bj.pC->iDb>=0 );
 70710  70727     }
 70711  70728     if( pOp->p2 & OPFLAG_NCHANGE ) p->nChange++;
 70712  70729     break;
................................................................................
 75472  75489               if( iCol==pTab->iPKey ){
 75473  75490                 iCol = -1;
 75474  75491               }
 75475  75492               break;
 75476  75493             }
 75477  75494           }
 75478  75495           if( iCol>=pTab->nCol && sqlite3IsRowid(zCol) && HasRowid(pTab) ){
 75479         -          iCol = -1;        /* IMP: R-44911-55124 */
        75496  +          /* IMP: R-24309-18625 */
        75497  +          /* IMP: R-44911-55124 */
        75498  +          iCol = -1;
 75480  75499           }
 75481  75500           if( iCol<pTab->nCol ){
 75482  75501             cnt++;
 75483  75502             if( iCol<0 ){
 75484  75503               pExpr->affinity = SQLITE_AFF_INTEGER;
 75485  75504             }else if( pExpr->iTable==0 ){
 75486  75505               testcase( iCol==31 );
................................................................................
112298 112317     saved_prereq = pNew->prereq;
112299 112318     saved_nOut = pNew->nOut;
112300 112319     pNew->rSetup = 0;
112301 112320     rLogSize = estLog(sqlite3LogEst(pProbe->aiRowEst[0]));
112302 112321   
112303 112322     /* Consider using a skip-scan if there are no WHERE clause constraints
112304 112323     ** available for the left-most terms of the index, and if the average
112305         -  ** number of repeats in the left-most terms is at least 50.
       112324  +  ** number of repeats in the left-most terms is at least 18.  The magic
       112325  +  ** number 18 was found by experimentation to be the payoff point where
       112326  +  ** skip-scan become faster than a full-scan.
112306 112327     */
112307 112328     if( pTerm==0
112308 112329      && saved_nEq==saved_nSkip
112309 112330      && saved_nEq+1<pProbe->nKeyCol
112310         -   && pProbe->aiRowEst[saved_nEq+1]>50  /* TUNING: Minimum for skip-scan */
       112331  +   && pProbe->aiRowEst[saved_nEq+1]>=18  /* TUNING: Minimum for skip-scan */
112311 112332     ){
112312 112333       LogEst nIter;
112313 112334       pNew->u.btree.nEq++;
112314 112335       pNew->u.btree.nSkip++;
112315 112336       pNew->aLTerm[pNew->nLTerm++] = 0;
112316 112337       pNew->wsFlags |= WHERE_SKIPSCAN;
112317 112338       nIter = sqlite3LogEst(pProbe->aiRowEst[0]/pProbe->aiRowEst[saved_nEq+1]);
................................................................................
119474 119495         }
119475 119496         sqlite3GlobalConfig.mxMmap = mxMmap;
119476 119497         if( szMmap<0 ) szMmap = SQLITE_DEFAULT_MMAP_SIZE;
119477 119498         if( szMmap>mxMmap) szMmap = mxMmap;
119478 119499         sqlite3GlobalConfig.szMmap = szMmap;
119479 119500         break;
119480 119501       }
       119502  +
       119503  +#if SQLITE_OS_WIN && defined(SQLITE_WIN32_MALLOC)
       119504  +    case SQLITE_CONFIG_WIN32_HEAPSIZE: {
       119505  +      sqlite3GlobalConfig.nHeap = va_arg(ap, int);
       119506  +      break;
       119507  +    }
       119508  +#endif
119481 119509   
119482 119510       default: {
119483 119511         rc = SQLITE_ERROR;
119484 119512         break;
119485 119513       }
119486 119514     }
119487 119515     va_end(ap);

Changes to SQLite.Interop/src/core/sqlite3.h.

   105    105   **
   106    106   ** See also: [sqlite3_libversion()],
   107    107   ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
   108    108   ** [sqlite_version()] and [sqlite_source_id()].
   109    109   */
   110    110   #define SQLITE_VERSION        "3.8.2"
   111    111   #define SQLITE_VERSION_NUMBER 3008002
   112         -#define SQLITE_SOURCE_ID      "2013-11-22 21:32:44 f336c18fb72ab90e93640b12ac540d41accc7658"
          112  +#define SQLITE_SOURCE_ID      "2013-11-27 04:22:27 83c0bb9913838d18ba355033afde6e38b4690842"
   113    113   
   114    114   /*
   115    115   ** CAPI3REF: Run-Time Library Version Numbers
   116    116   ** KEYWORDS: sqlite3_version, sqlite3_sourceid
   117    117   **
   118    118   ** These interfaces provide the same information as the [SQLITE_VERSION],
   119    119   ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
................................................................................
  1683   1683   ** either the [PRAGMA mmap_size] command, or by using the
  1684   1684   ** [SQLITE_FCNTL_MMAP_SIZE] file control.  ^(The maximum allowed mmap size
  1685   1685   ** cannot be changed at run-time.  Nor may the maximum allowed mmap size
  1686   1686   ** exceed the compile-time maximum mmap size set by the
  1687   1687   ** [SQLITE_MAX_MMAP_SIZE] compile-time option.)^
  1688   1688   ** ^If either argument to this option is negative, then that argument is
  1689   1689   ** changed to its compile-time default.
         1690  +**
         1691  +** [[SQLITE_CONFIG_WIN32_HEAPSIZE]]
         1692  +** <dt>SQLITE_CONFIG_WIN32_HEAPSIZE
         1693  +** <dd>^This option is only available if SQLite is compiled for Windows
         1694  +** with the [SQLITE_WIN32_MALLOC] pre-processor macro defined.
         1695  +** SQLITE_CONFIG_WIN32_HEAPSIZE takes a 32-bit unsigned integer value
         1696  +** that specifies the maximum size of the created heap.
  1690   1697   ** </dl>
  1691   1698   */
  1692   1699   #define SQLITE_CONFIG_SINGLETHREAD  1  /* nil */
  1693   1700   #define SQLITE_CONFIG_MULTITHREAD   2  /* nil */
  1694   1701   #define SQLITE_CONFIG_SERIALIZED    3  /* nil */
  1695   1702   #define SQLITE_CONFIG_MALLOC        4  /* sqlite3_mem_methods* */
  1696   1703   #define SQLITE_CONFIG_GETMALLOC     5  /* sqlite3_mem_methods* */
................................................................................
  1707   1714   #define SQLITE_CONFIG_LOG          16  /* xFunc, void* */
  1708   1715   #define SQLITE_CONFIG_URI          17  /* int */
  1709   1716   #define SQLITE_CONFIG_PCACHE2      18  /* sqlite3_pcache_methods2* */
  1710   1717   #define SQLITE_CONFIG_GETPCACHE2   19  /* sqlite3_pcache_methods2* */
  1711   1718   #define SQLITE_CONFIG_COVERING_INDEX_SCAN 20  /* int */
  1712   1719   #define SQLITE_CONFIG_SQLLOG       21  /* xSqllog, void* */
  1713   1720   #define SQLITE_CONFIG_MMAP_SIZE    22  /* sqlite3_int64, sqlite3_int64 */
         1721  +#define SQLITE_CONFIG_WIN32_HEAPSIZE      23  /* int nByte */
  1714   1722   
  1715   1723   /*
  1716   1724   ** CAPI3REF: Database Connection Configuration Options
  1717   1725   **
  1718   1726   ** These constants are the available integer configuration options that
  1719   1727   ** can be passed as the second argument to the [sqlite3_db_config()] interface.
  1720   1728   **

Added SQLite.NET.2013.MSBuild.sln.

            1  +Microsoft Visual Studio Solution File, Format Version 13.00
            2  +# Visual Studio 2013
            3  +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{39A3B743-1EBD-4CC0-8E37-ACE3DD38B1C0}"
            4  +	ProjectSection(SolutionItems) = preProject
            5  +		exclude_bin.txt = exclude_bin.txt
            6  +		exclude_src.txt = exclude_src.txt
            7  +		install.ps1 = install.ps1
            8  +		readme.htm = readme.htm
            9  +		SQLite.Beta.nuspec = SQLite.Beta.nuspec
           10  +		SQLite.MSIL.nuspec = SQLite.MSIL.nuspec
           11  +		SQLite.NET.Settings.targets = SQLite.NET.Settings.targets
           12  +		SQLite.NET.Settings.targets.netFx35 = SQLite.NET.Settings.targets.netFx35
           13  +		SQLite.NET.targets = SQLite.NET.targets
           14  +		SQLite.nuspec = SQLite.nuspec
           15  +		SQLite.x64.nuspec = SQLite.x64.nuspec
           16  +		SQLite.x86.nuspec = SQLite.x86.nuspec
           17  +		System.Data.SQLite\System.Data.SQLite.CF.snk = System.Data.SQLite\System.Data.SQLite.CF.snk
           18  +		System.Data.SQLite\System.Data.SQLite.Files.targets = System.Data.SQLite\System.Data.SQLite.Files.targets
           19  +		System.Data.SQLite\System.Data.SQLite.Properties.targets = System.Data.SQLite\System.Data.SQLite.Properties.targets
           20  +		System.Data.SQLite\System.Data.SQLite.References.targets = System.Data.SQLite\System.Data.SQLite.References.targets
           21  +		System.Data.SQLite\System.Data.SQLite.snk = System.Data.SQLite\System.Data.SQLite.snk
           22  +	EndProjectSection
           23  +EndProject
           24  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SQLite.2013", "System.Data.SQLite\System.Data.SQLite.2013.csproj", "{AC139952-261A-4463-B6FA-AEBC25283A66}"
           25  +EndProject
           26  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SQLite.Module.2013", "System.Data.SQLite\System.Data.SQLite.Module.2013.csproj", "{AC139952-261A-4463-B6FA-AEBC25284A66}"
           27  +EndProject
           28  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test.2013", "test\test.2013.csproj", "{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}"
           29  +EndProject
           30  +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite.Interop.2013", "SQLite.Interop\SQLite.Interop.2013.vcxproj", "{53784BC1-A8BC-4AC8-8A3E-158D6807345A}"
           31  +	ProjectSection(ProjectDependencies) = postProject
           32  +		{AC139952-261A-4463-B6FA-AEBC25284A66} = {AC139952-261A-4463-B6FA-AEBC25284A66}
           33  +	EndProjectSection
           34  +EndProject
           35  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SQLite.Linq.2013", "System.Data.SQLite.Linq\System.Data.SQLite.Linq.2013.csproj", "{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}"
           36  +EndProject
           37  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SQLite.Designer.2013", "SQLite.Designer\SQLite.Designer.2013.csproj", "{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}"
           38  +EndProject
           39  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "testlinq.2013", "testlinq\testlinq.2013.csproj", "{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}"
           40  +	ProjectSection(ProjectDependencies) = postProject
           41  +		{AC139952-261A-4463-B6FA-AEBC25283A66} = {AC139952-261A-4463-B6FA-AEBC25283A66}
           42  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D} = {E6BF9F74-58E2-413B-A7CE-EA653ECB728D}
           43  +	EndProjectSection
           44  +EndProject
           45  +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite.Interop.Static.2013", "SQLite.Interop\SQLite.Interop.Static.2013.vcxproj", "{490CBC51-A3B2-4397-89F9-16E858DCB4F8}"
           46  +	ProjectSection(ProjectDependencies) = postProject
           47  +		{AC139952-261A-4463-B6FA-AEBC25284A66} = {AC139952-261A-4463-B6FA-AEBC25284A66}
           48  +	EndProjectSection
           49  +EndProject
           50  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Installer.2013", "tools\install\Installer.2013.csproj", "{A41FE2A5-07AD-4CE7-B836-1544634816F5}"
           51  +EndProject
           52  +Global
           53  +	GlobalSection(SolutionConfigurationPlatforms) = preSolution
           54  +		Debug|Any CPU = Debug|Any CPU
           55  +		Debug|Mixed Platforms = Debug|Mixed Platforms
           56  +		Debug|Win32 = Debug|Win32
           57  +		Debug|x64 = Debug|x64
           58  +		DebugManagedOnly|Any CPU = DebugManagedOnly|Any CPU
           59  +		DebugManagedOnly|Mixed Platforms = DebugManagedOnly|Mixed Platforms
           60  +		DebugManagedOnly|Win32 = DebugManagedOnly|Win32
           61  +		DebugManagedOnly|x64 = DebugManagedOnly|x64
           62  +		DebugNativeOnly|Any CPU = DebugNativeOnly|Any CPU
           63  +		DebugNativeOnly|Mixed Platforms = DebugNativeOnly|Mixed Platforms
           64  +		DebugNativeOnly|Win32 = DebugNativeOnly|Win32
           65  +		DebugNativeOnly|x64 = DebugNativeOnly|x64
           66  +		Release|Any CPU = Release|Any CPU
           67  +		Release|Mixed Platforms = Release|Mixed Platforms
           68  +		Release|Win32 = Release|Win32
           69  +		Release|x64 = Release|x64
           70  +		ReleaseManagedOnly|Any CPU = ReleaseManagedOnly|Any CPU
           71  +		ReleaseManagedOnly|Mixed Platforms = ReleaseManagedOnly|Mixed Platforms
           72  +		ReleaseManagedOnly|Win32 = ReleaseManagedOnly|Win32
           73  +		ReleaseManagedOnly|x64 = ReleaseManagedOnly|x64
           74  +		ReleaseNativeOnly|Any CPU = ReleaseNativeOnly|Any CPU
           75  +		ReleaseNativeOnly|Mixed Platforms = ReleaseNativeOnly|Mixed Platforms
           76  +		ReleaseNativeOnly|Win32 = ReleaseNativeOnly|Win32
           77  +		ReleaseNativeOnly|x64 = ReleaseNativeOnly|x64
           78  +	EndGlobalSection
           79  +	GlobalSection(ProjectConfigurationPlatforms) = postSolution
           80  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
           81  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Any CPU.Build.0 = Debug|Any CPU
           82  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
           83  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
           84  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Win32.ActiveCfg = Debug|Any CPU
           85  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Win32.Build.0 = Debug|Any CPU
           86  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|x64.ActiveCfg = Debug|Any CPU
           87  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|x64.Build.0 = Debug|Any CPU
           88  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugManagedOnly|Any CPU.ActiveCfg = Debug|Any CPU
           89  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugManagedOnly|Any CPU.Build.0 = Debug|Any CPU
           90  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugManagedOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
           91  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugManagedOnly|Mixed Platforms.Build.0 = Debug|Any CPU
           92  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugManagedOnly|Win32.ActiveCfg = Debug|Any CPU
           93  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugManagedOnly|Win32.Build.0 = Debug|Any CPU
           94  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugManagedOnly|x64.ActiveCfg = Debug|Any CPU
           95  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugManagedOnly|x64.Build.0 = Debug|Any CPU
           96  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
           97  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
           98  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
           99  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
          100  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Any CPU.ActiveCfg = Release|Any CPU
          101  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Any CPU.Build.0 = Release|Any CPU
          102  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
          103  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Mixed Platforms.Build.0 = Release|Any CPU
          104  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Win32.ActiveCfg = Release|Any CPU
          105  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Win32.Build.0 = Release|Any CPU
          106  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|x64.ActiveCfg = Release|Any CPU
          107  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|x64.Build.0 = Release|Any CPU
          108  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseManagedOnly|Any CPU.ActiveCfg = Release|Any CPU
          109  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseManagedOnly|Any CPU.Build.0 = Release|Any CPU
          110  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          111  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseManagedOnly|Mixed Platforms.Build.0 = Release|Any CPU
          112  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseManagedOnly|Win32.ActiveCfg = Release|Any CPU
          113  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseManagedOnly|Win32.Build.0 = Release|Any CPU
          114  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseManagedOnly|x64.ActiveCfg = Release|Any CPU
          115  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseManagedOnly|x64.Build.0 = Release|Any CPU
          116  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Any CPU.ActiveCfg = Release|Any CPU
          117  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          118  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Win32.ActiveCfg = Release|Any CPU
          119  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|x64.ActiveCfg = Release|Any CPU
          120  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
          121  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Any CPU.Build.0 = Debug|Any CPU
          122  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
          123  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
          124  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Win32.ActiveCfg = Debug|Any CPU
          125  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Win32.Build.0 = Debug|Any CPU
          126  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|x64.ActiveCfg = Debug|Any CPU
          127  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|x64.Build.0 = Debug|Any CPU
          128  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugManagedOnly|Any CPU.ActiveCfg = Debug|Any CPU
          129  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugManagedOnly|Any CPU.Build.0 = Debug|Any CPU
          130  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugManagedOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          131  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugManagedOnly|Mixed Platforms.Build.0 = Debug|Any CPU
          132  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugManagedOnly|Win32.ActiveCfg = Debug|Any CPU
          133  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugManagedOnly|Win32.Build.0 = Debug|Any CPU
          134  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugManagedOnly|x64.ActiveCfg = Debug|Any CPU
          135  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugManagedOnly|x64.Build.0 = Debug|Any CPU
          136  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
          137  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          138  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
          139  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
          140  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Any CPU.ActiveCfg = Release|Any CPU
          141  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Any CPU.Build.0 = Release|Any CPU
          142  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
          143  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Mixed Platforms.Build.0 = Release|Any CPU
          144  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Win32.ActiveCfg = Release|Any CPU
          145  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Win32.Build.0 = Release|Any CPU
          146  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|x64.ActiveCfg = Release|Any CPU
          147  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|x64.Build.0 = Release|Any CPU
          148  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseManagedOnly|Any CPU.ActiveCfg = Release|Any CPU
          149  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseManagedOnly|Any CPU.Build.0 = Release|Any CPU
          150  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          151  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseManagedOnly|Mixed Platforms.Build.0 = Release|Any CPU
          152  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseManagedOnly|Win32.ActiveCfg = Release|Any CPU
          153  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseManagedOnly|Win32.Build.0 = Release|Any CPU
          154  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseManagedOnly|x64.ActiveCfg = Release|Any CPU
          155  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseManagedOnly|x64.Build.0 = Release|Any CPU
          156  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseNativeOnly|Any CPU.ActiveCfg = Release|Any CPU
          157  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          158  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseNativeOnly|Win32.ActiveCfg = Release|Any CPU
          159  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.ReleaseNativeOnly|x64.ActiveCfg = Release|Any CPU
          160  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
          161  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Debug|Any CPU.Build.0 = Debug|Any CPU
          162  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
          163  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
          164  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Debug|Win32.ActiveCfg = Debug|Any CPU
          165  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Debug|Win32.Build.0 = Debug|Any CPU
          166  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Debug|x64.ActiveCfg = Debug|Any CPU
          167  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Debug|x64.Build.0 = Debug|Any CPU
          168  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugManagedOnly|Any CPU.ActiveCfg = Debug|Any CPU
          169  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugManagedOnly|Any CPU.Build.0 = Debug|Any CPU
          170  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugManagedOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          171  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugManagedOnly|Mixed Platforms.Build.0 = Debug|Any CPU
          172  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugManagedOnly|Win32.ActiveCfg = Debug|Any CPU
          173  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugManagedOnly|Win32.Build.0 = Debug|Any CPU
          174  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugManagedOnly|x64.ActiveCfg = Debug|Any CPU
          175  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugManagedOnly|x64.Build.0 = Debug|Any CPU
          176  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
          177  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          178  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
          179  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
          180  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Release|Any CPU.ActiveCfg = Release|Any CPU
          181  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Release|Any CPU.Build.0 = Release|Any CPU
          182  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
          183  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Release|Mixed Platforms.Build.0 = Release|Any CPU
          184  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Release|Win32.ActiveCfg = Release|Any CPU
          185  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Release|Win32.Build.0 = Release|Any CPU
          186  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Release|x64.ActiveCfg = Release|Any CPU
          187  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.Release|x64.Build.0 = Release|Any CPU
          188  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseManagedOnly|Any CPU.ActiveCfg = Release|Any CPU
          189  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseManagedOnly|Any CPU.Build.0 = Release|Any CPU
          190  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          191  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseManagedOnly|Mixed Platforms.Build.0 = Release|Any CPU
          192  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseManagedOnly|Win32.ActiveCfg = Release|Any CPU
          193  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseManagedOnly|Win32.Build.0 = Release|Any CPU
          194  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseManagedOnly|x64.ActiveCfg = Release|Any CPU
          195  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseManagedOnly|x64.Build.0 = Release|Any CPU
          196  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseNativeOnly|Any CPU.ActiveCfg = Release|Any CPU
          197  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          198  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseNativeOnly|Win32.ActiveCfg = Release|Any CPU
          199  +		{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}.ReleaseNativeOnly|x64.ActiveCfg = Release|Any CPU
          200  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Debug|Any CPU.ActiveCfg = Debug|Win32
          201  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Debug|Any CPU.Build.0 = Debug|Win32
          202  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
          203  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
          204  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Debug|Win32.ActiveCfg = Debug|Win32
          205  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Debug|Win32.Build.0 = Debug|Win32
          206  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Debug|x64.ActiveCfg = Debug|x64
          207  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Debug|x64.Build.0 = Debug|x64
          208  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugManagedOnly|Any CPU.ActiveCfg = DebugNativeOnly|Win32
          209  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugManagedOnly|Mixed Platforms.ActiveCfg = DebugNativeOnly|Win32
          210  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugManagedOnly|Win32.ActiveCfg = DebugNativeOnly|Win32
          211  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugManagedOnly|x64.ActiveCfg = DebugNativeOnly|x64
          212  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugNativeOnly|Any CPU.ActiveCfg = DebugNativeOnly|Win32
          213  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugNativeOnly|Any CPU.Build.0 = DebugNativeOnly|Win32
          214  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugNativeOnly|Mixed Platforms.ActiveCfg = DebugNativeOnly|Win32
          215  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugNativeOnly|Mixed Platforms.Build.0 = DebugNativeOnly|Win32
          216  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugNativeOnly|Win32.ActiveCfg = DebugNativeOnly|Win32
          217  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugNativeOnly|Win32.Build.0 = DebugNativeOnly|Win32
          218  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugNativeOnly|x64.ActiveCfg = DebugNativeOnly|x64
          219  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.DebugNativeOnly|x64.Build.0 = DebugNativeOnly|x64
          220  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Release|Any CPU.ActiveCfg = Release|Win32
          221  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Release|Any CPU.Build.0 = Release|Win32
          222  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
          223  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Release|Mixed Platforms.Build.0 = Release|Win32
          224  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Release|Win32.ActiveCfg = Release|Win32
          225  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Release|Win32.Build.0 = Release|Win32
          226  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Release|x64.ActiveCfg = Release|x64
          227  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.Release|x64.Build.0 = Release|x64
          228  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseManagedOnly|Any CPU.ActiveCfg = ReleaseNativeOnly|Win32
          229  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = ReleaseNativeOnly|Win32
          230  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseManagedOnly|Win32.ActiveCfg = ReleaseNativeOnly|Win32
          231  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseManagedOnly|x64.ActiveCfg = ReleaseNativeOnly|x64
          232  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseNativeOnly|Any CPU.ActiveCfg = ReleaseNativeOnly|Win32
          233  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseNativeOnly|Any CPU.Build.0 = ReleaseNativeOnly|Win32
          234  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = ReleaseNativeOnly|Win32
          235  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseNativeOnly|Mixed Platforms.Build.0 = ReleaseNativeOnly|Win32
          236  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseNativeOnly|Win32.ActiveCfg = ReleaseNativeOnly|Win32
          237  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseNativeOnly|Win32.Build.0 = ReleaseNativeOnly|Win32
          238  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseNativeOnly|x64.ActiveCfg = ReleaseNativeOnly|x64
          239  +		{53784BC1-A8BC-4AC8-8A3E-158D6807345A}.ReleaseNativeOnly|x64.Build.0 = ReleaseNativeOnly|x64
          240  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
          241  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Debug|Any CPU.Build.0 = Debug|Any CPU
          242  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
          243  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
          244  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Debug|Win32.ActiveCfg = Debug|Any CPU
          245  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Debug|Win32.Build.0 = Debug|Any CPU
          246  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Debug|x64.ActiveCfg = Debug|Any CPU
          247  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Debug|x64.Build.0 = Debug|Any CPU
          248  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugManagedOnly|Any CPU.ActiveCfg = Debug|Any CPU
          249  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugManagedOnly|Any CPU.Build.0 = Debug|Any CPU
          250  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugManagedOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          251  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugManagedOnly|Mixed Platforms.Build.0 = Debug|Any CPU
          252  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugManagedOnly|Win32.ActiveCfg = Debug|Any CPU
          253  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugManagedOnly|Win32.Build.0 = Debug|Any CPU
          254  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugManagedOnly|x64.ActiveCfg = Debug|Any CPU
          255  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugManagedOnly|x64.Build.0 = Debug|Any CPU
          256  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
          257  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          258  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
          259  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
          260  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Release|Any CPU.ActiveCfg = Release|Any CPU
          261  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Release|Any CPU.Build.0 = Release|Any CPU
          262  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
          263  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
          264  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Release|Win32.ActiveCfg = Release|Any CPU
          265  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Release|Win32.Build.0 = Release|Any CPU
          266  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Release|x64.ActiveCfg = Release|Any CPU
          267  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.Release|x64.Build.0 = Release|Any CPU
          268  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseManagedOnly|Any CPU.ActiveCfg = Release|Any CPU
          269  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseManagedOnly|Any CPU.Build.0 = Release|Any CPU
          270  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          271  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseManagedOnly|Mixed Platforms.Build.0 = Release|Any CPU
          272  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseManagedOnly|Win32.ActiveCfg = Release|Any CPU
          273  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseManagedOnly|Win32.Build.0 = Release|Any CPU
          274  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseManagedOnly|x64.ActiveCfg = Release|Any CPU
          275  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseManagedOnly|x64.Build.0 = Release|Any CPU
          276  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseNativeOnly|Any CPU.ActiveCfg = Release|Any CPU
          277  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          278  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseNativeOnly|Win32.ActiveCfg = Release|Any CPU
          279  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}.ReleaseNativeOnly|x64.ActiveCfg = Release|Any CPU
          280  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
          281  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Debug|Any CPU.Build.0 = Debug|Any CPU
          282  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
          283  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
          284  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Debug|Win32.ActiveCfg = Debug|Any CPU
          285  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Debug|Win32.Build.0 = Debug|Any CPU
          286  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Debug|x64.ActiveCfg = Debug|Any CPU
          287  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Debug|x64.Build.0 = Debug|Any CPU
          288  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugManagedOnly|Any CPU.ActiveCfg = Debug|Any CPU
          289  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugManagedOnly|Any CPU.Build.0 = Debug|Any CPU
          290  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugManagedOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          291  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugManagedOnly|Mixed Platforms.Build.0 = Debug|Any CPU
          292  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugManagedOnly|Win32.ActiveCfg = Debug|Any CPU
          293  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugManagedOnly|Win32.Build.0 = Debug|Any CPU
          294  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugManagedOnly|x64.ActiveCfg = Debug|Any CPU
          295  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugManagedOnly|x64.Build.0 = Debug|Any CPU
          296  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
          297  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          298  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
          299  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
          300  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Release|Any CPU.ActiveCfg = Release|Any CPU
          301  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Release|Any CPU.Build.0 = Release|Any CPU
          302  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
          303  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Release|Mixed Platforms.Build.0 = Release|Any CPU
          304  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Release|Win32.ActiveCfg = Release|Any CPU
          305  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Release|Win32.Build.0 = Release|Any CPU
          306  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Release|x64.ActiveCfg = Release|Any CPU
          307  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.Release|x64.Build.0 = Release|Any CPU
          308  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseManagedOnly|Any CPU.ActiveCfg = Release|Any CPU
          309  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseManagedOnly|Any CPU.Build.0 = Release|Any CPU
          310  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          311  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseManagedOnly|Mixed Platforms.Build.0 = Release|Any CPU
          312  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseManagedOnly|Win32.ActiveCfg = Release|Any CPU
          313  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseManagedOnly|Win32.Build.0 = Release|Any CPU
          314  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseManagedOnly|x64.ActiveCfg = Release|Any CPU
          315  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseManagedOnly|x64.Build.0 = Release|Any CPU
          316  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseNativeOnly|Any CPU.ActiveCfg = Release|Any CPU
          317  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          318  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseNativeOnly|Win32.ActiveCfg = Release|Any CPU
          319  +		{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}.ReleaseNativeOnly|x64.ActiveCfg = Release|Any CPU
          320  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
          321  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
          322  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
          323  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
          324  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Debug|Win32.ActiveCfg = Debug|Any CPU
          325  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Debug|Win32.Build.0 = Debug|Any CPU
          326  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Debug|x64.ActiveCfg = Debug|Any CPU
          327  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Debug|x64.Build.0 = Debug|Any CPU
          328  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugManagedOnly|Any CPU.ActiveCfg = Debug|Any CPU
          329  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugManagedOnly|Any CPU.Build.0 = Debug|Any CPU
          330  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugManagedOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          331  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugManagedOnly|Mixed Platforms.Build.0 = Debug|Any CPU
          332  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugManagedOnly|Win32.ActiveCfg = Debug|Any CPU
          333  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugManagedOnly|Win32.Build.0 = Debug|Any CPU
          334  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugManagedOnly|x64.ActiveCfg = Debug|Any CPU
          335  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugManagedOnly|x64.Build.0 = Debug|Any CPU
          336  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
          337  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          338  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
          339  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
          340  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
          341  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Release|Any CPU.Build.0 = Release|Any CPU
          342  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
          343  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
          344  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Release|Win32.ActiveCfg = Release|Any CPU
          345  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Release|Win32.Build.0 = Release|Any CPU
          346  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Release|x64.ActiveCfg = Release|Any CPU
          347  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.Release|x64.Build.0 = Release|Any CPU
          348  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseManagedOnly|Any CPU.ActiveCfg = Release|Any CPU
          349  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseManagedOnly|Any CPU.Build.0 = Release|Any CPU
          350  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          351  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseManagedOnly|Mixed Platforms.Build.0 = Release|Any CPU
          352  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseManagedOnly|Win32.ActiveCfg = Release|Any CPU
          353  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseManagedOnly|Win32.Build.0 = Release|Any CPU
          354  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseManagedOnly|x64.ActiveCfg = Release|Any CPU
          355  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseManagedOnly|x64.Build.0 = Release|Any CPU
          356  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseNativeOnly|Any CPU.ActiveCfg = Release|Any CPU
          357  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          358  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseNativeOnly|Win32.ActiveCfg = Release|Any CPU
          359  +		{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}.ReleaseNativeOnly|x64.ActiveCfg = Release|Any CPU
          360  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Debug|Any CPU.ActiveCfg = Debug|Win32
          361  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Debug|Any CPU.Build.0 = Debug|Win32
          362  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
          363  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Debug|Mixed Platforms.Build.0 = Debug|Win32
          364  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Debug|Win32.ActiveCfg = Debug|Win32
          365  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Debug|Win32.Build.0 = Debug|Win32
          366  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Debug|x64.ActiveCfg = Debug|x64
          367  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Debug|x64.Build.0 = Debug|x64
          368  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugManagedOnly|Any CPU.ActiveCfg = DebugNativeOnly|Win32
          369  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugManagedOnly|Mixed Platforms.ActiveCfg = DebugNativeOnly|Win32
          370  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugManagedOnly|Win32.ActiveCfg = DebugNativeOnly|Win32
          371  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugManagedOnly|x64.ActiveCfg = DebugNativeOnly|x64
          372  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugNativeOnly|Any CPU.ActiveCfg = DebugNativeOnly|Win32
          373  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugNativeOnly|Any CPU.Build.0 = DebugNativeOnly|Win32
          374  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugNativeOnly|Mixed Platforms.ActiveCfg = DebugNativeOnly|Win32
          375  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugNativeOnly|Mixed Platforms.Build.0 = DebugNativeOnly|Win32
          376  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugNativeOnly|Win32.ActiveCfg = DebugNativeOnly|Win32
          377  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugNativeOnly|Win32.Build.0 = DebugNativeOnly|Win32
          378  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugNativeOnly|x64.ActiveCfg = DebugNativeOnly|x64
          379  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.DebugNativeOnly|x64.Build.0 = DebugNativeOnly|x64
          380  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Release|Any CPU.ActiveCfg = Release|Win32
          381  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Release|Any CPU.Build.0 = Release|Win32
          382  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Release|Mixed Platforms.ActiveCfg = Release|Win32
          383  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Release|Mixed Platforms.Build.0 = Release|Win32
          384  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Release|Win32.ActiveCfg = Release|Win32
          385  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Release|Win32.Build.0 = Release|Win32
          386  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Release|x64.ActiveCfg = Release|x64
          387  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.Release|x64.Build.0 = Release|x64
          388  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseManagedOnly|Any CPU.ActiveCfg = ReleaseNativeOnly|Win32
          389  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = ReleaseNativeOnly|Win32
          390  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseManagedOnly|Win32.ActiveCfg = ReleaseNativeOnly|Win32
          391  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseManagedOnly|x64.ActiveCfg = ReleaseNativeOnly|x64
          392  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseNativeOnly|Any CPU.ActiveCfg = ReleaseNativeOnly|Win32
          393  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseNativeOnly|Any CPU.Build.0 = ReleaseNativeOnly|Win32
          394  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = ReleaseNativeOnly|Win32
          395  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseNativeOnly|Mixed Platforms.Build.0 = ReleaseNativeOnly|Win32
          396  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseNativeOnly|Win32.ActiveCfg = ReleaseNativeOnly|Win32
          397  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseNativeOnly|Win32.Build.0 = ReleaseNativeOnly|Win32
          398  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseNativeOnly|x64.ActiveCfg = ReleaseNativeOnly|x64
          399  +		{490CBC51-A3B2-4397-89F9-16E858DCB4F8}.ReleaseNativeOnly|x64.Build.0 = ReleaseNativeOnly|x64
          400  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
          401  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
          402  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
          403  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
          404  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Debug|Win32.ActiveCfg = Debug|Any CPU
          405  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Debug|Win32.Build.0 = Debug|Any CPU
          406  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Debug|x64.ActiveCfg = Debug|Any CPU
          407  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Debug|x64.Build.0 = Debug|Any CPU
          408  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugManagedOnly|Any CPU.ActiveCfg = Debug|Any CPU
          409  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugManagedOnly|Any CPU.Build.0 = Debug|Any CPU
          410  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugManagedOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          411  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugManagedOnly|Mixed Platforms.Build.0 = Debug|Any CPU
          412  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugManagedOnly|Win32.ActiveCfg = Debug|Any CPU
          413  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugManagedOnly|Win32.Build.0 = Debug|Any CPU
          414  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugManagedOnly|x64.ActiveCfg = Debug|Any CPU
          415  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugManagedOnly|x64.Build.0 = Debug|Any CPU
          416  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
          417  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          418  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
          419  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
          420  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
          421  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Release|Any CPU.Build.0 = Release|Any CPU
          422  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
          423  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
          424  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Release|Win32.ActiveCfg = Release|Any CPU
          425  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Release|Win32.Build.0 = Release|Any CPU
          426  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Release|x64.ActiveCfg = Release|Any CPU
          427  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.Release|x64.Build.0 = Release|Any CPU
          428  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseManagedOnly|Any CPU.ActiveCfg = Release|Any CPU
          429  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseManagedOnly|Any CPU.Build.0 = Release|Any CPU
          430  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseManagedOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          431  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseManagedOnly|Mixed Platforms.Build.0 = Release|Any CPU
          432  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseManagedOnly|Win32.ActiveCfg = Release|Any CPU
          433  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseManagedOnly|Win32.Build.0 = Release|Any CPU
          434  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseManagedOnly|x64.ActiveCfg = Release|Any CPU
          435  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseManagedOnly|x64.Build.0 = Release|Any CPU
          436  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseNativeOnly|Any CPU.ActiveCfg = Release|Any CPU
          437  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
          438  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseNativeOnly|Win32.ActiveCfg = Release|Any CPU
          439  +		{A41FE2A5-07AD-4CE7-B836-1544634816F5}.ReleaseNativeOnly|x64.ActiveCfg = Release|Any CPU
          440  +	EndGlobalSection
          441  +	GlobalSection(SolutionProperties) = preSolution
          442  +		HideSolutionNode = FALSE
          443  +	EndGlobalSection
          444  +EndGlobal

Added SQLite.NET.2013.sln.

            1  +Microsoft Visual Studio Solution File, Format Version 13.00
            2  +# Visual Studio 2013
            3  +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{39A3B743-1EBD-4CC0-8E37-ACE3DD38B1C0}"
            4  +	ProjectSection(SolutionItems) = preProject
            5  +		exclude_bin.txt = exclude_bin.txt
            6  +		exclude_src.txt = exclude_src.txt
            7  +		install.ps1 = install.ps1
            8  +		readme.htm = readme.htm
            9  +		SQLite.Beta.nuspec = SQLite.Beta.nuspec
           10  +		SQLite.MSIL.nuspec = SQLite.MSIL.nuspec
           11  +		SQLite.NET.Settings.targets = SQLite.NET.Settings.targets
           12  +		SQLite.NET.Settings.targets.netFx35 = SQLite.NET.Settings.targets.netFx35
           13  +		SQLite.NET.targets = SQLite.NET.targets
           14  +		SQLite.nuspec = SQLite.nuspec
           15  +		SQLite.x64.nuspec = SQLite.x64.nuspec
           16  +		SQLite.x86.nuspec = SQLite.x86.nuspec
           17  +		System.Data.SQLite\System.Data.SQLite.CF.snk = System.Data.SQLite\System.Data.SQLite.CF.snk
           18  +		System.Data.SQLite\System.Data.SQLite.Files.targets = System.Data.SQLite\System.Data.SQLite.Files.targets
           19  +		System.Data.SQLite\System.Data.SQLite.Properties.targets = System.Data.SQLite\System.Data.SQLite.Properties.targets
           20  +		System.Data.SQLite\System.Data.SQLite.References.targets = System.Data.SQLite\System.Data.SQLite.References.targets
           21  +		System.Data.SQLite\System.Data.SQLite.snk = System.Data.SQLite\System.Data.SQLite.snk
           22  +	EndProjectSection
           23  +EndProject
           24  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SQLite.2013", "System.Data.SQLite\System.Data.SQLite.2013.csproj", "{AC139952-261A-4463-B6FA-AEBC25283A66}"
           25  +EndProject
           26  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SQLite.Module.2013", "System.Data.SQLite\System.Data.SQLite.Module.2013.csproj", "{AC139952-261A-4463-B6FA-AEBC25284A66}"
           27  +EndProject
           28  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test.2013", "test\test.2013.csproj", "{E27B1B1E-19C0-45E8-AA74-B6E1C041A130}"
           29  +EndProject
           30  +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite.Interop.2013", "SQLite.Interop\SQLite.Interop.2013.vcxproj", "{53784BC1-A8BC-4AC8-8A3E-158D6807345A}"
           31  +	ProjectSection(ProjectDependencies) = postProject
           32  +		{AC139952-261A-4463-B6FA-AEBC25284A66} = {AC139952-261A-4463-B6FA-AEBC25284A66}
           33  +	EndProjectSection
           34  +EndProject
           35  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Data.SQLite.Linq.2013", "System.Data.SQLite.Linq\System.Data.SQLite.Linq.2013.csproj", "{E6BF9F74-58E2-413B-A7CE-EA653ECB728D}"
           36  +EndProject
           37  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SQLite.Designer.2013", "SQLite.Designer\SQLite.Designer.2013.csproj", "{9B4A5CF6-5BE5-4926-ACC7-B729A8C05198}"
           38  +EndProject
           39  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "testlinq.2013", "testlinq\testlinq.2013.csproj", "{9D3CF7A6-092A-4B05-B0E4-BEF6944525B3}"
           40  +	ProjectSection(ProjectDependencies) = postProject
           41  +		{AC139952-261A-4463-B6FA-AEBC25283A66} = {AC139952-261A-4463-B6FA-AEBC25283A66}
           42  +		{E6BF9F74-58E2-413B-A7CE-EA653ECB728D} = {E6BF9F74-58E2-413B-A7CE-EA653ECB728D}
           43  +	EndProjectSection
           44  +EndProject
           45  +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite.Interop.Static.2013", "SQLite.Interop\SQLite.Interop.Static.2013.vcxproj", "{490CBC51-A3B2-4397-89F9-16E858DCB4F8}"
           46  +	ProjectSection(ProjectDependencies) = postProject
           47  +		{AC139952-261A-4463-B6FA-AEBC25284A66} = {AC139952-261A-4463-B6FA-AEBC25284A66}
           48  +	EndProjectSection
           49  +EndProject
           50  +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Installer.2013", "tools\install\Installer.2013.csproj", "{A41FE2A5-07AD-4CE7-B836-1544634816F5}"
           51  +EndProject
           52  +Global
           53  +	GlobalSection(SolutionConfigurationPlatforms) = preSolution
           54  +		Debug|Any CPU = Debug|Any CPU
           55  +		Debug|Mixed Platforms = Debug|Mixed Platforms
           56  +		Debug|Win32 = Debug|Win32
           57  +		Debug|x64 = Debug|x64
           58  +		DebugNativeOnly|Any CPU = DebugNativeOnly|Any CPU
           59  +		DebugNativeOnly|Mixed Platforms = DebugNativeOnly|Mixed Platforms
           60  +		DebugNativeOnly|Win32 = DebugNativeOnly|Win32
           61  +		DebugNativeOnly|x64 = DebugNativeOnly|x64
           62  +		Release|Any CPU = Release|Any CPU
           63  +		Release|Mixed Platforms = Release|Mixed Platforms
           64  +		Release|Win32 = Release|Win32
           65  +		Release|x64 = Release|x64
           66  +		ReleaseNativeOnly|Any CPU = ReleaseNativeOnly|Any CPU
           67  +		ReleaseNativeOnly|Mixed Platforms = ReleaseNativeOnly|Mixed Platforms
           68  +		ReleaseNativeOnly|Win32 = ReleaseNativeOnly|Win32
           69  +		ReleaseNativeOnly|x64 = ReleaseNativeOnly|x64
           70  +	EndGlobalSection
           71  +	GlobalSection(ProjectConfigurationPlatforms) = postSolution
           72  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
           73  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Any CPU.Build.0 = Debug|Any CPU
           74  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
           75  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
           76  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Win32.ActiveCfg = Debug|Any CPU
           77  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|Win32.Build.0 = Debug|Any CPU
           78  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|x64.ActiveCfg = Debug|Any CPU
           79  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Debug|x64.Build.0 = Debug|Any CPU
           80  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
           81  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Any CPU.Build.0 = Debug|Any CPU
           82  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
           83  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Mixed Platforms.Build.0 = Debug|Any CPU
           84  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
           85  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|Win32.Build.0 = Debug|Any CPU
           86  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
           87  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.DebugNativeOnly|x64.Build.0 = Debug|Any CPU
           88  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Any CPU.ActiveCfg = Release|Any CPU
           89  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Any CPU.Build.0 = Release|Any CPU
           90  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
           91  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Mixed Platforms.Build.0 = Release|Any CPU
           92  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Win32.ActiveCfg = Release|Any CPU
           93  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|Win32.Build.0 = Release|Any CPU
           94  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|x64.ActiveCfg = Release|Any CPU
           95  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.Release|x64.Build.0 = Release|Any CPU
           96  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Any CPU.ActiveCfg = Release|Any CPU
           97  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Any CPU.Build.0 = Release|Any CPU
           98  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Mixed Platforms.ActiveCfg = Release|Any CPU
           99  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Mixed Platforms.Build.0 = Release|Any CPU
          100  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Win32.ActiveCfg = Release|Any CPU
          101  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|Win32.Build.0 = Release|Any CPU
          102  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|x64.ActiveCfg = Release|Any CPU
          103  +		{AC139952-261A-4463-B6FA-AEBC25283A66}.ReleaseNativeOnly|x64.Build.0 = Release|Any CPU
          104  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
          105  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Any CPU.Build.0 = Debug|Any CPU
          106  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
          107  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
          108  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Win32.ActiveCfg = Debug|Any CPU
          109  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|Win32.Build.0 = Debug|Any CPU
          110  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|x64.ActiveCfg = Debug|Any CPU
          111  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Debug|x64.Build.0 = Debug|Any CPU
          112  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Any CPU.ActiveCfg = Debug|Any CPU
          113  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Any CPU.Build.0 = Debug|Any CPU
          114  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Mixed Platforms.ActiveCfg = Debug|Any CPU
          115  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Mixed Platforms.Build.0 = Debug|Any CPU
          116  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Win32.ActiveCfg = Debug|Any CPU
          117  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|Win32.Build.0 = Debug|Any CPU
          118  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|x64.ActiveCfg = Debug|Any CPU
          119  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.DebugNativeOnly|x64.Build.0 = Debug|Any CPU
          120  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Any CPU.ActiveCfg = Release|Any CPU
          121  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Any CPU.Build.0 = Release|Any CPU
          122  +		{AC139952-261A-4463-B6FA-AEBC25284A66}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
          123  +