diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 000000000..629a2aa21
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,19 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+// README at: https://github.com/devcontainers/templates/tree/main/src/dotnet
+{
+ "name": "Sonarr",
+ "image": "mcr.microsoft.com/devcontainers/dotnet:1-6.0",
+ "features": {
+ "ghcr.io/devcontainers/features/node:1": {
+ "nodeGypDependencies": true,
+ "version": "16",
+ "nvmVersion": "latest"
+ }
+ },
+ "forwardPorts": [8989],
+ "customizations": {
+ "vscode": {
+ "extensions": ["esbenp.prettier-vscode"]
+ }
+ }
+}
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..f33a02cd1
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,12 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for more information:
+# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+# https://containers.dev/guide/dependabot
+
+version: 2
+updates:
+ - package-ecosystem: "devcontainers"
+ directory: "/"
+ schedule:
+ interval: weekly
diff --git a/.gitignore b/.gitignore
index 14c71ed68..8e7a0f6e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -126,6 +126,7 @@ coverage*.xml
coverage*.json
setup/Output/
*.~is
+.mono
# VS outout folders
bin
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 000000000..7a36fefe1
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,7 @@
+{
+ "recommendations": [
+ "esbenp.prettier-vscode",
+ "ms-dotnettools.csdevkit",
+ "ms-vscode-remote.remote-containers"
+ ]
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 000000000..6ea80f418
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,26 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ // Use IntelliSense to find out which attributes exist for C# debugging
+ // Use hover for the description of the existing attributes
+ // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md
+ "name": "Run Sonarr",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build dotnet",
+ // If you have changed target frameworks, make sure to update the program path.
+ "program": "${workspaceFolder}/_output/net6.0/Sonarr",
+ "args": [],
+ "cwd": "${workspaceFolder}",
+ // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
+ "console": "integratedTerminal",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Attach",
+ "type": "coreclr",
+ "request": "attach"
+ }
+ ]
+}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 000000000..cfd41d42f
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,44 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build dotnet",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "msbuild",
+ "-restore",
+ "${workspaceFolder}/src/Sonarr.sln",
+ "-p:GenerateFullPaths=true",
+ "-p:Configuration=Debug",
+ "-p:Platform=Posix",
+ "-consoleloggerparameters:NoSummary;ForceNoAlign"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/src/Sonarr.sln",
+ "-property:GenerateFullPaths=true",
+ "-consoleloggerparameters:NoSummary;ForceNoAlign"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "watch",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "watch",
+ "run",
+ "--project",
+ "${workspaceFolder}/src/Sonarr.sln"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index aec1e1b3b..1f8c23312 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -147,16 +147,46 @@
+
+
+
+
+ x64
+
+
+
+
+ x86
+
+
+
+
+ arm64
+
+
+
+
+ arm
+
+
+
+
+
+
+
+
+
<_UsingDefaultRuntimeIdentifier>true
- win-x64
+ win-$(Architecture)
<_UsingDefaultRuntimeIdentifier>true
- linux-x64
+ linux-$(Architecture)