diff --git a/.idea/.idea.osu/.idea/runConfigurations/VisualTests__netcoreapp2_0_.xml b/.idea/.idea.osu/.idea/runConfigurations/VisualTests__netcoreapp2_1_.xml
similarity index 83%
rename from .idea/.idea.osu/.idea/runConfigurations/VisualTests__netcoreapp2_0_.xml
rename to .idea/.idea.osu/.idea/runConfigurations/VisualTests__netcoreapp2_1_.xml
index 08b4e38667..2d3a848922 100644
--- a/.idea/.idea.osu/.idea/runConfigurations/VisualTests__netcoreapp2_0_.xml
+++ b/.idea/.idea.osu/.idea/runConfigurations/VisualTests__netcoreapp2_1_.xml
@@ -1,6 +1,6 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="VisualTests (netcoreapp2.0)" type="DotNetProject" factoryName=".NET Project">
-    <option name="EXE_PATH" value="$PROJECT_DIR$/osu.Game.Tests/bin/Debug/netcoreapp2.0/osu.Game.Tests.dll" />
+  <configuration default="false" name="VisualTests (netcoreapp2.1)" type="DotNetProject" factoryName=".NET Project">
+    <option name="EXE_PATH" value="$PROJECT_DIR$/osu.Game.Tests/bin/Debug/netcoreapp2.1/osu.Game.Tests.dll" />
     <option name="PROGRAM_PARAMETERS" value="" />
     <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/osu.Game.Tests" />
     <option name="PASS_PARENT_ENVS" value="1" />
@@ -12,7 +12,7 @@
     <option name="PROJECT_ARGUMENTS_TRACKING" value="1" />
     <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" />
     <option name="PROJECT_KIND" value="DotNetCore" />
-    <option name="PROJECT_TFM" value=".NETCoreApp,Version=v2.0" />
+    <option name="PROJECT_TFM" value=".NETCoreApp,Version=v2.1" />
     <method />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.idea/.idea.osu/.idea/runConfigurations/osu___netcoreapp2_0_.xml b/.idea/.idea.osu/.idea/runConfigurations/osu___netcoreapp2_1_.xml
similarity index 83%
rename from .idea/.idea.osu/.idea/runConfigurations/osu___netcoreapp2_0_.xml
rename to .idea/.idea.osu/.idea/runConfigurations/osu___netcoreapp2_1_.xml
index 2f5c137631..36efe211c6 100644
--- a/.idea/.idea.osu/.idea/runConfigurations/osu___netcoreapp2_0_.xml
+++ b/.idea/.idea.osu/.idea/runConfigurations/osu___netcoreapp2_1_.xml
@@ -1,6 +1,6 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="osu! (netcoreapp2.0)" type="DotNetProject" factoryName=".NET Project">
-    <option name="EXE_PATH" value="$PROJECT_DIR$/osu.Desktop/bin/Debug/netcoreapp2.0/osu!.dll" />
+  <configuration default="false" name="osu! (netcoreapp2.1)" type="DotNetProject" factoryName=".NET Project">
+    <option name="EXE_PATH" value="$PROJECT_DIR$/osu.Desktop/bin/Debug/netcoreapp2.1/osu!.dll" />
     <option name="PROGRAM_PARAMETERS" value="" />
     <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/osu.Desktop" />
     <option name="PASS_PARENT_ENVS" value="1" />
@@ -12,7 +12,7 @@
     <option name="PROJECT_ARGUMENTS_TRACKING" value="1" />
     <option name="PROJECT_WORKING_DIRECTORY_TRACKING" value="1" />
     <option name="PROJECT_KIND" value="DotNetCore" />
-    <option name="PROJECT_TFM" value=".NETCoreApp,Version=v2.0" />
+    <option name="PROJECT_TFM" value=".NETCoreApp,Version=v2.1" />
     <method />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 32c82685c0..b9bb75d5bb 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -58,12 +58,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Debug, netcoreapp2.0)",
