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 @@
-
-