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

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

Overview
Comment:Initial work on porting the primary managed assembly to .NET Standard 2.0 (using .NET Core 2.0).
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | netStandard20
Files: files | file ages | folders
SHA1: b93695026101f419a4f1d53298aeaa7c369cce0d
User & Date: mistachkin 2018-04-05 04:51:59
Context
2018-04-05
05:08
Fix the naming of the 'year' batch files to they can more easily coexist with the 'framework' batch files. check-in: bf7fffa914 user: mistachkin tags: netStandard20
04:51
Initial work on porting the primary managed assembly to .NET Standard 2.0 (using .NET Core 2.0). check-in: b936950261 user: mistachkin tags: netStandard20
03:45
Pickup the SQLite core library 3.23.0 docs from upstream. check-in: 6bb5d25e27 user: mistachkin tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to Setup/build.bat.

   130    130   
   131    131   IF NOT DEFINED MSBUILD (
   132    132     SET MSBUILD=MSBuild.exe
   133    133   )
   134    134   
   135    135   %_VECHO% MsBuild = '%MSBUILD%'
   136    136   
          137  +IF NOT DEFINED DOTNET (
          138  +  SET DOTNET=dotnet.exe
          139  +)
          140  +
          141  +%_VECHO% DotNet = '%DOTNET%'
          142  +
   137    143   IF NOT DEFINED CSC (
   138    144     SET CSC=csc.exe
   139    145   )
   140    146   
   141    147   %_VECHO% Csc = '%CSC%'
   142    148   
   143    149   REM
   144    150   REM TODO: When the next version of Visual Studio is released, this section
   145    151   REM       may need updating.
   146    152   REM
          153  +IF DEFINED NETCORE20ONLY (
          154  +  %_AECHO% Forcing the use of the .NET Core 2.0...
          155  +  IF NOT DEFINED YEAR (
          156  +    SET YEAR=NetStandard20
          157  +  )
          158  +  CALL :fn_VerifyDotNetCore
          159  +  SET NOBUILDTOOLDIR=1
          160  +  SET USEDOTNET=1
          161  +  GOTO setup_buildToolDir
          162  +)
          163  +
   147    164   IF DEFINED NETFX20ONLY (
   148    165     %_AECHO% Forcing the use of the .NET Framework 2.0...
   149    166     SET YEAR=2005
   150    167     CALL :fn_CheckFrameworkDir v2.0.50727
   151    168     GOTO setup_buildToolDir
   152    169   )
   153    170   
