diff --git a/global.json b/global.json
index ca151b6f12f..822df2620e9 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "10.0.100-preview.7.25322.101",
+ "version": "10.0.100-preview.5.25277.114",
"allowPrerelease": true,
"paths": [
".dotnet",
@@ -9,7 +9,7 @@
"errorMessage": "The .NET SDK could not be found, please run ./eng/common/dotnet.sh."
},
"tools": {
- "dotnet": "10.0.100-preview.7.25322.101",
+ "dotnet": "10.0.100-preview.5.25277.114",
"vs": {
"version": "17.8",
"components": [
diff --git a/src/FSharp.Build/FSharp.Build.fsproj b/src/FSharp.Build/FSharp.Build.fsproj
index b689f90f1a8..b38e2981b7b 100644
--- a/src/FSharp.Build/FSharp.Build.fsproj
+++ b/src/FSharp.Build/FSharp.Build.fsproj
@@ -46,6 +46,7 @@
+
diff --git a/src/FSharp.Build/GenerateILLinkSubstitutions.fs b/src/FSharp.Build/GenerateILLinkSubstitutions.fs
new file mode 100644
index 00000000000..0478d36201d
--- /dev/null
+++ b/src/FSharp.Build/GenerateILLinkSubstitutions.fs
@@ -0,0 +1,93 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+namespace FSharp.Build
+
+open System
+open System.IO
+open System.Text
+open Microsoft.Build.Framework
+open Microsoft.Build.Utilities
+
+///
+/// MSBuild task that generates ILLink.Substitutions.xml file to remove F# metadata resources during IL linking.
+///
+type GenerateILLinkSubstitutions() =
+ inherit Task()
+
+ ///
+ /// Assembly name to use when generating resource names to be removed.
+ ///
+ []
+ member val AssemblyName = "" with get, set
+
+ ///
+ /// Intermediate output path for storing the generated file.
+ ///
+ []
+ member val IntermediateOutputPath = "" with get, set
+
+ ///
+ /// Generated embedded resource items.
+ ///
+ [