diff --git a/.vscode/launch.json b/.vscode/launch.json
index 9d6988dd3d..bdda61f946 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -10,7 +10,7 @@
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
- "program": "${workspaceFolder}/src/Tgstation.Server.Host/bin/Debug/netcoreapp2.2/Tgstation.Server.Host.dll",
+ "program": "${workspaceFolder}/src/Tgstation.Server.Host/bin/Debug/netcoreapp3.1/Tgstation.Server.Host.dll",
"args": [],
"cwd": "${workspaceFolder}/src/Tgstation.Server.Host",
// For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
diff --git a/build/test_core.sh b/build/test_core.sh
index d7250796d6..77a9fd9431 100755
--- a/build/test_core.sh
+++ b/build/test_core.sh
@@ -10,27 +10,27 @@ source ~/.nvm/nvm.sh && nvm install 10
cd tests/Tgstation.Server.Api.Tests
dotnet build -c $CONFIG /p:CopyLocalLockFileAssemblies=true
-$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp2.2/Tgstation.Server.Api.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/api.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Api.Tests*]*"
+$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp3.1/Tgstation.Server.Api.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/api.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Api.Tests*]*"
cd ../Tgstation.Server.Client.Tests
dotnet build -c $CONFIG /p:CopyLocalLockFileAssemblies=true
-$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp2.2/Tgstation.Server.Client.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/client.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Client.Tests*]*"
+$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp3.1/Tgstation.Server.Client.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/client.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Client.Tests*]*"
cd ../Tgstation.Server.Host.Tests
dotnet build -c $CONFIG /p:CopyLocalLockFileAssemblies=true
-$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp2.2/Tgstation.Server.Host.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/host.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Host.Tests*]*" --exclude "[Tgstation.Server.Host]Tgstation.Server.Host.Database.Migrations.*"
+$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp3.1/Tgstation.Server.Host.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/host.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Host.Tests*]*" --exclude "[Tgstation.Server.Host]Tgstation.Server.Host.Database.Migrations.*"
cd ../Tgstation.Server.Host.Watchdog.Tests
dotnet build -c $CONFIG /p:CopyLocalLockFileAssemblies=true
-$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp2.2/Tgstation.Server.Host.Watchdog.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/watchdog.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Host.Watchdog.Tests*]*"
+$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp3.1/Tgstation.Server.Host.Watchdog.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/watchdog.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Host.Watchdog.Tests*]*"
cd ../Tgstation.Server.Host.Console.Tests
dotnet build -c $CONFIG /p:CopyLocalLockFileAssemblies=true
-$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp2.2/Tgstation.Server.Host.Console.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/console.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Host.Console.Tests*]*"
+$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp3.1/Tgstation.Server.Host.Console.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/console.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Host.Console.Tests*]*"
cd ../Tgstation.Server.Tests
export TGS4_TEST_DATABASE_TYPE=MySql
@@ -39,13 +39,13 @@ export TGS4_TEST_CONNECTION_STRING="server=127.0.0.1;uid=root;pwd=;database=tgs_
#token set in CI settings
dotnet build -c $CONFIG /p:CopyLocalLockFileAssemblies=true
-$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp2.2/Tgstation.Server.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/servermy.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Tests*]*" --exclude "[Tgstation.Server.Host]Tgstation.Server.Host.Database.Migrations.*"
+$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp3.1/Tgstation.Server.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/servermy.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Tests*]*" --exclude "[Tgstation.Server.Host]Tgstation.Server.Host.Database.Migrations.*"
#Run again for Sqlite
export TGS4_TEST_DATABASE_TYPE=Sqlite
export TGS4_TEST_CONNECTION_STRING="Data Source=TravisTestDB.sqlite3;Mode=ReadWriteCreate"
#Disabled due to upstream issues
-#$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp2.2/Tgstation.Server.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/serversl.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Tests*]*" --exclude "[Tgstation.Server.Host]Tgstation.Server.Host.Database.Migrations.*"
+#$HOME/.dotnet/tools/coverlet bin/$CONFIG/netcoreapp3.1/Tgstation.Server.Tests.dll --target "dotnet" --targetargs "test -c $CONFIG --no-build" --format opencover --output "../../TestResults/serversl.xml" --include "[Tgstation.Server*]*" --exclude "[Tgstation.Server.Tests*]*" --exclude "[Tgstation.Server.Host]Tgstation.Server.Host.Database.Migrations.*"
cd ../../TestResults
diff --git a/src/Tgstation.Server.Api/Tgstation.Server.Api.csproj b/src/Tgstation.Server.Api/Tgstation.Server.Api.csproj
index 3b503feefc..a31e81093e 100644
--- a/src/Tgstation.Server.Api/Tgstation.Server.Api.csproj
+++ b/src/Tgstation.Server.Api/Tgstation.Server.Api.csproj
@@ -26,13 +26,13 @@
true
- bin\Release\netstandard2.0\Tgstation.Server.Api.xml
+ bin\Release\netstandard2.1\Tgstation.Server.Api.xml
1701;1702;CA1028
1701;1702;CA1028
- bin\Debug\netstandard2.0\Tgstation.Server.Api.xml
+ bin\Debug\netstandard2.1\Tgstation.Server.Api.xml
diff --git a/src/Tgstation.Server.Client/Tgstation.Server.Client.csproj b/src/Tgstation.Server.Client/Tgstation.Server.Client.csproj
index 1a2c2fc98e..db8b5469ee 100644
--- a/src/Tgstation.Server.Client/Tgstation.Server.Client.csproj
+++ b/src/Tgstation.Server.Client/Tgstation.Server.Client.csproj
@@ -28,13 +28,13 @@
true
- bin\Release\netstandard2.0\Tgstation.Server.Client.xml
+ bin\Release\netstandard2.1\Tgstation.Server.Client.xml
1701;1702
1701;1702
- bin\Debug\netstandard2.0\Tgstation.Server.Client.xml
+ bin\Debug\netstandard2.1\Tgstation.Server.Client.xml
diff --git a/src/Tgstation.Server.Host.Console/Properties/launchSettings.json b/src/Tgstation.Server.Host.Console/Properties/launchSettings.json
index 5b8773536a..d8bde381e4 100644
--- a/src/Tgstation.Server.Host.Console/Properties/launchSettings.json
+++ b/src/Tgstation.Server.Host.Console/Properties/launchSettings.json
@@ -3,7 +3,7 @@
"Tgstation.Server.Host.Console": {
"commandName": "Project",
"commandLineArgs": "--attach-host-debugger",
- "workingDirectory": "bin\\Debug\\netcoreapp2.2",
+ "workingDirectory": "bin\\Debug\\netcoreapp3.1",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
diff --git a/src/Tgstation.Server.Host.Console/Tgstation.Server.Host.Console.csproj b/src/Tgstation.Server.Host.Console/Tgstation.Server.Host.Console.csproj
index 2ede594b77..c95ec96547 100644
--- a/src/Tgstation.Server.Host.Console/Tgstation.Server.Host.Console.csproj
+++ b/src/Tgstation.Server.Host.Console/Tgstation.Server.Host.Console.csproj
@@ -14,12 +14,12 @@
true
- bin\Release\netcoreapp2.2\Tgstation.Server.Host.Console.xml
+ bin\Release\netcoreapp3.1\Tgstation.Server.Host.Console.xml
1701;1702;SA1652
- bin\Debug\netcoreapp2.2\Tgstation.Server.Host.Console.xml
+ bin\Debug\netcoreapp3.1\Tgstation.Server.Host.Console.xml
diff --git a/src/Tgstation.Server.Host.Watchdog/Watchdog.cs b/src/Tgstation.Server.Host.Watchdog/Watchdog.cs
index 98393e0a44..739fa4c73e 100644
--- a/src/Tgstation.Server.Host.Watchdog/Watchdog.cs
+++ b/src/Tgstation.Server.Host.Watchdog/Watchdog.cs
@@ -87,7 +87,7 @@ namespace Tgstation.Server.Host.Watchdog
Directory.Delete(assemblyStoragePath, true);
Directory.CreateDirectory(defaultAssemblyPath);
- var sourcePath = "../../../../Tgstation.Server.Host/bin/Debug/netcoreapp2.2";
+ var sourcePath = "../../../../Tgstation.Server.Host/bin/Debug/netcoreapp3.1";
foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
Directory.CreateDirectory(dirPath.Replace(sourcePath, defaultAssemblyPath));