Closed dsyme closed 1 year ago
@baronfel From reading these docs it looks like we may need to add ResolveFrameworkReferencesDesignTime
to this list???
I'd imagine this means Ionide is resolving to default framework references when doing its analysis??
It seems to work in 6.0, this seems like a problem with 7.0 and different Microsoft.Build
related stuff.
It seems to work in 6.0
Could you send me an example? After adding a global.json for 6.0.400 I see this:
C:\misc\t>dotnet --version
6.0.400
C:\misc\t>dotnet "c:\Program Files\dotnet\sdk\6.0.400\FSharp\fsi.dll" c:\github\dsyme\fsharp\tests\scripts\crackProject.fsx t.fsproj
Cracking project options....
ReferencedProjects:
PackageReferences:
C:\Users\donsy\.nuget\packages\fsharp.core\7.0.0-beta.22427.1\lib\netstandard2.1\FSharp.Core.dll
C:\Users\donsy\.nuget\packages\newtonsoft.json\13.0.1\lib\netstandard2.0\Newtonsoft.Json.dll
OtherOptions:
-o:C:\misc\t\obj\Debug\net7.0\t.dll
-g
--debug:portable
--noframework
--define:TRACE
--define:DEBUG
--define:NET
--define:NET7_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\donsy\.nuget\packages\fsharp.core\7.0.0-beta.22427.1\lib\netstandard2.1\FSharp.Core.dll
-r:C:\Users\donsy\.nuget\packages\newtonsoft.json\13.0.1\lib\netstandard2.0\Newtonsoft.Json.dll
--target:exe
--warn:3
--warnaserror:3239
--fullpaths
--flaterrors
--highentropyva+
--targetprofile:netcore
--nocopyfsharpcore
--deterministic+
--simpleresolution
Same results for 6.0.302
I don't have any of the 7.0 installed. I've seen this kind of weird behavior when a new SDK on a different major version comes out (similar to when fsi wasn't working with different beta sdks if you recall that.)
dotnet --info
.NET SDK (reflecting any global.json):
Version: 6.0.401
Commit: 0906eae6f8
Runtime Environment:
OS Name: Windows
OS Version: 10.0.22000
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\6.0.401\
global.json file:
C:\Users\jimmy\Repositories\public\TheAngryByrd\dotnet-proj-info\global.json
Host:
Version: 6.0.9
Architecture: x64
Commit: 163a63591c
.NET SDKs installed:
5.0.404 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 6.0.8 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 6.0.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Download .NET: https://aka.ms/dotnet-download
Learn about .NET Runtimes and SDKs:
https://aka.ms/dotnet/runtimes-sdk-info
ReferencedProjects:
PackageReferences:
C:\Users\jimmy\.nuget\packages\fsharp.core\6.0.6\lib\netstandard2.1\FSharp.Core.dll
C:\Users\jimmy\.nuget\packages\newtonsoft.json\13.0.1\lib\netstandard2.0\Newtonsoft.Json.dll
OtherOptions:
-o:C:\Users\jimmy\Repositories\public\TheAngryByrd\dotnet-proj-info\playgroundtest\obj\Debug\net6.0\t.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\jimmy\.nuget\packages\fsharp.core\6.0.6\lib\netstandard2.1\FSharp.Core.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\Microsoft.CSharp.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\Microsoft.VisualBasic.Core.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\Microsoft.VisualBasic.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\Microsoft.Win32.Primitives.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\Microsoft.Win32.Registry.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\mscorlib.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\netstandard.dll
-r:C:\Users\jimmy\.nuget\packages\newtonsoft.json\13.0.1\lib\netstandard2.0\Newtonsoft.Json.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.AppContext.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Buffers.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Collections.Concurrent.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Collections.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Collections.Immutable.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Collections.NonGeneric.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Collections.Specialized.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ComponentModel.Annotations.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ComponentModel.DataAnnotations.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ComponentModel.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ComponentModel.EventBasedAsync.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ComponentModel.Primitives.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ComponentModel.TypeConverter.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Configuration.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Console.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Core.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Data.Common.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Data.DataSetExtensions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Data.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.Contracts.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.Debug.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.DiagnosticSource.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.FileVersionInfo.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.Process.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.StackTrace.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.TextWriterTraceListener.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.Tools.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.TraceSource.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Diagnostics.Tracing.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Drawing.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Drawing.Primitives.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Dynamic.Runtime.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Formats.Asn1.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Globalization.Calendars.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Globalization.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Globalization.Extensions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.Compression.Brotli.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.Compression.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.Compression.FileSystem.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.Compression.ZipFile.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.FileSystem.AccessControl.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.FileSystem.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.FileSystem.DriveInfo.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.FileSystem.Primitives.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.FileSystem.Watcher.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.IsolatedStorage.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.MemoryMappedFiles.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.Pipes.AccessControl.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.Pipes.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.IO.UnmanagedMemoryStream.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Linq.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Linq.Expressions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Linq.Parallel.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Linq.Queryable.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Memory.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.Http.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.Http.Json.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.HttpListener.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.Mail.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.NameResolution.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.NetworkInformation.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.Ping.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.Primitives.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.Requests.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.Security.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.ServicePoint.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.Sockets.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.WebClient.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.WebHeaderCollection.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.WebProxy.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.WebSockets.Client.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Net.WebSockets.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Numerics.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Numerics.Vectors.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ObjectModel.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.DispatchProxy.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.Emit.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.Emit.ILGeneration.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.Emit.Lightweight.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.Extensions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.Metadata.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.Primitives.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Reflection.TypeExtensions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Resources.Reader.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Resources.ResourceManager.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Resources.Writer.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.CompilerServices.Unsafe.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.CompilerServices.VisualC.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Extensions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Handles.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.InteropServices.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.InteropServices.RuntimeInformation.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Intrinsics.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Loader.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Numerics.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Serialization.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Serialization.Formatters.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Serialization.Json.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Serialization.Primitives.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Runtime.Serialization.Xml.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.AccessControl.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Claims.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Cryptography.Algorithms.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Cryptography.Cng.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Cryptography.Csp.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Cryptography.Encoding.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Cryptography.OpenSsl.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Cryptography.Primitives.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Cryptography.X509Certificates.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Principal.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.Principal.Windows.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Security.SecureString.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ServiceModel.Web.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ServiceProcess.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Text.Encoding.CodePages.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Text.Encoding.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Text.Encoding.Extensions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Text.Encodings.Web.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Text.Json.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Text.RegularExpressions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.Channels.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.Overlapped.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.Tasks.Dataflow.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.Tasks.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.Tasks.Extensions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.Tasks.Parallel.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.Thread.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.ThreadPool.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Threading.Timer.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Transactions.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Transactions.Local.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.ValueTuple.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Web.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Web.HttpUtility.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Windows.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.Linq.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.ReaderWriter.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.Serialization.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.XDocument.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.XmlDocument.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.XmlSerializer.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.XPath.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\System.Xml.XPath.XDocument.dll
-r:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.9\ref\net6.0\WindowsBase.dll
--target:exe
--warn:3
--warnaserror:3239
--fullpaths
--flaterrors
--highentropyva+
--targetprofile:netcore
--nocopyfsharpcore
--deterministic+
--simpleresolution
Thanks, how did you execute the code, via 'fsi' or a new project? Maybe my use of fsi is causing drama.
I did it via CLI and interactively, same results.
dotnet fsi playground.fsx -- "C:\Users\jimmy\Repositories\public\TheAngryByrd\dotnet-proj-info\playgroundtest\t.fsproj"
The curse of this entire project in a nutshell :)
does this mean I have to uninstall vs2022 preview to get my neovim working??
We don't know what it means as of yet. Still in the hypothesis-generation and testing phase IMO.
After adding net7.0 to the tfm for this project, I'm getting this error when running the tests for net 6.0
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
File name: 'System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at Ionide.ProjInfo.WorkspaceLoaderViaProjectGraph.Ionide.ProjInfo.IWorkspaceLoader.LoadProjects(FSharpList`1 projects, FSharpList`1 customProperties, BinaryLogGeneration binaryLogs)
at Tests.testSample3$cont@295(ToolsPath toolsPath, FSharpFunc`2 workspaceFactory, FSharpList`1 expected, Logger logger, FileUtils fs, String projPath, String projDir, String l2Dir, String l2, String l1Dir, String l1, Unit unitVar)
The toolpath I get for 6.0 and 7.0 is both:
toolsPath : ToolsPath "C:\Program Files\dotnet\sdk\7.0.100-rc.2.22477.23\MSBuild.dll"
Looking at older issues, i've come across https://github.com/dotnet/msbuild/issues/5600 which feels oddly familiar to the problems that we're running into.
I did end up building ProjInfo with FSAC. I got some "interesting" findings
no global.json, FSAC net7.0 -> Errors: [|"internal error: One or more errors occurred. (Assembly: The system type 'System.Array' was required but no referenced system DLL contained this type, full path: System.Array)"|]
global.json with 6.x, FSAC net7.0 -> no errors, but no type checking
no global.json, FSAC net6.0 -> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. File name: 'System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
global.json with 6.x, FSAC net6.0 -> no errors, but no type checking
Seems this may be related to a change in FSharp.Core. I posted an issue https://github.com/dotnet/fsharp/issues/14250 for it. I'm unsure if we have to wait for an upstream fix or we there's anything we can do about it in the meantime.
Well I just ended up following a thread https://github.com/dotnet/roslyn/pull/19146#discussion_r114613742 that talks about how to make sure that ReferencePathWithRefAssemblies
is not empty. Adding FindReferenceAssembliesForReferences
to ProjInfo seems to work.
I'm gonna try to see how paired down a PR I can make for this.
Such detective work, amazing!
Resolving this will also allow us to get fsdocs support for F# 7 ready
@TheAngryByrd you're talking about adding that target to the set of design time targets we evaluate, right?
If so, I think this change should still (eventually) be made upstream as well - using 'normal' design time targets should be all that's required to invoke this target along the way.
Ok, so thinking CoreCompileDependsOn
should have FindReferenceAssembliesForReferences
?
I'm not 100% sure, but we should be able to mimic the Roslyn Target dependencies here as much as possible when it comes to ref assemblies - I think doing so will help F# be similarly supported in all tooling that expects Roslyn-like behavior.
For some reason I thought the results returned by
ProjectLoader.getProjectInfo
would include all the-r
references for all the .NET DLLs, e.g. in theOtherOptions
field. However I can't find these anywhere, and I don't know whyFor example consider this script
crackProject.fsx
:t.fsproj
:Results:
There are no
-r:
references to reference assemblies etc.@baronfel Do you know if this should be working? Is it the case that we're not actually evaluating the full set of referenced assemblies of something?