+            "name": "VisualTests (Debug, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/osu.Game.Tests/bin/Debug/netcoreapp2.0/osu.Game.Tests.dll"
+                "${workspaceRoot}/osu.Game.Tests/bin/Debug/netcoreapp2.1/osu.Game.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build tests (Debug, dotnet)",
@@ -71,12 +71,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Release, netcoreapp2.0)",
+            "name": "VisualTests (Release, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/osu.Game.Tests/bin/Release/netcoreapp2.0/osu.Game.Tests.dll"
+                "${workspaceRoot}/osu.Game.Tests/bin/Release/netcoreapp2.1/osu.Game.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build tests (Release, dotnet)",
@@ -84,12 +84,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "osu! (Debug, netcoreapp2.0)",
+            "name": "osu! (Debug, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/osu.Desktop/bin/Debug/netcoreapp2.0/osu!.dll",
+                "${workspaceRoot}/osu.Desktop/bin/Debug/netcoreapp2.1/osu!.dll",
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build osu! (Debug, dotnet)",
@@ -97,12 +97,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "osu! (Release, netcoreapp2.0)",
+            "name": "osu! (Release, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/osu.Desktop/bin/Release/netcoreapp2.0/osu!.dll",
+                "${workspaceRoot}/osu.Desktop/bin/Release/netcoreapp2.1/osu!.dll",
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build osu! (Release, dotnet)",
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 0908ff6108..bebad750ca 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -38,7 +38,7 @@
                 "build",
                 "--no-restore",
                 "osu.Desktop",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:GenerateFullPaths=true",
                 "/m",
                 "/verbosity:m"
@@ -54,7 +54,7 @@
                 "build",
                 "--no-restore",
                 "osu.Desktop",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:Configuration=Release",
                 "/p:GenerateFullPaths=true",
                 "/m",
@@ -71,7 +71,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Tests",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:GenerateFullPaths=true",
                 "/m",
                 "/verbosity:m"
@@ -87,7 +87,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Tests",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:Configuration=Release",
                 "/p:GenerateFullPaths=true",
                 "/m",
@@ -106,7 +106,7 @@
             "problemMatcher": []
         },
         {
-            "label": "Restore (netcoreapp2.0)",
+            "label": "Restore (netcoreapp2.1)",
             "type": "shell",
             "command": "dotnet",
             "args": [
diff --git a/osu-framework b/osu-framework
index 804a4b81b8..39aae99f5c 160000
--- a/osu-framework
+++ b/osu-framework
@@ -1 +1 @@
-Subproject commit 804a4b81b89cb4569af5221e6fa2296d559c28fb
+Subproject commit 39aae99f5c21ac9c9f8003cb4dedea345c38c78c
diff --git a/osu.Desktop/osu.Desktop.csproj b/osu.Desktop/osu.Desktop.csproj
index af027da2fc..6b464ae4fe 100644
--- a/osu.Desktop/osu.Desktop.csproj
+++ b/osu.Desktop/osu.Desktop.csproj
@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk">
   <Import Project="..\osu.Game.props" />
   <PropertyGroup Label="Project">
-    <TargetFrameworks>net471;netcoreapp2.0</TargetFrameworks>
+    <TargetFrameworks>net471;netcoreapp2.1</TargetFrameworks>
     <OutputType>WinExe</OutputType>
     <PlatformTarget>AnyCPU</PlatformTarget>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
diff --git a/osu.Game.Rulesets.Catch.Tests/.vscode/launch.json b/osu.Game.Rulesets.Catch.Tests/.vscode/launch.json
index eb80f4474c..c5005adfa5 100644
--- a/osu.Game.Rulesets.Catch.Tests/.vscode/launch.json
+++ b/osu.Game.Rulesets.Catch.Tests/.vscode/launch.json
@@ -30,12 +30,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Debug, netcoreapp2.0)",
+            "name": "VisualTests (Debug, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/bin/Debug/netcoreapp2.0/osu.Game.Rulesets.Catch.Tests.dll"
+                "${workspaceRoot}/bin/Debug/netcoreapp2.1/osu.Game.Rulesets.Catch.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build (Debug, dotnet)",
@@ -43,12 +43,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Release, netcoreapp2.0)",
+            "name": "VisualTests (Release, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/bin/Debug/netcoreapp2.0/osu.Game.Rulesets.Catch.Tests.dll"
+                "${workspaceRoot}/bin/Debug/netcoreapp2.1/osu.Game.Rulesets.Catch.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build (Release, dotnet)",
diff --git a/osu.Game.Rulesets.Catch.Tests/.vscode/tasks.json b/osu.Game.Rulesets.Catch.Tests/.vscode/tasks.json
index 41ae88f425..6c6d562512 100644
--- a/osu.Game.Rulesets.Catch.Tests/.vscode/tasks.json
+++ b/osu.Game.Rulesets.Catch.Tests/.vscode/tasks.json
@@ -40,7 +40,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Rulesets.Catch.Tests.csproj",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:GenerateFullPaths=true",
                 "/m",
                 "/verbosity:m"
