fsprojects / SQLProvider

A general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
https://fsprojects.github.io/SQLProvider
Other
564 stars 144 forks source link

SqlDataProvider for SQLite works with dotnet build (.NET6) but not in Visual Studio 2022 #757

Open florenzen opened 2 years ago

florenzen commented 2 years ago

Describe the bug A program with the SqlDataProvider for SQLite can be compiled with dotnet build (.NET SDK 6.0.102) but not in Visual Studio 2022 (17.0.7):

To Reproduce The following program cannot be compiled in Visual STudio 2022:

open FSharp.Data.Sql

[<Literal>]
let private ConnStringDevel =
    "Data Source=" +
    "Foo.sqlite; foreign keys=true"

[<Literal>]
let private ResolutionPath =
    "Stub.System.Data.SQLite.Core.NetStandard"

type private CcMon =
    SqlDataProvider<Common.DatabaseProviderTypes.SQLITE, SQLiteLibrary=Common.SQLiteLibrary.SystemDataSQLite, ConnectionString=ConnStringDevel, ResolutionPath=ResolutionPath>

Referenced NuGet packages:

dotnet list package
   [net6.0]:
   > FSharp.Core             6.0.1         6.0.1
   > SQLProvider             1.2.10        1.2.10

The error in Visual Studio is:

FS3033  The type provider 'FSharp.Data.Sql.SqlTypeProvider' reported an error: Method not found: 'System.String System.Runtime.InteropServices.Marshal.PtrToStringUTF8(IntPtr, Int32)'. TryTypePro  Program.fs

Narrowing the problem I tracked the problem down to fscAnyCpu.exe bundled with Visual Studio. VS calls the compiler with this command line (modified to be pasteable in PowerShell):