................................................................................
   294    311         SET YEAR=2005
   295    312       )
   296    313     )
   297    314   )
   298    315   
   299    316   :setup_buildToolDir
   300    317   
   301         -IF DEFINED BUILDTOOLDIR (
   302         -  %_AECHO% Forcing the use of build tool directory "%BUILDTOOLDIR%"...
   303         -) ELSE (
   304         -  CALL :fn_CheckBuildToolDir
   305         -  CALL :fn_VerifyBuildToolDir
          318  +%_VECHO% NoBuildToolDir = '%NOBUILDTOOLDIR%'
          319  +%_VECHO% UseDotNet = '%USEDOTNET%'
          320  +
          321  +IF NOT DEFINED NOBUILDTOOLDIR (
          322  +  IF DEFINED BUILDTOOLDIR (
          323  +    %_AECHO% Forcing the use of build tool directory "%BUILDTOOLDIR%"...
          324  +  ) ELSE (
          325  +    CALL :fn_CheckBuildToolDir
          326  +    CALL :fn_VerifyBuildToolDir
          327  +  )
   306    328   )
   307    329   
   308    330   %_VECHO% Year = '%YEAR%'
   309    331   %_VECHO% FrameworkDir = '%FRAMEWORKDIR%'
   310    332   %_VECHO% MsBuildDir = '%MSBUILDDIR%'
   311    333   %_VECHO% VisualStudioMsBuildDir = '%VISUALSTUDIOMSBUILDDIR%'
   312    334   %_VECHO% BuildToolDir = '%BUILDTOOLDIR%'
   313    335   
   314         -IF NOT DEFINED BUILDTOOLDIR (
   315         -  ECHO.
   316         -  ECHO No directory containing MSBuild could be found.
   317         -  ECHO.
   318         -  ECHO Please install the .NET Framework or set the "FRAMEWORKDIR"
   319         -  ECHO environment variable to the location where it is installed.
   320         -  ECHO.
   321         -  GOTO errors
          336  +IF NOT DEFINED NOBUILDTOOLDIR (
          337  +  IF NOT DEFINED BUILDTOOLDIR (
          338  +    ECHO.
          339  +    ECHO No directory containing MSBuild could be found.
          340  +    ECHO.
          341  +    ECHO Please install the .NET Framework or set the "FRAMEWORKDIR"
          342  +    ECHO environment variable to the location where it is installed.
          343  +    ECHO.
          344  +    GOTO errors
          345  +  )
   322    346   )
   323    347   
   324    348   CALL :fn_ResetErrorLevel
   325    349   
   326    350   %__ECHO2% PUSHD "%ROOT%"
   327    351   
   328    352   IF ERRORLEVEL 1 (
   329    353     ECHO Could not change directory to "%ROOT%".
   330    354     GOTO errors
   331    355   )
   332    356   
   333         -CALL :fn_PrependToPath BUILDTOOLDIR
          357  +IF NOT DEFINED NOBUILDTOOLDIR (
          358  +  CALL :fn_PrependToPath BUILDTOOLDIR
          359  +)
   334    360   
   335    361   %_VECHO% Path = '%PATH%'
   336    362   
   337    363   IF NOT DEFINED SOLUTION (
   338    364     IF DEFINED COREONLY (
   339    365       %_AECHO% Building core managed project...
   340    366       SET SOLUTION=.\System.Data.SQLite\System.Data.SQLite.%YEAR%.csproj
................................................................................
   403    429   IF NOT DEFINED TEMP (
   404    430     ECHO Temporary directory must be defined.
   405    431     GOTO errors
   406    432   )
   407    433   
   408    434   %_VECHO% Temp = '%TEMP%'
   409    435   
          436  +IF NOT DEFINED LOGASM (
          437  +  IF DEFINED USEDOTNET (
          438  +    SET LOGASM=Microsoft.Build
          439  +  ) ELSE (
          440  +    SET LOGASM=Microsoft.Build.Engine
          441  +  )
          442  +)
          443  +
          444  +%_VECHO% LogAsm = '%LOGASM%'
          445  +
   410    446   IF NOT DEFINED LOGDIR (
   411    447     SET LOGDIR=%TEMP%
   412    448   )
   413    449   
   414    450   %_VECHO% LogDir = '%LOGDIR%'
   415    451   
   416    452   IF NOT DEFINED LOGPREFIX (
................................................................................
   424    460   )
   425    461   
   426    462   %_VECHO% LogSuffix = '%LOGSUFFIX%'
   427    463   
   428    464   IF DEFINED LOGGING GOTO skip_setLogging
   429    465   IF DEFINED NOLOG GOTO skip_setLogging
   430    466   
   431         -SET LOGGING="/logger:FileLogger,Microsoft.Build.Engine;Logfile=%LOGDIR%\%LOGPREFIX%_%CONFIGURATION%_%PLATFORM%_%YEAR%_%LOGSUFFIX%.log;Verbosity=diagnostic"
          467  +SET LOGGING="/logger:FileLogger,%LOGASM%;Logfile=%LOGDIR%\%LOGPREFIX%_%CONFIGURATION%_%PLATFORM%_%YEAR%_%LOGSUFFIX%.log;Verbosity=diagnostic"
          468  +
          469  +%_VECHO% Logging = '%LOGGING%'
   432    470   
   433    471   :skip_setLogging
   434    472   
   435    473   IF NOT DEFINED NOPROPS (
   436    474     IF EXIST Externals\Eagle\bin\EagleShell.exe (
   437    475       IF DEFINED INTEROP_EXTRA_PROPS_FILE (
   438    476         REM
................................................................................
   477    515     )
   478    516   ) ELSE (
   479    517     ECHO WARNING: Source tagging skipped, disabled via NOTAG environment variable.
   480    518   )
   481    519   
   482    520   CALL :fn_CopyVariable MSBUILD_ARGS_%BASE_CONFIGURATION% MSBUILD_ARGS_CFG
   483    521   
   484         -%_VECHO% Logging = '%LOGGING%'
          522  +IF DEFINED USEDOTNET (
          523  +  SET MSBUILD=%DOTNET%
          524  +  SET SUBCOMMANDS=build
          525  +) ELSE (
          526  +  CALL :fn_UnsetVariable SUBCOMMANDS
          527  +)
          528  +
          529  +%_VECHO% SubCommands = '%SUBCOMMANDS%'
   485    530   %_VECHO% BuildArgs = '%BUILD_ARGS%'
   486    531   %_VECHO% MsBuildArgs = '%MSBUILD_ARGS%'
   487    532   %_VECHO% MsBuildArgsCfg = '%MSBUILD_ARGS_CFG%'
   488    533   
   489    534   IF NOT DEFINED NOBUILD (
   490         -  %__ECHO% "%MSBUILD%" "%SOLUTION%" "/target:%TARGET%" "/property:Configuration=%MSBUILD_CONFIGURATION%" "/property:Platform=%PLATFORM%" %LOGGING% %BUILD_ARGS% %MSBUILD_ARGS% %MSBUILD_ARGS_CFG%
          535  +  %__ECHO% "%MSBUILD%" %SUBCOMMANDS% "%SOLUTION%" "/target:%TARGET%" "/property:Configuration=%MSBUILD_CONFIGURATION%" "/property:Platform=%PLATFORM%" %LOGGING% %BUILD_ARGS% %MSBUILD_ARGS% %MSBUILD_ARGS_CFG%
   491    536   
   492    537     IF ERRORLEVEL 1 (
   493    538       ECHO Build failed.
   494    539       GOTO errors
   495    540     )
   496    541   ) ELSE (
   497    542     ECHO WARNING: Build skipped, disabled via NOBUILD environment variable.
................................................................................
   702    747     IF DEFINED BUILDTOOLDIR IF NOT EXIST "%BUILDTOOLDIR%\%CSC%" IF NOT EXIST "%BUILDTOOLDIR%\Roslyn\%CSC%" (
   703    748       %_AECHO% File "%CSC%" not in build tool directory, unsetting...
   704    749       CALL :fn_UnsetVariable BUILDTOOLDIR
   705    750       GOTO :EOF
   706    751     )
   707    752     %_AECHO% Build tool directory "%BUILDTOOLDIR%" verified.
   708    753     GOTO :EOF
          754  +
          755  +:fn_VerifyDotNetCore
          756  +  FOR %%T IN (%DOTNET%) DO (
          757  +    SET %%T_PATH=%%~dp$PATH:T
          758  +  )
          759  +  IF NOT DEFINED %DOTNET%_PATH (
          760  +    ECHO The .NET Core executable "%DOTNET%" is required to be in the PATH.
          761  +    GOTO errors
          762  +  )
          763  +  GOTO :EOF
   709    764   
   710    765   :fn_UnquoteVariable
   711    766     IF NOT DEFINED %1 GOTO :EOF
   712    767     SETLOCAL
   713    768     SET __ECHO_CMD=ECHO %%%1%%
   714    769     FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO (
   715    770       SET VALUE=%%V

Changes to Setup/data/verify.lst.

   310    310     Setup/set_Debug_x86_2005.bat
   311    311     Setup/set_Debug_x86_2008.bat
   312    312     Setup/set_Debug_x86_2010.bat
   313    313     Setup/set_Debug_x86_2012.bat
   314    314     Setup/set_Debug_x86_2013.bat
   315    315     Setup/set_Debug_x86_2015.bat
   316    316     Setup/set_Debug_x86_2017.bat
          317  +  Setup/set_Debug_x86_NetStandard20.bat
   317    318     Setup/set_DebugNativeOnly.bat
   318    319     Setup/set_DebugNativeOnly_ARMV7.bat
   319    320     "Setup/set_DebugNativeOnly_CEPC DevPlatform.bat"
   320    321     "Setup/set_DebugNativeOnly_Pocket PC 2003 (ARMV4).bat"
   321    322     Setup/set_DebugNativeOnly_Win32.bat
   322    323     Setup/set_DebugNativeOnly_x64.bat
   323    324     Setup/set_DebugNativeOnly_x64_2005.bat
................................................................................
   330    331     Setup/set_DebugNativeOnly_x86_2005.bat
   331    332     Setup/set_DebugNativeOnly_x86_2008.bat
   332    333     Setup/set_DebugNativeOnly_x86_2010.bat
   333    334     Setup/set_DebugNativeOnly_x86_2012.bat
   334    335     Setup/set_DebugNativeOnly_x86_2013.bat
   335    336     Setup/set_DebugNativeOnly_x86_2015.bat
   336    337     Setup/set_DebugNativeOnly_x86_2017.bat
          338  +  Setup/set_DebugNativeOnly_x86_NetStandard20.bat
          339  +  Setup/set_netCore20.bat
   337    340     Setup/set_netFx20.bat
   338    341     Setup/set_netFx35.bat
   339    342     Setup/set_netFx40.bat
   340    343     Setup/set_netFx45.bat
   341    344     Setup/set_netFx451.bat
   342    345     Setup/set_netFx452.bat
   343    346     Setup/set_netFx46.bat
   344    347     Setup/set_netFx461.bat
   345    348     Setup/set_netFx462.bat
   346    349     Setup/set_netFx47.bat
   347    350     Setup/set_netFx471.bat
          351  +  Setup/set_NetStandard20.bat
   348    352     Setup/set_Release.bat
   349    353     Setup/set_Release_ARMV7.bat
   350    354     "Setup/set_Release_CEPC DevPlatform.bat"
   351    355     "Setup/set_Release_Pocket PC 2003 (ARMV4).bat"
   352    356     Setup/set_Release_Win32.bat
   353    357     Setup/set_Release_x64.bat
   354    358     Setup/set_Release_x64_2005.bat
................................................................................
   361    365     Setup/set_Release_x86_2005.bat
   362    366     Setup/set_Release_x86_2008.bat
   363    367     Setup/set_Release_x86_2010.bat
   364    368     Setup/set_Release_x86_2012.bat
   365    369     Setup/set_Release_x86_2013.bat
   366    370     Setup/set_Release_x86_2015.bat
   367    371     Setup/set_Release_x86_2017.bat
          372  +  Setup/set_Release_x86_NetStandard20.bat
   368    373     Setup/set_ReleaseNativeOnly.bat
   369    374     Setup/set_ReleaseNativeOnly_ARMV7.bat
   370    375     "Setup/set_ReleaseNativeOnly_CEPC DevPlatform.bat"
   371    376     "Setup/set_ReleaseNativeOnly_Pocket PC 2003 (ARMV4).bat"
   372    377     Setup/set_ReleaseNativeOnly_Win32.bat
   373    378     Setup/set_ReleaseNativeOnly_x64.bat
   374    379     Setup/set_ReleaseNativeOnly_x64_2005.bat
................................................................................
   381    386     Setup/set_ReleaseNativeOnly_x86_2005.bat
   382    387     Setup/set_ReleaseNativeOnly_x86_2008.bat
   383    388     Setup/set_ReleaseNativeOnly_x86_2010.bat
   384    389     Setup/set_ReleaseNativeOnly_x86_2012.bat
   385    390     Setup/set_ReleaseNativeOnly_x86_2013.bat
   386    391     Setup/set_ReleaseNativeOnly_x86_2015.bat
   387    392     Setup/set_ReleaseNativeOnly_x86_2017.bat
          393  +  Setup/set_ReleaseNativeOnly_x86_NetStandard20.bat
   388    394     Setup/set_x64_2005.bat
   389    395     Setup/set_x64_2008.bat
   390    396     Setup/set_x64_2010.bat
   391    397     Setup/set_x64_2012.bat
   392    398     Setup/set_x64_2013.bat
   393    399     Setup/set_x64_2015.bat
   394    400     Setup/set_x64_2017.bat
................................................................................
   395    401     Setup/set_x86_2005.bat
   396    402     Setup/set_x86_2008.bat
   397    403     Setup/set_x86_2010.bat
   398    404     Setup/set_x86_2012.bat
   399    405     Setup/set_x86_2013.bat
   400    406     Setup/set_x86_2015.bat
   401    407     Setup/set_x86_2017.bat
          408  +  Setup/set_x86_NetStandard20.bat
   402    409     Setup/sourceTag.eagle
   403    410     Setup/test.bat
   404    411     Setup/test_all.bat
   405    412     Setup/test_ce_200x.bat
   406    413     Setup/updateFileInfo.tcl
   407    414     Setup/verify.eagle
   408    415     Setup/vsSp.bat

Changes to Setup/set_2005.bat.

     3      3   ::
     4      4   :: set_2005.bat --
     5      5   ::
     6      6   :: Written by Joe Mistachkin.
     7      7   :: Released to the public domain, use at your own risk!
     8      8   ::
     9      9   
           10  +SET NETCORE20ONLY=
    10     11   SET NETFX20ONLY=1
    11     12   SET NETFX35ONLY=
    12     13   SET NETFX40ONLY=
    13     14   SET NETFX45ONLY=
    14     15   SET NETFX451ONLY=
    15     16   SET NETFX452ONLY=
    16     17   SET NETFX46ONLY=

Changes to Setup/set_2008.bat.

     3      3   ::
     4      4   :: set_2008.bat --
     5      5   ::
     6      6   :: Written by Joe Mistachkin.
     7      7   :: Released to the public domain, use at your own risk!
     8      8   ::
     9      9   
           10  +SET NETCORE20ONLY=
    10     11   SET NETFX20ONLY=
    11     12   SET NETFX35ONLY=1
    12     13   SET NETFX40ONLY=
    13     14   SET NETFX45ONLY=
    14     15   SET NETFX451ONLY=
    15     16   SET NETFX452ONLY=
    16     17   SET NETFX46ONLY=

Changes to Setup/set_2010.bat.

     3      3   ::
     4      4   :: set_2010.bat --
     5      5   ::
     6      6   :: Written by Joe Mistachkin.
     7      7   :: Released to the public domain, use at your own risk!
     8      8   ::
     9      9   
           10  +SET NETCORE20ONLY=
    10     11   SET NETFX20ONLY=
    11     12   SET NETFX35ONLY=
    12     13   SET NETFX40ONLY=1
    13     14   SET NETFX45ONLY=
    14     15   SET NETFX451ONLY=
    15     16   SET NETFX452ONLY=
    16     17   SET NETFX46ONLY=

Changes to Setup/set_2012.bat.

     3      3   ::
     4      4   :: set_2012.bat --
     5      5   ::
     6      6   :: Written by Joe Mistachkin.
     7      7   :: Released to the public domain, use at your own risk!
     8      8   ::
     9      9   
           10  +SET NETCORE20ONLY=
    10     11   SET NETFX20ONLY=
    11     12   SET NETFX35ONLY=
    12     13   SET NETFX40ONLY=
    13     14   SET NETFX45ONLY=1
    14     15   SET NETFX451ONLY=
    15     16   SET NETFX452ONLY=
    16     17   SET NETFX46ONLY=

Changes to Setup/set_2013.bat.

     3      3   ::
     4      4   :: set_2013.bat --
     5      5   ::
     6      6   :: Written by Joe Mistachkin.
     7      7   :: Released to the public domain, use at your own risk!
     8      8   ::
     9      9   
           10  +SET NETCORE20ONLY=
    10     11   SET NETFX20ONLY=
    11     12   SET NETFX35ONLY=
    12     13   SET NETFX40ONLY=
    13     14   SET NETFX45ONLY=
    14     15   SET NETFX451ONLY=1
    15     16   SET NETFX452ONLY=
    16     17   SET NETFX46ONLY=

Changes to Setup/set_2015.bat.

     3      3   ::
     4      4   :: set_2015.bat --
     5      5   ::
     6      6   :: Written by Joe Mistachkin.
     7      7   :: Released to the public domain, use at your own risk!
     8      8   ::
     9      9   
           10  +SET NETCORE20ONLY=
    10     11   SET NETFX20ONLY=
    11     12   SET NETFX35ONLY=
    12     13   SET NETFX40ONLY=
    13     14   SET NETFX45ONLY=
    14     15   SET NETFX451ONLY=
    15     16   SET NETFX452ONLY=
    16     17   SET NETFX46ONLY=1

Changes to Setup/set_2017.bat.

     3      3   ::
     4      4   :: set_2017.bat --
     5      5   ::
     6      6   :: Written by Joe Mistachkin.
     7      7   :: Released to the public domain, use at your own risk!
     8      8   ::
     9      9   
           10  +SET NETCORE20ONLY=
    10     11   SET NETFX20ONLY=
    11     12   SET NETFX35ONLY=
    12     13   SET NETFX40ONLY=
    13     14   SET NETFX45ONLY=
    14     15   SET NETFX451ONLY=
    15     16   SET NETFX452ONLY=
    16     17   SET NETFX46ONLY=

Added Setup/set_DebugNativeOnly_x86_NetStandard20.bat.

            1  +@ECHO OFF
            2  +
            3  +::
            4  +:: set_DebugNativeOnly_x86_NetStandard20.bat --
            5  +::
            6  +:: Written by Joe Mistachkin.
            7  +:: Released to the public domain, use at your own risk!
            8  +::
            9  +
           10  +SET CONFIGURATION=DebugNativeOnly
           11  +CALL "%~dp0\set_x86_NetStandard20.bat"

Added Setup/set_Debug_x86_NetStandard20.bat.

            1  +@ECHO OFF
            2  +
            3  +::
            4  +:: set_Debug_x86_NetStandard20.bat --
            5  +::
            6  +:: Written by Joe Mistachkin.
            7  +:: Released to the public domain, use at your own risk!
            8  +::
            9  +
           10  +SET CONFIGURATION=Debug
           11  +CALL "%~dp0\set_x86_NetStandard20.bat"

Added Setup/set_NetStandard20.bat.

            1  +@ECHO OFF
            2  +
            3  +::
            4  +:: set_NetStandard20.bat --
            5  +::
            6  +:: Written by Joe Mistachkin.
            7  +:: Released to the public domain, use at your own risk!
            8  +::
            9  +
           10  +SET NETCORE20ONLY=1
           11  +SET NETFX20ONLY=
           12  +SET NETFX35ONLY=
           13  +SET NETFX40ONLY=
           14  +SET NETFX45ONLY=
           15  +SET NETFX451ONLY=
           16  +SET NETFX452ONLY=
           17  +SET NETFX46ONLY=
           18  +SET NETFX461ONLY=
           19  +SET NETFX462ONLY=
           20  +SET NETFX47ONLY=
           21  +SET NETFX471ONLY=
           22  +
           23  +VERIFY > NUL

Added Setup/set_ReleaseNativeOnly_x86_NetStandard20.bat.

            1  +@ECHO OFF
            2  +
            3  +::
            4  +:: set_ReleaseNativeOnly_x86_NetStandard20.bat --
            5  +::
            6  +:: Written by Joe Mistachkin.
            7  +:: Released to the public domain, use at your own risk!
            8  +::
            9  +
           10  +SET CONFIGURATION=ReleaseNativeOnly
           11  +CALL "%~dp0\set_x86_NetStandard20.bat"

Added Setup/set_Release_x86_NetStandard20.bat.

            1  +@ECHO OFF
            2  +
            3  +::
            4  +:: set_Release_x86_NetStandard20.bat --
            5  +::
            6  +:: Written by Joe Mistachkin.
            7  +:: Released to the public domain, use at your own risk!
            8  +::
            9  +
           10  +SET CONFIGURATION=Release
           11  +CALL "%~dp0\set_x86_NetStandard20.bat"

Changes to Setup/set_common.bat.

   130    130   )
   131    131   
   132    132   IF NOT DEFINED NOVS2017 (
   133    133     IF DEFINED VS2017SP (
   134    134       SET YEARS=%YEARS% 2017
   135    135     )
   136    136   )
          137  +
          138  +IF NOT DEFINED NONETSTANDARD20 (
          139  +  SET YEARS=%YEARS% NetStandard20
          140  +)
   137    141   
   138    142   :end_of_file

Added Setup/set_netCore20.bat.

            1  +@ECHO OFF
            2  +
            3  +::
            4  +:: set_netCore20.bat --
            5  +::
            6  +:: Written by Joe Mistachkin.
            7  +:: Released to the public domain, use at your own risk!
            8  +::
            9  +
           10  +IF NOT DEFINED ISNETFX2 (
           11  +  SET ISNETFX2=False
           12  +)
           13  +
           14  +IF NOT DEFINED VCRUNTIME (
           15  +  SET VCRUNTIME=2017_VCU3
           16  +)
           17  +
           18  +IF NOT DEFINED CONFIGURATION (
           19  +  SET CONFIGURATION=Release
           20  +)
           21  +
           22  +IF NOT DEFINED PLATFORM (
           23  +  SET PLATFORM=Win32
           24  +)
           25  +
           26  +IF NOT DEFINED PROCESSOR (
           27  +  SET PROCESSOR=x86
           28  +)
           29  +
           30  +IF NOT DEFINED YEAR (
           31  +  SET YEAR=2017
           32  +)
           33  +
           34  +IF NOT DEFINED FRAMEWORK (
           35  +  SET FRAMEWORK=netCore20
           36  +)
           37  +
           38  +:end_of_file

Added Setup/set_x86_NetStandard20.bat.

            1  +@ECHO OFF
            2  +
            3  +::
            4  +:: set_x86_NetStandard20.bat --
            5  +::
            6  +:: Written by Joe Mistachkin.
            7  +:: Released to the public domain, use at your own risk!
            8  +::
            9  +
           10  +SET ISNETFX2=False
           11  +SET VCRUNTIME=2017_VCU3
           12  +SET PLATFORM=Win32
           13  +SET PROCESSOR=x86
           14  +SET YEAR=NetStandard20

Changes to System.Data.SQLite/LINQ/SQLiteFactory_Linq.cs.

    74     74           (_dbProviderServicesType != null && serviceType == _dbProviderServicesType))
    75     75         {
    76     76           return GetSQLiteProviderServicesInstance();
    77     77         }
    78     78         return null;
    79     79       }
    80     80   
           81  +#if !NET_STANDARD_20
    81     82       [ReflectionPermission(SecurityAction.Assert, MemberAccess = true)]
           83  +#endif
    82     84       private object GetSQLiteProviderServicesInstance()
    83     85       {
    84     86           if (_sqliteServices == null)
    85     87           {
    86     88               string typeName = UnsafeNativeMethods.GetSettingValue(
    87     89                   "TypeName_SQLiteProviderServices", null);
    88     90   

Changes to System.Data.SQLite/SQLiteDefineConstants.cs.

   139    139   #if NET_471
   140    140               "NET_471",
   141    141   #endif
   142    142   
   143    143   #if NET_COMPACT_20
   144    144               "NET_COMPACT_20",
   145    145   #endif
          146  +
          147  +#if NET_STANDARD_20
          148  +            "NET_STANDARD_20",
          149  +#endif
   146    150   
   147    151   #if PLATFORM_COMPACTFRAMEWORK
   148    152               "PLATFORM_COMPACTFRAMEWORK",
   149    153   #endif
   150    154   
   151    155   #if PRELOAD_NATIVE_LIBRARY
   152    156               "PRELOAD_NATIVE_LIBRARY",

Changes to System.Data.SQLite/SQLiteFunction.cs.

   640    640           }
   641    641       }
   642    642   
   643    643       /// <summary>
   644    644       /// Using reflection, enumerate all assemblies in the current appdomain looking for classes that
   645    645       /// have a SQLiteFunctionAttribute attribute, and registering them accordingly.
   646    646       /// </summary>
   647         -#if !PLATFORM_COMPACTFRAMEWORK
          647  +#if !PLATFORM_COMPACTFRAMEWORK && !NET_STANDARD_20
   648    648       [Security.Permissions.FileIOPermission(Security.Permissions.SecurityAction.Assert, AllFiles = Security.Permissions.FileIOPermissionAccess.PathDiscovery)]
   649    649   #endif
   650    650       static SQLiteFunction()
   651    651       {
   652    652         _registeredFunctions = new Dictionary<SQLiteFunctionAttribute, object>();
   653    653         try
   654    654         {

Added System.Data.SQLite/System.Data.SQLite.NetStandard20.csproj.

            1  +<?xml version="1.0" encoding="utf-8"?>
            2  +<!--
            3  + *
            4  + * System.Data.SQLite.NetStandard20.csproj -
            5  + *
            6  + * Written by Joe Mistachkin.
            7  + * Released to the public domain, use at your own risk!
            8  + *
            9  +-->
           10  +<Project ToolsVersion="15.0">
           11  +  <!--
           12  +  ******************************************************************************
           13  +  **                     Import .NET Core SDK Properties                      **
           14  +  ******************************************************************************
           15  +  -->
           16  +
           17  +  <!--
           18  +      WARNING: This project cannot use the recommended pattern of having the
           19  +               "Project" element simply include the "Sdk" attribute, due to
           20  +               the "BuildDependsOn" property not being honored, see:
           21  +
           22  +               https://github.com/Microsoft/msbuild/issues/1680
           23  +
           24  +               Instead, the .NET Core SDK properties file is imported here
           25  +               and the corresponding targets file is imported right before
           26  +               resetting the "BuildDependsOn" property to include targets
           27  +               necessary for this project.
           28  +  -->
           29  +  <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
           30  +
           31  +  <!--
           32  +  ******************************************************************************
           33  +  **                       Project Specific Properties                        **
           34  +  ******************************************************************************
           35  +  -->
           36  +
           37  +  <PropertyGroup>
           38  +    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
           39  +    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
           40  +    <ProjectGuid>{AC139952-261A-4463-B6FA-AEBC25283A66}</ProjectGuid>
           41  +    <OutputType>Library</OutputType>
           42  +    <AppDesignerFolder>Properties</AppDesignerFolder>
           43  +    <RootNamespace>System.Data.SQLite</RootNamespace>
           44  +    <AssemblyName>System.Data.SQLite</AssemblyName>
           45  +    <SQLiteNetDir>$(MSBuildProjectDirectory)\..</SQLiteNetDir>
           46  +    <NetFx461>true</NetFx461>
           47  +    <IsDotNetStandard>true</IsDotNetStandard>
           48  +    <ConfigurationYear>NetStandard20</ConfigurationYear>
           49  +    <TargetFramework>netstandard2.0</TargetFramework>
           50  +    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
           51  +    <Deterministic>False</Deterministic>
           52  +    <EnableDefaultItems>false</EnableDefaultItems>
           53  +  </PropertyGroup>
           54  +
           55  +  <!--
           56  +  ******************************************************************************
           57  +  **                     Import Project Default Settings                      **
           58  +  ******************************************************************************
           59  +  -->
           60  +
           61  +  <Import Project="$(SQLiteNetDir)\Targets\SQLite.NET.Platform.Settings.targets" />
           62  +  <Import Project="$(SQLiteNetDir)\Targets\SQLite.NET.Settings.targets" />
           63  +
           64  +  <!--
           65  +  ******************************************************************************
           66  +  **                       Import Project Build Targets                       **
           67  +  ******************************************************************************
           68  +  -->
           69  +
           70  +  <Import Project="$(SQLiteNetDir)\Targets\SQLite.NET.targets" />
           71  +
           72  +  <!--
           73  +  ******************************************************************************
           74  +  **               Convert Project Settings To MSBuild Settings               **
           75  +  ******************************************************************************
           76  +  -->
           77  +
           78  +  <PropertyGroup Condition="'$(BinaryOutputPath)' != ''">
           79  +    <OutputPath>$(BinaryOutputPath)</OutputPath>
           80  +    <DocumentationFile>$(BinaryOutputPath)System.Data.SQLite.xml</DocumentationFile>
           81  +  </PropertyGroup>
           82  +
           83  +  <!--
           84  +  ******************************************************************************
           85  +  **                Project Configuration Specific Properties                 **
           86  +  ******************************************************************************
           87  +  -->
           88  +
           89  +  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
           90  +    <DebugSymbols>true</DebugSymbols>
           91  +    <DebugType>full</DebugType>
           92  +    <Optimize>false</Optimize>
           93  +    <DefineConstants>DEBUG;TRACE</DefineConstants>
           94  +    <ErrorReport>prompt</ErrorReport>
           95  +  </PropertyGroup>
           96  +
           97  +  <!--
           98  +  ******************************************************************************
           99  +  -->
          100  +
          101  +  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
          102  +    <DebugType>pdbonly</DebugType>
          103  +    <Optimize>true</Optimize>
          104  +    <DefineConstants>TRACE</DefineConstants>
          105  +    <ErrorReport>prompt</ErrorReport>
          106  +  </PropertyGroup>
          107  +
          108  +  <!--
          109  +  ******************************************************************************
          110  +  **                        Import Assembly References                        **
          111  +  ******************************************************************************
          112  +  -->
          113  +
          114  +  <Import Project="$(MSBuildProjectDirectory)\Targets\System.Data.SQLite.References.targets" />
          115  +
          116  +  <!--
          117  +  ******************************************************************************
          118  +  **                        Import Assembly References                        **
          119  +  ******************************************************************************
          120  +  -->
          121  +
          122  +  <Import Project="$(MSBuildProjectDirectory)\Targets\System.Data.SQLite.Properties.targets" />
          123  +  <Import Project="$(MSBuildProjectDirectory)\Targets\System.Data.SQLite.Files.targets" />
          124  +
          125  +  <!--
          126  +  ******************************************************************************
          127  +  **                       Import .NET Core SDK Targets                       **
          128  +  ******************************************************************************
          129  +  -->
          130  +
          131  +  <!--
          132  +      WARNING: This project cannot use the recommended pattern of having the
          133  +               "Project" element simply include the "Sdk" attribute, see the
          134  +               comment at the top of this file for more information.
          135  +  -->
          136  +  <Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
          137  +
          138  +  <!--
          139  +  ******************************************************************************
          140  +  **                  Add Targets To BuildDependsOn Property                  **
          141  +  ******************************************************************************
          142  +  -->
          143  +
          144  +  <PropertyGroup>
          145  +    <BuildDependsOn>
          146  +      $(BuildDependsOn);
          147  +      CopyConfigurations;
          148  +    </BuildDependsOn>
          149  +    <CleanDependsOn>
          150  +      $(CleanDependsOn);
          151  +      CleanConfigurations;
          152  +    </CleanDependsOn>
          153  +  </PropertyGroup>
          154  +  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
          155  +       Other similar extension points exist, see Microsoft.Common.targets.
          156  +  <Target Name="BeforeBuild">
          157  +  </Target>
          158  +  <Target Name="AfterBuild">
          159  +  </Target>
          160  +  -->
          161  +</Project>

Changes to System.Data.SQLite/Targets/System.Data.SQLite.Properties.targets.

   142    142               within the project file itself).
   143    143     -->
   144    144     <PropertyGroup Condition="'$(IsCompactFramework)' != 'false' And
   145    145                               '$(TargetFrameworkVersion)' == 'v2.0'">
   146    146       <DefineConstants>$(DefineConstants);NET_COMPACT_20</DefineConstants>
   147    147     </PropertyGroup>
   148    148   
          149  +  <!--
          150  +      NOTE: Only use functionality available in .NET Standard 2.0?  By default,
          151  +            this is disabled.  This must be enabled to successfully build the
          152  +            project using .NET Core 2.0 SDK (if necessary, it will typically
          153  +            be enabled from within the project file itself).
          154  +  -->
          155  +  <PropertyGroup Condition="'$(IsDotNetStandard)' != 'false'">
          156  +    <DefineConstants>$(DefineConstants);NET_STANDARD_20</DefineConstants>
          157  +  </PropertyGroup>
          158  +
   149    159     <!--
   150    160         NOTE: Enable extra internal state checking?
   151    161     -->
   152    162     <PropertyGroup Condition="'$(CheckState)' != 'false'">
   153    163       <DefineConstants>$(DefineConstants);CHECK_STATE</DefineConstants>
   154    164     </PropertyGroup>
   155    165   

Changes to System.Data.SQLite/Targets/System.Data.SQLite.References.targets.

     9      9   <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    10     10     <!--
    11     11     ******************************************************************************
    12     12     **                     Core References (Full Framework)                     **
    13     13     ******************************************************************************
    14     14     -->
    15     15   
    16         -  <ItemGroup Condition="'$(IsCompactFramework)' == 'false'">
           16  +  <ItemGroup Condition="'$(IsCompactFramework)' == 'false' And
           17  +                        '$(IsDotNetStandard)' == 'false'">
    17     18       <Reference Include="System" />
    18     19       <Reference Include="System.Data" />
    19     20       <Reference Include="System.Transactions" />
    20     21       <Reference Include="System.Xml" />
    21     22     </ItemGroup>
    22     23   
    23     24     <!--

Changes to Targets/SQLite.NET.Settings.targets.

   415    415       <UseSqliteStandard Condition="'$(UseSqliteStandard)' == ''">false</UseSqliteStandard>
   416    416   
   417    417       <!--
   418    418           NOTE: Is the project being built to support the .NET Compact Framework?
   419    419       -->
   420    420       <IsCompactFramework Condition="'$(IsCompactFramework)' == ''">false</IsCompactFramework>
   421    421   
          422  +    <!--
          423  +        NOTE: Is the project being built to support .NET Standard 2.0?
          424  +    -->
          425  +    <IsDotNetStandard Condition="'$(IsDotNetStandard)' == ''">false</IsDotNetStandard>
          426  +
   422    427       <!--
   423    428           NOTE: Emit an AssemblyFlags attribute that includes the Retargetable
   424    429                 flag from the AssemblyNameFlags enumeration?
   425    430       -->
   426    431       <IsRetargetable Condition="'$(IsRetargetable)' == ''">false</IsRetargetable>
   427    432   
   428    433       <!--
................................................................................
   858    863   
   859    864     <!--
   860    865     ******************************************************************************
   861    866     **                         Relative Path Properties                         **
   862    867     ******************************************************************************
   863    868     -->
   864    869   
   865         -  <PropertyGroup Condition="'$(SQLiteNetDir)' != ''">
          870  +  <PropertyGroup Condition="'$(SQLiteNetDir)' != '' And '$(IsDotNetStandard)' == 'false'">
   866    871       <!--
   867    872           NOTE: Keep all the intermediate files in one place.  The Visual Studio
   868    873                 IDE seems to have a nasty habit of ignoring this setting.  The
   869    874                 Visual Studio IDE then fails to build the project(s) properly when
   870    875                 the output does not end up where it expects the output to be.  The
   871    876                 value of this property must have a trailing backslash.
   872    877       -->