@@ -56,7 +56,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Rulesets.Catch.Tests.csproj",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:Configuration=Release",
                 "/p:GenerateFullPaths=true",
                 "/m",
@@ -75,7 +75,7 @@
             "problemMatcher": []
         },
         {
-            "label": "Restore (netcoreapp2.0)",
+            "label": "Restore (netcoreapp2.1)",
             "type": "shell",
             "command": "dotnet",
             "args": [
diff --git a/osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj b/osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj
index 3797edde61..93fa2c4d67 100644
--- a/osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj
+++ b/osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj
@@ -2,7 +2,7 @@
   <Import Project="..\osu.TestProject.props" />
   <PropertyGroup Label="Project">
     <OutputType>WinExe</OutputType>
-    <TargetFrameworks>netcoreapp2.0;net471</TargetFrameworks>
+    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
   </PropertyGroup>
   <ItemGroup Label="Project References">
     <ProjectReference Include="..\osu.Game.Rulesets.Catch\osu.Game.Rulesets.Catch.csproj" />
diff --git a/osu.Game.Rulesets.Mania.Tests/.vscode/launch.json b/osu.Game.Rulesets.Mania.Tests/.vscode/launch.json
index fceb403f30..637a5de1b5 100644
--- a/osu.Game.Rulesets.Mania.Tests/.vscode/launch.json
+++ b/osu.Game.Rulesets.Mania.Tests/.vscode/launch.json
@@ -30,12 +30,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Debug, netcoreapp2.0)",
+            "name": "VisualTests (Debug, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/bin/Debug/netcoreapp2.0/osu.Game.Rulesets.Mania.Tests.dll"
+                "${workspaceRoot}/bin/Debug/netcoreapp2.1/osu.Game.Rulesets.Mania.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build (Debug, dotnet)",
@@ -43,12 +43,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Release, netcoreapp2.0)",
+            "name": "VisualTests (Release, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/bin/Debug/netcoreapp2.0/osu.Game.Rulesets.Mania.Tests.dll"
+                "${workspaceRoot}/bin/Debug/netcoreapp2.1/osu.Game.Rulesets.Mania.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build (Release, dotnet)",
diff --git a/osu.Game.Rulesets.Mania.Tests/.vscode/tasks.json b/osu.Game.Rulesets.Mania.Tests/.vscode/tasks.json
index b04b068b0d..7fc2f7b2ef 100644
--- a/osu.Game.Rulesets.Mania.Tests/.vscode/tasks.json
+++ b/osu.Game.Rulesets.Mania.Tests/.vscode/tasks.json
@@ -40,7 +40,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Rulesets.Mania.Tests.csproj",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:GenerateFullPaths=true",
                 "/m",
                 "/verbosity:m"