& "C:\Program Files\Microsoft Visual Studio\2022\Enterprise/Common7/IDE/CommonExtensions/Microsoft/FSharp/Tools/fscAnyCpu.exe" `
-o:obj\Debug\net6.0\TryTypePro.dll `
-g `
--debug:portable `
--noframework `
--define:TRACE `
--define:DEBUG `
--define:NET `
--define:NET6_0 `
--define:NETCOREAPP `
--define:NET5_0_OR_GREATER `
--define:NET6_0_OR_GREATER `
--define:NETCOREAPP1_0_OR_GREATER `
--define:NETCOREAPP1_1_OR_GREATER `
--define:NETCOREAPP2_0_OR_GREATER `
--define:NETCOREAPP2_1_OR_GREATER `
--define:NETCOREAPP2_2_OR_GREATER `
--define:NETCOREAPP3_0_OR_GREATER `
--define:NETCOREAPP3_1_OR_GREATER `
--optimize- `
--tailcalls- `
-r:"C:\Users\florian.lorenzen\.nuget\packages\fsharp.core\6.0.1\lib\netstandard2.1\FSharp.Core.dll" `
-r:"C:\Users\florian.lorenzen\.nuget\packages\sqlprovider\1.2.10\lib\netstandard2.0\FSharp.Data.SqlProvider.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\Microsoft.CSharp.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\Microsoft.VisualBasic.Core.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\Microsoft.VisualBasic.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\Microsoft.Win32.Primitives.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\Microsoft.Win32.Registry.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\mscorlib.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\netstandard.dll" `
-r:"C:\Users\florian.lorenzen\.nuget\packages\newtonsoft.json\12.0.3\lib\netstandard2.0\Newtonsoft.Json.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.AppContext.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Buffers.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Collections.Concurrent.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Collections.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Collections.Immutable.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Collections.NonGeneric.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Collections.Specialized.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ComponentModel.Annotations.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ComponentModel.DataAnnotations.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ComponentModel.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ComponentModel.EventBasedAsync.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ComponentModel.Primitives.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ComponentModel.TypeConverter.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Configuration.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Console.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Core.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Data.Common.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Data.DataSetExtensions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Data.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.Contracts.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.Debug.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.DiagnosticSource.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.FileVersionInfo.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.Process.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.StackTrace.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.TextWriterTraceListener.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.Tools.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.TraceSource.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Diagnostics.Tracing.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Drawing.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Drawing.Primitives.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Dynamic.Runtime.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Formats.Asn1.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Globalization.Calendars.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Globalization.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Globalization.Extensions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.Compression.Brotli.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.Compression.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.Compression.FileSystem.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.Compression.ZipFile.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.FileSystem.AccessControl.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.FileSystem.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.FileSystem.DriveInfo.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.FileSystem.Primitives.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.FileSystem.Watcher.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.IsolatedStorage.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.MemoryMappedFiles.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.Pipes.AccessControl.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.Pipes.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.IO.UnmanagedMemoryStream.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Linq.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Linq.Expressions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Linq.Parallel.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Linq.Queryable.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Memory.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.Http.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.Http.Json.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.HttpListener.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.Mail.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.NameResolution.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.NetworkInformation.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.Ping.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.Primitives.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.Requests.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.Security.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.ServicePoint.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.Sockets.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.WebClient.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.WebHeaderCollection.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.WebProxy.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.WebSockets.Client.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Net.WebSockets.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Numerics.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Numerics.Vectors.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ObjectModel.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.DispatchProxy.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.Emit.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.Emit.ILGeneration.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.Emit.Lightweight.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.Extensions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.Metadata.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.Primitives.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Reflection.TypeExtensions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Resources.Reader.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Resources.ResourceManager.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Resources.Writer.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.CompilerServices.Unsafe.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.CompilerServices.VisualC.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Extensions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Handles.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.InteropServices.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.InteropServices.RuntimeInformation.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Intrinsics.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Loader.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Numerics.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Serialization.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Serialization.Formatters.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Serialization.Json.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Serialization.Primitives.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Runtime.Serialization.Xml.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.AccessControl.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Claims.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Cryptography.Algorithms.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Cryptography.Cng.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Cryptography.Csp.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Cryptography.Encoding.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Cryptography.OpenSsl.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Cryptography.Primitives.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Cryptography.X509Certificates.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Principal.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.Principal.Windows.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Security.SecureString.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ServiceModel.Web.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ServiceProcess.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Text.Encoding.CodePages.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Text.Encoding.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Text.Encoding.Extensions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Text.Encodings.Web.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Text.Json.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Text.RegularExpressions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.Channels.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.Overlapped.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.Tasks.Dataflow.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.Tasks.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.Tasks.Extensions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.Tasks.Parallel.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.Thread.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.ThreadPool.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Threading.Timer.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Transactions.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Transactions.Local.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.ValueTuple.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Web.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Web.HttpUtility.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Windows.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.Linq.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.ReaderWriter.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.Serialization.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.XDocument.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.XmlDocument.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.XmlSerializer.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.XPath.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\System.Xml.XPath.XDocument.dll" `
-r:"C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.2\ref\net6.0\WindowsBase.dll" `
--target:exe `
--warn:3 `
--warnaserror:3239 `
--fullpaths `
--flaterrors `
--highentropyva+ `
--targetprofile:netcore `
--nocopyfsharpcore `
--deterministic+ `
--simpleresolution `
obj\Debug\net6.0\.NETCoreApp,Version=v6.0.AssemblyAttributes.fs `
obj\Debug\net6.0\TryTypePro.AssemblyInfo.fs `
Program.fs

The command line used by dotnet build is exactly the same apart from the executable called, which is

& "C:\Program Files\dotnet\dotnet.exe" "C:\Program Files\dotnet\sdk\6.0.102\FSharp\fsc.dll" `

If I replace the fscAnyCpu.exe invocation by the dotnet.exe invocation the program is compiled.

I am not sure if I should report this to Visual Studio development, to the F# compiler folks, or here. Please direct me else where if appropriate.

mattnewport commented 2 years ago

I can't get this to work with dotnet build either. I'm able to get it to work if I create a .net Framework project but I'm unable to get it working with a .net 6.0 project in Visual Studio 2022 or standalone using dotnet build. The instructions about copying DLLs around are not very clear in the docs at https://fsprojects.github.io/SQLProvider/core/sqlite.html so I'm not sure if I'm doing something wrong but for .net Framework it just works.

WillEhrendreich commented 1 year ago

@mattnewport and @florenzen With the latest version, in a .net 6 project, I can get dotnet build to work, and it builds in visual studio. Currently design time only works for me in Visual Studio, both Neovim and VSCode give this error:

image

Do you guys get Visual Studio to build now as well, or are you guys still getting no love there?