diff --git a/.azure-pipelines/build.yml b/.azure-pipelines/build.yml
index b49b8ff57..49128f0c2 100644
--- a/.azure-pipelines/build.yml
+++ b/.azure-pipelines/build.yml
@@ -10,19 +10,24 @@ variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
+ runtimeVersion: 'net7.0' # Must match TargetFramework in the csprojs
VANILLA_CACHE: $(Pipeline.Workspace)/vanilla
name: '$(Build.BuildId)+$(Build.BuildIdOffset)'
steps:
-# Pre-build steps.
-- task: NuGetToolInstaller@1
+ # Pre-build steps.
-- task: NuGetCommand@2
+- task: UseDotNet@2
+ displayName: 'Set up .NET'
+ inputs: # packageType defaults to sdk
+ version: 9.0.102 # net9.0 required by MonoMod
+
+- task: DotNetCoreCLI@2
displayName: 'Restore NuGet packages'
- retryCountOnTaskFailure: 2
inputs:
- restoreSolution: '$(solution)'
+ command: 'restore'
+ projects: '$(solution)'
- task: PowerShell@2
displayName: 'Run .azure-pipelines/prebuild.ps1'
@@ -37,14 +42,14 @@ steps:
publishWebProjects: false
zipAfterPublish: false
projects: '*/*.csproj'
- arguments: '--configuration $(buildConfiguration) "/p:Configuration=$(buildConfiguration)"'
+ arguments: '--configuration $(buildConfiguration) "/p:Configuration=$(buildConfiguration)" --no-restore'
# Create and "publish" main artifact.
- task: CopyFiles@2
displayName: 'Pack main artifact: NETCoreifier'
continueOnError: true
inputs:
- sourceFolder: '$(Build.SourcesDirectory)/NETCoreifier/bin/Release/net7.0/publish'
+ sourceFolder: '$(Build.SourcesDirectory)/NETCoreifier/bin/Release/$(runtimeVersion)/publish'
contents: '**'
targetFolder: '$(Build.ArtifactStagingDirectory)/main/'
cleanTargetFolder: true
@@ -54,7 +59,7 @@ steps:
displayName: 'Pack main artifact: Celeste.Mod.mm'
continueOnError: true
inputs:
- sourceFolder: '$(Build.SourcesDirectory)/Celeste.Mod.mm/bin/Release/net7.0/publish'
+ sourceFolder: '$(Build.SourcesDirectory)/Celeste.Mod.mm/bin/Release/$(runtimeVersion)/publish'
contents: '**'
targetFolder: '$(Build.ArtifactStagingDirectory)/main/'
cleanTargetFolder: false
@@ -64,7 +69,7 @@ steps:
displayName: 'Pack main artifact: MiniInstaller'
continueOnError: true
inputs:
- sourceFolder: '$(Build.SourcesDirectory)/MiniInstaller/bin/Release/net7.0/publish'
+ sourceFolder: '$(Build.SourcesDirectory)/MiniInstaller/bin/Release/$(runtimeVersion)/publish'
contents: '**'
targetFolder: '$(Build.ArtifactStagingDirectory)/main/'
cleanTargetFolder: false
diff --git a/Celeste.Mod.mm/Celeste.Mod.mm.csproj b/Celeste.Mod.mm/Celeste.Mod.mm.csproj
index d276820c9..cd72f0e3e 100644
--- a/Celeste.Mod.mm/Celeste.Mod.mm.csproj
+++ b/Celeste.Mod.mm/Celeste.Mod.mm.csproj
@@ -33,7 +33,7 @@
-
+
@@ -41,9 +41,9 @@
-
-
-
+
+
+
diff --git a/NETCoreifier/NETCoreifier.csproj b/NETCoreifier/NETCoreifier.csproj
index 9973b6b10..c3c07c1cc 100644
--- a/NETCoreifier/NETCoreifier.csproj
+++ b/NETCoreifier/NETCoreifier.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/README.md b/README.md
index f625d83f0..47b43b6f8 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@ For information about mod development, check out the [Everest Wiki](https://gith
- macOS: Right-click and browse the Celeste app in Finder, then navigate to `Contents`, then `MacOS`.
- Clone the Everest repo **+ submodules**, either in your IDE or via the CLI.
- Restore Nuget packages either via your IDE or the command line.
-- Everest requires version 7.0.200 or higher of .NET SDK, as well as the .NET 6.0 runtime, for the build process.
+- Everest requires version 9.0.0 or higher of .NET SDK, as well as the .NET 8.0 runtime, for the build process.
### Windows
- Open the .sln in the repo with Visual Studio
diff --git a/external/MonoMod b/external/MonoMod
index 47cbea2ce..be053cf08 160000
--- a/external/MonoMod
+++ b/external/MonoMod
@@ -1 +1 @@
-Subproject commit 47cbea2cee3ff7785d31599e8f9f0fbe38b5fecc
+Subproject commit be053cf084f320a0cd5b516288e1e332b855471d
diff --git a/global.json b/global.json
new file mode 100644
index 000000000..6583494cb
--- /dev/null
+++ b/global.json
@@ -0,0 +1,5 @@
+{
+ "msbuild-sdks": {
+ "Microsoft.Net.Sdk.IL": "7.0.0"
+ }
+}
\ No newline at end of file