@@ -56,7 +56,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Rulesets.Mania.Tests.csproj",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:Configuration=Release",
                 "/p:GenerateFullPaths=true",
                 "/m",
@@ -75,7 +75,7 @@
             "problemMatcher": []
         },
         {
-            "label": "Restore (netcoreapp2.0)",
+            "label": "Restore (netcoreapp2.1)",
             "type": "shell",
             "command": "dotnet",
             "args": [
diff --git a/osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj b/osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj
index e90155568e..77504fdc3c 100644
--- a/osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj
+++ b/osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj
@@ -2,7 +2,7 @@
   <Import Project="..\osu.TestProject.props" />
   <PropertyGroup Label="Project">
     <OutputType>WinExe</OutputType>
-    <TargetFrameworks>netcoreapp2.0;net471</TargetFrameworks>
+    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
   </PropertyGroup>
   <ItemGroup Label="Project References">
     <ProjectReference Include="..\osu.Game.Rulesets.Mania\osu.Game.Rulesets.Mania.csproj" />
diff --git a/osu.Game.Rulesets.Osu.Tests/.vscode/launch.json b/osu.Game.Rulesets.Osu.Tests/.vscode/launch.json
index 714fb6db6f..65c801cef4 100644
--- a/osu.Game.Rulesets.Osu.Tests/.vscode/launch.json
+++ b/osu.Game.Rulesets.Osu.Tests/.vscode/launch.json
@@ -30,12 +30,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Debug, netcoreapp2.0)",
+            "name": "VisualTests (Debug, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/bin/Debug/netcoreapp2.0/osu.Game.Rulesets.Osu.Tests.dll"
+                "${workspaceRoot}/bin/Debug/netcoreapp2.1/osu.Game.Rulesets.Osu.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build (Debug, dotnet)",
@@ -43,12 +43,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Release, netcoreapp2.0)",
+            "name": "VisualTests (Release, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/bin/Debug/netcoreapp2.0/osu.Game.Rulesets.Osu.Tests.dll"
+                "${workspaceRoot}/bin/Debug/netcoreapp2.1/osu.Game.Rulesets.Osu.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build (Release, dotnet)",
diff --git a/osu.Game.Rulesets.Osu.Tests/.vscode/tasks.json b/osu.Game.Rulesets.Osu.Tests/.vscode/tasks.json
index 657fe07e1a..62cf51382f 100644
--- a/osu.Game.Rulesets.Osu.Tests/.vscode/tasks.json
+++ b/osu.Game.Rulesets.Osu.Tests/.vscode/tasks.json
@@ -40,7 +40,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Rulesets.Osu.Tests.csproj",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:GenerateFullPaths=true",
                 "/m",
                 "/verbosity:m"
@@ -56,7 +56,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Rulesets.Osu.Tests.csproj",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:Configuration=Release",
                 "/p:GenerateFullPaths=true",
                 "/m",
