diff --git a/VisualFSharp.sln b/VisualFSharp.sln index df0b6fe31ce..9577b62cd31 100644 --- a/VisualFSharp.sln +++ b/VisualFSharp.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.1.32113.165 +# Visual Studio Version 18 +VisualStudioVersion = 18.3.11210.18 main MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}" EndProject @@ -9,7 +9,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp.UnitTests Supp EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp", "VisualFSharp", "{4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}" ProjectSection(SolutionItems) = preProject + vsintegration\Directory.Build.props = vsintegration\Directory.Build.props + vsintegration\Directory.Build.targets = vsintegration\Directory.Build.targets vsintegration\readme.md = vsintegration\readme.md + vsintegration\Templates.Directory.Build.props = vsintegration\Templates.Directory.Build.props + vsintegration\Templates.Directory.Build.targets = vsintegration\Templates.Directory.Build.targets EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compiler", "Compiler", "{3881429D-A97A-49EB-B7AE-A82BA5FE9C77}" diff --git a/eng/Version.Details.props b/eng/Version.Details.props index e8fb6ffb8b3..8fa8d8088c3 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,17 +6,17 @@ This file should be imported by eng/Versions.props - 18.1.0-preview-25515-01 - 18.1.0-preview-25515-01 - 18.1.0-preview-25515-01 - 18.1.0-preview-25515-01 + 18.3.0-preview-25577-04 + 18.3.0-preview-25577-04 + 18.3.0-preview-25577-04 + 18.3.0-preview-25577-04 - 9.0.0 - 9.0.0 - 9.0.0 - 9.0.0 - 9.0.0 - 9.0.0 + 9.0.9 + 9.0.9 + 9.0.9 + 9.0.9 + 9.0.9 + 9.0.9 5.0.0-2.25480.7 5.0.0-2.25480.7 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1901bc115cd..9e50901f1b4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -2,45 +2,39 @@ - + https://github.com/dotnet/msbuild - 5e273ccd45ba73d9db9b34fceaf9a110412e64e8 + 6ae7bab3a992bdecaa5ee36a6bd5967281cec2d0 - + https://github.com/dotnet/msbuild - 5e273ccd45ba73d9db9b34fceaf9a110412e64e8 + 6ae7bab3a992bdecaa5ee36a6bd5967281cec2d0 - + https://github.com/dotnet/msbuild - 5e273ccd45ba73d9db9b34fceaf9a110412e64e8 + 6ae7bab3a992bdecaa5ee36a6bd5967281cec2d0 - + https://github.com/dotnet/msbuild - 5e273ccd45ba73d9db9b34fceaf9a110412e64e8 + 6ae7bab3a992bdecaa5ee36a6bd5967281cec2d0 - + https://github.com/dotnet/runtime - 9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3 - + https://github.com/dotnet/runtime - 9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3 - + https://github.com/dotnet/runtime - 9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3 - + https://github.com/dotnet/runtime - 9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3 - + https://github.com/dotnet/runtime - 9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3 - + https://github.com/dotnet/runtime - 9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3 https://github.com/dotnet/roslyn diff --git a/global.json b/global.json index d362a9f064c..cebfb70637d 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.100-rc.2.25502.107", + "version": "10.0.100", "allowPrerelease": true, "paths": [ ".dotnet", @@ -9,14 +9,14 @@ "errorMessage": "The .NET SDK could not be found, please run ./eng/common/dotnet.sh." }, "tools": { - "dotnet": "10.0.100-rc.2.25502.107", + "dotnet": "10.0.100", "vs": { - "version": "17.14", + "version": "18.0", "components": [ "Microsoft.VisualStudio.Component.FSharp" ] }, - "xcopy-msbuild": "17.14.16" + "xcopy-msbuild": "18.0.0" }, "native-tools": { "perl": "5.38.2.2" diff --git a/src/fsc/fsc.targets b/src/fsc/fsc.targets index dc80ab5c4b5..2147cdc0adb 100644 --- a/src/fsc/fsc.targets +++ b/src/fsc/fsc.targets @@ -51,10 +51,8 @@ - - diff --git a/tests/FSharp.Test.Utilities/CompilerAssert.fs b/tests/FSharp.Test.Utilities/CompilerAssert.fs index c9a760a5f93..3f2e0b2cccc 100644 --- a/tests/FSharp.Test.Utilities/CompilerAssert.fs +++ b/tests/FSharp.Test.Utilities/CompilerAssert.fs @@ -31,34 +31,49 @@ open System.Collections.Immutable #if !NETCOREAPP module AssemblyResolver = + open System.Collections.Generic + let probingPaths = [| AppDomain.CurrentDomain.BaseDirectory Path.GetDirectoryName(typeof.Assembly.Location) |] + // Add a static HashSet to track currently resolving assemblies + let private resolvingAssemblies = HashSet() + let addResolver () = AppDomain.CurrentDomain.add_AssemblyResolve(fun h args -> - let found () = - (probingPaths ) |> Seq.tryPick(fun p -> - try - let name = AssemblyName(args.Name) - let codebase = Path.GetFullPath(Path.Combine(p, name.Name)) - if File.Exists(codebase + ".dll") then - name.CodeBase <- codebase + ".dll" - name.CultureInfo <- Unchecked.defaultof - name.Version <- Unchecked.defaultof - Some (name) - elif File.Exists(codebase + ".exe") then - name.CodeBase <- codebase + ".exe" - name.CultureInfo <- Unchecked.defaultof - name.Version <- Unchecked.defaultof - Some (name) - else None - with | _ -> None - ) - match found() with - | None -> Unchecked.defaultof - | Some name -> Assembly.Load(name) ) + let assemblyName = args.Name + // Prevent recursion: skip if already resolving this assembly + if resolvingAssemblies.Contains(assemblyName) then + null + else + try + resolvingAssemblies.Add(assemblyName) |> ignore + let found () = + (probingPaths ) |> Seq.tryPick(fun p -> + try + let name = AssemblyName(args.Name) + let codebase = Path.GetFullPath(Path.Combine(p, name.Name)) + if File.Exists(codebase + ".dll") then + name.CodeBase <- codebase + ".dll" + name.CultureInfo <- Unchecked.defaultof + name.Version <- Unchecked.defaultof + Some (name) + elif File.Exists(codebase + ".exe") then + name.CodeBase <- codebase + ".exe" + name.CultureInfo <- Unchecked.defaultof + name.Version <- Unchecked.defaultof + Some (name) + else None + with | _ -> None + ) + match found() with + | None -> null + | Some name -> Assembly.Load(name) + finally + resolvingAssemblies.Remove(assemblyName) |> ignore + ) #endif type ExecutionOutcome = diff --git a/vsintegration/Directory.Build.targets b/vsintegration/Directory.Build.targets index d82aafceb89..d8cec3affff 100644 --- a/vsintegration/Directory.Build.targets +++ b/vsintegration/Directory.Build.targets @@ -12,9 +12,7 @@ - -