@@ -75,7 +75,7 @@
             "problemMatcher": []
         },
         {
-            "label": "Restore (netcoreapp2.0)",
+            "label": "Restore (netcoreapp2.1)",
             "type": "shell",
             "command": "dotnet",
             "args": [
diff --git a/osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj b/osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj
index 1695ceacee..c5d9b26145 100644
--- a/osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj
+++ b/osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj
@@ -2,7 +2,7 @@
   <Import Project="..\osu.TestProject.props" />
   <PropertyGroup Label="Project">
     <OutputType>WinExe</OutputType>
-    <TargetFrameworks>netcoreapp2.0;net471</TargetFrameworks>
+    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
   </PropertyGroup>
   <ItemGroup Label="Project References">
     <ProjectReference Include="..\osu.Game.Rulesets.Osu\osu.Game.Rulesets.Osu.csproj" />
diff --git a/osu.Game.Rulesets.Taiko.Tests/.vscode/launch.json b/osu.Game.Rulesets.Taiko.Tests/.vscode/launch.json
index e1df54e99b..dbb1ab28e2 100644
--- a/osu.Game.Rulesets.Taiko.Tests/.vscode/launch.json
+++ b/osu.Game.Rulesets.Taiko.Tests/.vscode/launch.json
@@ -30,12 +30,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Debug, netcoreapp2.0)",
+            "name": "VisualTests (Debug, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/bin/Debug/netcoreapp2.0/osu.Game.Rulesets.Taiko.Tests.dll"
+                "${workspaceRoot}/bin/Debug/netcoreapp2.1/osu.Game.Rulesets.Taiko.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build (Debug, dotnet)",
@@ -43,12 +43,12 @@
             "console": "internalConsole"
         },
         {
-            "name": "VisualTests (Release, netcoreapp2.0)",
+            "name": "VisualTests (Release, netcoreapp2.1)",
             "type": "coreclr",
             "request": "launch",
             "program": "dotnet",
             "args": [
-                "${workspaceRoot}/bin/Debug/netcoreapp2.0/osu.Game.Rulesets.Taiko.Tests.dll"
+                "${workspaceRoot}/bin/Debug/netcoreapp2.1/osu.Game.Rulesets.Taiko.Tests.dll"
             ],
             "cwd": "${workspaceRoot}",
             "preLaunchTask": "Build (Release, dotnet)",
diff --git a/osu.Game.Rulesets.Taiko.Tests/.vscode/tasks.json b/osu.Game.Rulesets.Taiko.Tests/.vscode/tasks.json
index 8bdbcd8e8e..7c8beed00f 100644
--- a/osu.Game.Rulesets.Taiko.Tests/.vscode/tasks.json
+++ b/osu.Game.Rulesets.Taiko.Tests/.vscode/tasks.json
@@ -40,7 +40,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Rulesets.Taiko.Tests.csproj",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:GenerateFullPaths=true",
                 "/m",
                 "/verbosity:m"
@@ -56,7 +56,7 @@
                 "build",
                 "--no-restore",
                 "osu.Game.Rulesets.Taiko.Tests.csproj",
-                "/p:TargetFramework=netcoreapp2.0",
+                "/p:TargetFramework=netcoreapp2.1",
                 "/p:Configuration=Release",
                 "/p:GenerateFullPaths=true",
                 "/m",
@@ -75,7 +75,7 @@
             "problemMatcher": []
         },
         {
-            "label": "Restore (netcoreapp2.0)",
+            "label": "Restore (netcoreapp2.1)",
             "type": "shell",
             "command": "dotnet",
             "args": [
diff --git a/osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj b/osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj
index 1221584a2b..dea34d25e7 100644
--- a/osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj
+++ b/osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj
@@ -2,7 +2,7 @@
   <Import Project="..\osu.TestProject.props" />
   <PropertyGroup Label="Project">
     <OutputType>WinExe</OutputType>
-    <TargetFrameworks>netcoreapp2.0;net471</TargetFrameworks>
+    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
   </PropertyGroup>
   <ItemGroup Label="Project References">
     <ProjectReference Include="..\osu.Game.Rulesets.Taiko\osu.Game.Rulesets.Taiko.csproj" />
diff --git a/osu.Game.Tests/osu.Game.Tests.csproj b/osu.Game.Tests/osu.Game.Tests.csproj
index 057c2c2de1..532915100b 100644
--- a/osu.Game.Tests/osu.Game.Tests.csproj
+++ b/osu.Game.Tests/osu.Game.Tests.csproj
@@ -2,7 +2,7 @@
   <Import Project="..\osu.TestProject.props" />
   <PropertyGroup Label="Project">
     <OutputType>WinExe</OutputType>
-    <TargetFrameworks>netcoreapp2.0;net471</TargetFrameworks>
+    <TargetFrameworks>netcoreapp2.1;net471</TargetFrameworks>
   </PropertyGroup>
   <ItemGroup Label="Project References">
     <ProjectReference Include="..\osu.Game.Rulesets.Osu\osu.Game.Rulesets.Osu.csproj" />