diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index b4863ba4b..acbd7e8e7 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -17,6 +17,7 @@ variables:
macOsTar: 'Radarr.$(buildName).osx.tar.gz'
linuxTar: 'Radarr.$(buildName).linux.tar.gz'
sentryOrg: 'radarr'
+ dotnetVersion: '2.2.401'
trigger:
branches:
@@ -55,14 +56,33 @@ stages:
- checkout: self
submodules: true
fetchDepth: 1
+ - task: DotNetCoreInstaller@0
+ displayName: 'Install .net core 2.2'
+ inputs:
+ version: $(dotnetVersion)
- bash: ./build.sh --only-backend
displayName: Build Radarr Backend
+ - bash: |
+ find ${OUTPUTFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
+ find ${OUTPUTFOLDER} -depth -empty -type d -exec rm -r "{}" \;
+ find ${TESTSFOLDER} -type f ! -path "*/publish/*" -exec rm -rf {} \;
+ find ${TESTSFOLDER} -depth -empty -type d -exec rm -r "{}" \;
+ ls -lR
+ displayName: Clean up intermediate output
- publish: $(outputFolder)
artifact: '$(osName)Backend'
displayName: Publish Backend
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- - publish: $(testsFolder)
- artifact: '$(osName)Tests'
+ - publish: '$(testsFolder)/net462/win-x64/publish'
+ artifact: WindowsTests
+ displayName: Publish Test Package
+ condition: and(succeeded(), eq(variables['osName'], 'Windows'))
+ - publish: '$(testsFolder)/net462/linux-x64/publish'
+ artifact: LinuxTests
+ displayName: Publish Test Package
+ condition: and(succeeded(), eq(variables['osName'], 'Windows'))
+ - publish: '$(testsFolder)/net462/osx-x64/publish'
+ artifact: MacTests
displayName: Publish Test Package
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
@@ -141,7 +161,7 @@ stages:
pool:
vmImage: 'ubuntu-16.04'
steps:
- - bash: sudo apt install dos2unix
+ - bash: sudo apt-get install dos2unix
- checkout: self
fetchDepth: 1
- task: DownloadPipelineArtifact@2
@@ -161,6 +181,7 @@ stages:
- bash: |
chmod a+x $(artifactsFolder)/macos/Radarr/Radarr
chmod a+x $(artifactsFolder)/macos-app/Radarr.app/Contents/MacOS/Radarr
+ find . -name "Radarr.Console" -exec chmod a+x {} \;
displayName: Set Mac executable bits
- task: ArchiveFiles@2
displayName: Create Windows zip
@@ -168,14 +189,14 @@ stages:
archiveFile: '$(Build.ArtifactStagingDirectory)/$(windowsZip)'
archiveType: 'zip'
includeRootFolder: false
- rootFolderOrFile: $(artifactsFolder)/windows
+ rootFolderOrFile: $(artifactsFolder)/windows/net462
- task: ArchiveFiles@2
displayName: Create MacOS app
inputs:
archiveFile: '$(Build.ArtifactStagingDirectory)/$(macOsApp)'
archiveType: 'zip'
includeRootFolder: false
- rootFolderOrFile: $(artifactsFolder)/macos-app
+ rootFolderOrFile: $(artifactsFolder)/macos-app/net462
- task: ArchiveFiles@2
displayName: Create MacOS tar
inputs:
@@ -183,7 +204,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
- rootFolderOrFile: $(artifactsFolder)/macos
+ rootFolderOrFile: $(artifactsFolder)/macos/net462
- task: ArchiveFiles@2
displayName: Create Linux tar
inputs:
@@ -191,7 +212,7 @@ stages:
archiveType: 'tar'
tarCompression: 'gz'
includeRootFolder: false
- rootFolderOrFile: $(artifactsFolder)/linux
+ rootFolderOrFile: $(artifactsFolder)/linux/net462
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'Packages'
displayName: Publish Packages
@@ -235,35 +256,37 @@ stages:
steps:
- checkout: none
+ - task: DotNetCoreInstaller@0
+ displayName: 'Install .net core 2.2'
+ inputs:
+ version: $(dotnetVersion)
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
- artifactName: WindowsTests
+ artifactName: '$(osName)Tests'
targetPath: $(testsFolder)
- bash: |
wget https://mediaarea.net/repo/deb/repo-mediaarea_1.0-9_all.deb
sudo dpkg -i repo-mediaarea_1.0-9_all.deb
sudo apt-get update
sudo apt-get install -y libmediainfo-dev libmediainfo0v5 mediainfo
- displayName: Install mediainfo
+ sudo ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/libsqlite3.so
+ displayName: Install mediainfo and fix sqlite
condition: and(succeeded(), eq(variables['osName'], 'Linux'))
- powershell: Set-Service SCardSvr -StartupType Manual
displayName: Enable Windows Test Service
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
+ - bash: find ${TESTSFOLDER} -name "Radarr.Test.Dummy" -exec chmod a+x {} \;
+ displayName: Make Test Dummy Executable
- task: Bash@3
displayName: Run Tests
env:
- DYLD_FALLBACK_LIBRARY_PATH: $(Build.SourcesDirectory)/_tests
TEST_DIR: $(Build.SourcesDirectory)/_tests
inputs:
targetType: 'filePath'
filePath: '$(testsFolder)/test.sh'
arguments: '$(osName) Unit Test'
- - publish: TestResult.xml
- artifact: 'TestResult'
- displayName: Publish Test Result
- condition: and(succeeded(), eq(variables['osName'], 'Windows'))
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
@@ -305,12 +328,20 @@ stages:
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
displayName: Set Mono Version
condition: and(succeeded(), eq(variables['osName'], 'Mac'))
+ - bash: |
+ sudo ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/libsqlite3.so
+ displayName: Fix sqlite
+ condition: and(succeeded(), eq(variables['osName'], 'Linux'))
+ - task: DotNetCoreInstaller@0
+ displayName: 'Install .net core 2.2'
+ inputs:
+ version: $(dotnetVersion)
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
- artifactName: WindowsTests
+ artifactName: '$(osName)Tests'
targetPath: $(testsFolder)
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifact
@@ -327,6 +358,7 @@ stages:
- bash: |
mkdir -p ./bin/
cp -r -v ${BUILD_ARTIFACTSTAGINGDIRECTORY}/bin/Radarr/. ./bin/
+ ls -lR
displayName: Move Package Contents
- task: Bash@3
displayName: Run Integration Tests
@@ -365,12 +397,20 @@ stages:
vmImage: $(imageName)
steps:
+ - bash: |
+ sudo ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 /usr/lib/x86_64-linux-gnu/libsqlite3.so
+ displayName: Fix sqlite
+ condition: and(succeeded(), eq(variables['osName'], 'Linux'))
+ - task: DotNetCoreInstaller@0
+ displayName: 'Install .net core 2.2'
+ inputs:
+ version: $(dotnetVersion)
- checkout: none
- task: DownloadPipelineArtifact@2
displayName: Download Test Artifact
inputs:
buildType: 'current'
- artifactName: WindowsTests
+ artifactName: '$(osName)Tests'
targetPath: $(testsFolder)
- task: DownloadPipelineArtifact@2
displayName: Download Build Artifact
diff --git a/build.sh b/build.sh
index 3e42a3b75..90dc5c337 100755
--- a/build.sh
+++ b/build.sh
@@ -1,24 +1,13 @@
#! /bin/bash
-msBuildVersion='15.0'
outputFolder='./_output'
-outputFolderLinux='./_output_linux'
-outputFolderMacOS='./_output_macos'
-outputFolderMacOSApp='./_output_macos_app'
testPackageFolder='./_tests/'
sourceFolder='./src'
slnFile=$sourceFolder/Radarr.sln
-updateFolder=$outputFolder/Radarr.Update
-updateFolderMono=$outputFolderLinux/Radarr.Update
#Artifact variables
artifactsFolder="./_artifacts";
-artifactsFolderWindows=$artifactsFolder/windows
-artifactsFolderLinux=$artifactsFolder/linux
-artifactsFolderMacOS=$artifactsFolder/macos
-artifactsFolderMacOSApp=$artifactsFolder/macos-app
nuget='tools/nuget/nuget.exe';
-vswhere='tools/vswhere/vswhere.exe';
CheckExitCode()
{
@@ -53,14 +42,9 @@ UpdateVersionNumber()
CleanFolder()
{
local path=$1
- local keepConfigFiles=$2
find $path -name "*.transform" -exec rm "{}" \;
- if [ $keepConfigFiles != true ] ; then
- find $path -name "*.dll.config" -exec rm "{}" \;
- fi
-
echo "Removing FluentValidation.Resources files"
find $path -name "FluentValidation.resources.dll" -exec rm "{}" \;
find $path -name "App.config" -exec rm "{}" \;
@@ -68,39 +52,10 @@ CleanFolder()
echo "Removing vshost files"
find $path -name "*.vshost.exe" -exec rm "{}" \;
- echo "Removing dylib files"
- find $path -name "*.dylib" -exec rm "{}" \;
-
echo "Removing Empty folders"
find $path -depth -empty -type d -exec rm -r "{}" \;
}
-BuildWithMSBuild()
-{
- installationPath=`$vswhere -latest -products \* -requires Microsoft.Component.MSBuild -property installationPath`
- installationPath=${installationPath/C:\\/\/c\/}
- installationPath=${installationPath//\\/\/}
- msBuild="$installationPath/MSBuild/$msBuildVersion/Bin"
- echo $msBuild
-
- export PATH=$msBuild:$PATH
- CheckExitCode MSBuild.exe $slnFile //p:Configuration=Debug //p:Platform=x86 //t:Clean //m
- CheckExitCode MSBuild.exe $slnFile //p:Configuration=Release //p:Platform=x86 //t:Clean //m
- $nuget locals all -clear
- $nuget restore $slnFile
- CheckExitCode MSBuild.exe $slnFile //p:Configuration=Release //p:Platform=x86 //t:Build //m //p:AllowedReferenceRelatedFileExtensions=.pdb
-}
-
-BuildWithXbuild()
-{
- export MONO_IOMAP=case
- CheckExitCode msbuild /p:Configuration=Debug /t:Clean $slnFile
- CheckExitCode msbuild /p:Configuration=Release /t:Clean $slnFile
- mono $nuget locals all -clear
- mono $nuget restore $slnFile
- CheckExitCode msbuild /p:Configuration=Release /p:Platform=x86 /t:Build /p:AllowedReferenceRelatedFileExtensions=.pdb $slnFile
-}
-
LintUI()
{
ProgressStart 'ESLint'
@@ -119,19 +74,9 @@ Build()
rm -rf $outputFolder
rm -rf $testPackageFolder
- if [ $runtime = "dotnet" ] ; then
- BuildWithMSBuild
- else
- BuildWithXbuild
- fi
-
- CleanFolder $outputFolder false
-
- echo "Removing Mono.Posix.dll"
- rm $outputFolder/Mono.Posix.dll
-
- echo "Adding LICENSE.md"
- cp LICENSE.md $outputFolder
+ CheckExitCode dotnet clean $slnFile -c Debug
+ CheckExitCode dotnet clean $slnFile -c Release
+ CheckExitCode dotnet msbuild -restore src/Radarr.sln -p:Configuration=Release -t:PublishAllRids
ProgressEnd 'Build'
}
@@ -149,89 +94,104 @@ RunGulp()
ProgressEnd 'Running gulp'
}
-PackageMono()
+PackageFiles()
{
- ProgressStart 'Creating Mono Package'
+ local folder="$1"
+ local framework="$2"
+ local runtime="$3"
- rm -rf $outputFolderLinux
+ rm -rf $folder
+ mkdir -p $folder
+ cp -r $outputFolder/$framework/$runtime/publish/* $folder
+ cp -r $outputFolder/Radarr.Update/$framework/$runtime/publish $folder/Radarr.Update
+ cp -r $outputFolder/UI $folder
- echo "Copying Binaries"
- cp -r $outputFolder $outputFolderLinux
+ CleanFolder $folder
+
+ echo "Adding LICENSE"
+ cp LICENSE $folder
+}
+
+PackageLinux()
+{
+ local framework="$1"
+
+ ProgressStart "Creating Linux Package for $framework"
+
+ local folder=$artifactsFolder/linux/$framework/Radarr
+
+ PackageFiles "$folder" $framework $runtime "linux-x64"
echo "Removing Service helpers"
- rm -f $outputFolderLinux/ServiceUninstall.*
- rm -f $outputFolderLinux/ServiceInstall.*
-
- echo "Removing native windows binaries Sqlite, MediaInfo"
- rm -f $outputFolderLinux/sqlite3.*
- rm -f $outputFolderLinux/MediaInfo.*
-
- echo "Adding Radarr.Core.dll.config (for dllmap)"
- cp $sourceFolder/NzbDrone.Core/Radarr.Core.dll.config $outputFolderLinux
-
+ rm -f $folder/ServiceUninstall.*
+ rm -f $folder/ServiceInstall.*
echo "Renaming Radarr.Console.exe to Radarr.exe"
- rm $outputFolderLinux/Radarr.exe*
- for file in $outputFolderLinux/Radarr.Console.exe*; do
+ rm $folder/Radarr.exe*
+ for file in $folder/Radarr.Console.exe*; do
mv "$file" "${file//.Console/}"
done
echo "Removing Radarr.Windows"
- rm $outputFolderLinux/Radarr.Windows.*
+ rm $folder/Radarr.Windows.*
echo "Adding Radarr.Mono to UpdatePackage"
- cp $outputFolderLinux/Radarr.Mono.* $updateFolderMono
+ cp $folder/Radarr.Mono.* $folder/Radarr.Update
- ProgressEnd 'Creating Mono Package'
+ ProgressEnd "Creating Linux Package for $framework"
}
PackageMacOS()
{
- ProgressStart 'Creating MacOS Package'
+ local framework="$1"
+
+ ProgressStart "Creating MacOS Package for $framework"
- rm -rf $outputFolderMacOS
- mkdir $outputFolderMacOS
+ local folder=$artifactsFolder/macos/$framework/Radarr
+
+ PackageFiles "$folder" "$framework" "osx-x64"
echo "Adding Startup script"
- cp ./macOS/Radarr $outputFolderMacOS
- dos2unix $outputFolderMacOS/Radarr
+ cp ./macOS/Radarr $folder
+ dos2unix $folder/Radarr
- echo "Copying Binaries"
- cp -r $outputFolderLinux/* $outputFolderMacOS
+ echo "Removing Service helpers"
+ rm -f $folder/ServiceUninstall.*
+ rm -f $folder/ServiceInstall.*
- echo "Adding sqlite dylibs"
- cp $sourceFolder/Libraries/Sqlite/*.dylib $outputFolderMacOS
+ echo "Renaming Radarr.Console.exe to Radarr.exe"
+ rm $folder/Radarr.exe*
+ for file in $folder/Radarr.Console.exe*; do
+ mv "$file" "${file//.Console/}"
+ done
- echo "Adding MediaInfo dylib"
- cp $sourceFolder/Libraries/MediaInfo/*.dylib $outputFolderMacOS
+ echo "Removing Radarr.Windows"
+ rm $folder/Radarr.Windows.*
+
+ echo "Adding Radarr.Mono to UpdatePackage"
+ cp $folder/Radarr.Mono.* $folder/Radarr.Update
ProgressEnd 'Creating MacOS Package'
}
PackageMacOSApp()
{
- ProgressStart 'Creating macOS App Package'
+ local framework="$1"
+
+ ProgressStart "Creating macOS App Package for $framework"
- rm -rf $outputFolderMacOSApp
- mkdir $outputFolderMacOSApp
- cp -r ./macOS/Radarr.app $outputFolderMacOSApp
- mkdir -p $outputFolderMacOSApp/Radarr.app/Contents/MacOS
+ local folder=$artifactsFolder/macos-app/$framework
- echo "Adding Startup script"
- cp ./macOS/Radarr $outputFolderMacOSApp/Radarr.app/Contents/MacOS
- dos2unix $outputFolderMacOSApp/Radarr.app/Contents/MacOS/Radarr
+ rm -rf $folder
+ mkdir -p $folder
+ cp -r ./macOS/Radarr.app $folder
+ mkdir -p $folder/Radarr.app/Contents/MacOS
echo "Copying Binaries"
- cp -r $outputFolderLinux/* $outputFolderMacOSApp/Radarr.app/Contents/MacOS
-
- echo "Adding sqlite dylibs"
- cp $sourceFolder/Libraries/Sqlite/*.dylib $outputFolderMacOSApp/Radarr.app/Contents/MacOS
-
- echo "Adding MediaInfo dylib"
- cp $sourceFolder/Libraries/MediaInfo/*.dylib $outputFolderMacOSApp/Radarr.app/Contents/MacOS
+ cp -r $artifactsFolder/macos/$framework/Radarr/* $folder/Radarr.app/Contents/MacOS
echo "Removing Update Folder"
- rm -r $outputFolderMacOSApp/Radarr.app/Contents/MacOS/Radarr.Update
+ rm -r $folder/Radarr.app/Contents/MacOS/Radarr.Update
ProgressEnd 'Creating macOS App Package'
}
@@ -240,70 +200,60 @@ PackageTests()
{
ProgressStart 'Creating Test Package'
- if [ $runtime = "dotnet" ] ; then
- $nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder
+ cp ./test.sh $testPackageFolder/net462/win-x64/publish
+ cp ./test.sh $testPackageFolder/net462/linux-x64/publish
+ cp ./test.sh $testPackageFolder/net462/osx-x64/publish
+
+ if [ $os = "windows" ] ; then
+ $nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder/net462/win-x64/publish
+ $nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder/net462/linux-x64/publish
+ $nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder/net462/osx-x64/publish
else
- mono $nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder
+ mono $nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder/net462/win-x64/publish
+ mono $nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder/net462/linux-x64/publish
+ mono $nuget install NUnit.ConsoleRunner -Version 3.10.0 -Output $testPackageFolder/net462/osx-x64/publish
fi
-
- cp ./test.sh $testPackageFolder
-
+
rm -f $testPackageFolder/*.log.config
- CleanFolder $testPackageFolder true
+ # geckodriver.exe isn't copied by dotnet publish
+ curl -Lo gecko.zip "https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-win64.zip"
+ unzip -o gecko.zip
+ cp geckodriver.exe $testPackageFolder/net462/win-x64/publish
- echo "Adding Radarr.Core.dll.config (for dllmap)"
- cp $sourceFolder/NzbDrone.Core/Radarr.Core.dll.config $testPackageFolder
-
- echo "Adding sqlite dylibs"
- cp $sourceFolder/Libraries/Sqlite/*.dylib $testPackageFolder
+ CleanFolder $testPackageFolder
ProgressEnd 'Creating Test Package'
}
-CleanupWindowsPackage()
+PackageWindows()
{
- ProgressStart 'Cleaning Windows Package'
+ local framework="$1"
+
+ ProgressStart "Creating Windows Package for $framework"
+
+ local folder=$artifactsFolder/windows/$framework/Radarr
+
+ PackageFiles "$folder" "net462" "win-x64"
echo "Removing Radarr.Mono"
- rm -f $outputFolder/Radarr.Mono.*
+ rm -f $folder/Radarr.Mono.*
echo "Adding Radarr.Windows to UpdatePackage"
- cp $outputFolder/Radarr.Windows.* $updateFolder
+ cp $folder/Radarr.Windows.* $folder/Radarr.Update
- ProgressEnd 'Cleaning Windows Package'
-}
-
-PackageArtifacts()
-{
- echo "Creating Artifact Directories"
-
- rm -rf $artifactsFolder
- mkdir $artifactsFolder
-
- mkdir $artifactsFolderWindows
- mkdir $artifactsFolderMacOS
- mkdir $artifactsFolderLinux
- mkdir $artifactsFolderWindows/Radarr
- mkdir $artifactsFolderMacOS/Radarr
- mkdir $artifactsFolderLinux/Radarr
- mkdir $artifactsFolderMacOSApp
-
- cp -r $outputFolder/* $artifactsFolderWindows/Radarr
- cp -r $outputFolderMacOSApp/* $artifactsFolderMacOSApp
- cp -r $outputFolderMacOS/* $artifactsFolderMacOS/Radarr
- cp -r $outputFolderLinux/* $artifactsFolderLinux/Radarr
+ ProgressEnd 'Creating Windows Package'
}
# Use mono or .net depending on OS
case "$(uname -s)" in
CYGWIN*|MINGW32*|MINGW64*|MSYS*)
# on windows, use dotnet
- runtime="dotnet"
+ os="windows"
;;
*)
# otherwise use mono
- runtime="mono"
+ os="posix"
;;
esac
@@ -350,9 +300,8 @@ fi
# Only package if we haven't set only-backend or only-frontend
if [ -z "$ONLY_BACKEND" ] && [ -z "$ONLY_FRONTEND" ];
then
- PackageMono
- PackageMacOS
- PackageMacOSApp
- CleanupWindowsPackage
- PackageArtifacts
+ PackageWindows "net462"
+ PackageLinux "net462"
+ PackageMacOS "net462"
+ PackageMacOSApp "net462"
fi
diff --git a/setup/radarr.iss b/setup/radarr.iss
index 652638ac5..f8abfadbf 100644
--- a/setup/radarr.iss
+++ b/setup/radarr.iss
@@ -47,8 +47,8 @@ Name: "startupShortcut"; Description: "Create shortcut in Startup folder (Starts
Name: "none"; Description: "Do not start automatically"; GroupDescription: "Start automatically"; Flags: exclusive unchecked
[Files]
-Source: "..\_output\Radarr.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\_output\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "..\_artifacts\windows\net462\Radarr\Radarr.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "..\_artifacts\windows\net462\Radarr\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 87469695d..7b47abbdd 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -1,6 +1,10 @@
+ AnyCPU
+ true
+ win-x64;osx-x64;linux-x64
+
$(MSBuildThisFileDirectory)..\
@@ -63,6 +67,7 @@
False
+
@@ -71,10 +76,55 @@
-
- false
-
$(MSBuildProjectName.Replace('Radarr','NzbDrone'))
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+ <_UsingDefaultRuntimeIdentifier>true
+ win-x64
+
+
+
+ <_UsingDefaultRuntimeIdentifier>true
+ linux-x64
+
+
+
+ <_UsingDefaultRuntimeIdentifier>true
+ osx-x64
+
+
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
new file mode 100644
index 000000000..85b899ff1
--- /dev/null
+++ b/src/Directory.Build.targets
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/src/Libraries/MediaInfo/MediaInfo.dll b/src/Libraries/MediaInfo/MediaInfo.dll
index e877e7599..4e36dd2f5 100644
Binary files a/src/Libraries/MediaInfo/MediaInfo.dll and b/src/Libraries/MediaInfo/MediaInfo.dll differ
diff --git a/src/Libraries/MediaInfo/libmediainfo.0.dylib b/src/Libraries/MediaInfo/libmediainfo.dylib
similarity index 100%
rename from src/Libraries/MediaInfo/libmediainfo.0.dylib
rename to src/Libraries/MediaInfo/libmediainfo.dylib
diff --git a/src/Marr.Data/Marr.Data.csproj b/src/Marr.Data/Marr.Data.csproj
index a1233e3b0..e53a074e3 100644
--- a/src/Marr.Data/Marr.Data.csproj
+++ b/src/Marr.Data/Marr.Data.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
3.17.0.0
false
diff --git a/src/MonoTorrent/MonoTorrent.csproj b/src/MonoTorrent/MonoTorrent.csproj
index 6efcd7ac9..9c94af15f 100644
--- a/src/MonoTorrent/MonoTorrent.csproj
+++ b/src/MonoTorrent/MonoTorrent.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
9.0.21022
diff --git a/src/NzbDrone.Api.Test/Radarr.Api.Test.csproj b/src/NzbDrone.Api.Test/Radarr.Api.Test.csproj
index c27b3a0fb..1b80ddd61 100644
--- a/src/NzbDrone.Api.Test/Radarr.Api.Test.csproj
+++ b/src/NzbDrone.Api.Test/Radarr.Api.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Api/Radarr.Api.csproj b/src/NzbDrone.Api/Radarr.Api.csproj
index 1b30f0855..2b54823ae 100644
--- a/src/NzbDrone.Api/Radarr.Api.csproj
+++ b/src/NzbDrone.Api/Radarr.Api.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Automation.Test/Radarr.Automation.Test.csproj b/src/NzbDrone.Automation.Test/Radarr.Automation.Test.csproj
index b75dddef3..fb6924b6f 100644
--- a/src/NzbDrone.Automation.Test/Radarr.Automation.Test.csproj
+++ b/src/NzbDrone.Automation.Test/Radarr.Automation.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Common.Test/Radarr.Common.Test.csproj b/src/NzbDrone.Common.Test/Radarr.Common.Test.csproj
index 33335d8ae..b0ce217b9 100644
--- a/src/NzbDrone.Common.Test/Radarr.Common.Test.csproj
+++ b/src/NzbDrone.Common.Test/Radarr.Common.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Common/Radarr.Common.csproj b/src/NzbDrone.Common/Radarr.Common.csproj
index f206c8d45..9094e0a99 100644
--- a/src/NzbDrone.Common/Radarr.Common.csproj
+++ b/src/NzbDrone.Common/Radarr.Common.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Console/Radarr.Console.csproj b/src/NzbDrone.Console/Radarr.Console.csproj
index 7478e5fe0..9bda8b501 100644
--- a/src/NzbDrone.Console/Radarr.Console.csproj
+++ b/src/NzbDrone.Console/Radarr.Console.csproj
@@ -1,13 +1,15 @@
Exe
- net462
- x86
+ net462
..\NzbDrone.Host\Radarr.ico
app.manifest
+
+ Radarr
+
-
\ No newline at end of file
+
diff --git a/src/NzbDrone.Core.Test/Radarr.Core.Test.csproj b/src/NzbDrone.Core.Test/Radarr.Core.Test.csproj
index c537fe15e..c1fd3c78e 100644
--- a/src/NzbDrone.Core.Test/Radarr.Core.Test.csproj
+++ b/src/NzbDrone.Core.Test/Radarr.Core.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
@@ -22,4 +21,24 @@
PreserveNewest
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs
index c41936d61..b9dd48b8f 100644
--- a/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs
+++ b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs
@@ -201,9 +201,7 @@ public string UrlBase
}
}
- // public string UiFolder => GetValue("UiFolder", "UI", false);GetValue("UiFolder", "UI", false);
- public string UiFolder => "UI";
-
+ public string UiFolder => BuildInfo.IsDebug ? Path.Combine("..", "UI") : "UI";
public bool UpdateAutomatically => GetValueBoolean("UpdateAutomatically", false, false);
diff --git a/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs b/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs
index 9343d103e..17474c89b 100644
--- a/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs
+++ b/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoLib.cs
@@ -312,58 +312,58 @@ public int Count_Get(StreamKind streamKind, int streamNumber = -1)
return (int)MediaInfo_Count_Get(_handle, (IntPtr)streamKind, (IntPtr)streamNumber);
}
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_New();
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern void MediaInfo_Delete(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_Open(IntPtr handle, IntPtr fileName);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_Open_Buffer_Init(IntPtr handle, long fileSize, long fileOffset);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_Open_Buffer_Continue(IntPtr handle, byte[] buffer, IntPtr bufferSize);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern long MediaInfo_Open_Buffer_Continue_GoTo_Get(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_Open_Buffer_Finalize(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern void MediaInfo_Close(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_GetI(IntPtr handle, IntPtr streamKind, IntPtr streamNumber, IntPtr parameter, IntPtr infoKind);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_Get(IntPtr handle, IntPtr streamKind, IntPtr streamNumber, IntPtr parameter, IntPtr infoKind, IntPtr searchKind);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_Option(IntPtr handle, IntPtr option, IntPtr value);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_State_Get(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfo_Count_Get(IntPtr handle, IntPtr StreamKind, IntPtr streamNumber);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_New();
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern void MediaInfoA_Delete(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_Open(IntPtr handle, IntPtr fileName);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_Open_Buffer_Init(IntPtr handle, long fileSize, long fileOffset);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_Open_Buffer_Continue(IntPtr handle, byte[] buffer, IntPtr bufferSize);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern long MediaInfoA_Open_Buffer_Continue_GoTo_Get(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_Open_Buffer_Finalize(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern void MediaInfoA_Close(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_GetI(IntPtr handle, IntPtr streamKind, IntPtr streamNumber, IntPtr parameter, IntPtr infoKind);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_Get(IntPtr handle, IntPtr streamKind, IntPtr streamNumber, IntPtr parameter, IntPtr infoKind, IntPtr searchKind);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_Option(IntPtr handle, IntPtr option, IntPtr value);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_State_Get(IntPtr handle);
- [DllImport("MediaInfo.dll")]
+ [DllImport("mediainfo")]
private static extern IntPtr MediaInfoA_Count_Get(IntPtr handle, IntPtr StreamKind, IntPtr streamNumber);
}
}
diff --git a/src/NzbDrone.Core/Radarr.Core.csproj b/src/NzbDrone.Core/Radarr.Core.csproj
index 2dec5e96a..deeb41313 100644
--- a/src/NzbDrone.Core/Radarr.Core.csproj
+++ b/src/NzbDrone.Core/Radarr.Core.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
@@ -40,8 +39,25 @@
PreserveNewest
-
- PreserveNewest
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/NzbDrone.Core/Radarr.Core.dll.config b/src/NzbDrone.Core/Radarr.Core.dll.config
index a139791b4..f40a271ce 100644
--- a/src/NzbDrone.Core/Radarr.Core.dll.config
+++ b/src/NzbDrone.Core/Radarr.Core.dll.config
@@ -1,7 +1,7 @@
-
-
-
-
+
+
+
+
diff --git a/src/NzbDrone.Host.Test/Radarr.Host.Test.csproj b/src/NzbDrone.Host.Test/Radarr.Host.Test.csproj
index f9812a8a0..cad91ff99 100644
--- a/src/NzbDrone.Host.Test/Radarr.Host.Test.csproj
+++ b/src/NzbDrone.Host.Test/Radarr.Host.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Host/Radarr.Host.csproj b/src/NzbDrone.Host/Radarr.Host.csproj
index 0ccddfced..e81c301ef 100644
--- a/src/NzbDrone.Host/Radarr.Host.csproj
+++ b/src/NzbDrone.Host/Radarr.Host.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Integration.Test/Radarr.Integration.Test.csproj b/src/NzbDrone.Integration.Test/Radarr.Integration.Test.csproj
index 9b760c349..3912abe3c 100644
--- a/src/NzbDrone.Integration.Test/Radarr.Integration.Test.csproj
+++ b/src/NzbDrone.Integration.Test/Radarr.Integration.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Libraries.Test/Radarr.Libraries.Test.csproj b/src/NzbDrone.Libraries.Test/Radarr.Libraries.Test.csproj
index a8816f563..a72d28754 100644
--- a/src/NzbDrone.Libraries.Test/Radarr.Libraries.Test.csproj
+++ b/src/NzbDrone.Libraries.Test/Radarr.Libraries.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Mono.Test/Radarr.Mono.Test.csproj b/src/NzbDrone.Mono.Test/Radarr.Mono.Test.csproj
index 6492fafd0..286374e3e 100644
--- a/src/NzbDrone.Mono.Test/Radarr.Mono.Test.csproj
+++ b/src/NzbDrone.Mono.Test/Radarr.Mono.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Mono/Radarr.Mono.csproj b/src/NzbDrone.Mono/Radarr.Mono.csproj
index a71d291aa..13bfd6583 100644
--- a/src/NzbDrone.Mono/Radarr.Mono.csproj
+++ b/src/NzbDrone.Mono/Radarr.Mono.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.SignalR/Radarr.SignalR.csproj b/src/NzbDrone.SignalR/Radarr.SignalR.csproj
index 9ac9ac31d..95be67ba8 100644
--- a/src/NzbDrone.SignalR/Radarr.SignalR.csproj
+++ b/src/NzbDrone.SignalR/Radarr.SignalR.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Test.Common/Radarr.Test.Common.csproj b/src/NzbDrone.Test.Common/Radarr.Test.Common.csproj
index dc2e00ffd..c6f995206 100644
--- a/src/NzbDrone.Test.Common/Radarr.Test.Common.csproj
+++ b/src/NzbDrone.Test.Common/Radarr.Test.Common.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Test.Dummy/Radarr.Test.Dummy.csproj b/src/NzbDrone.Test.Dummy/Radarr.Test.Dummy.csproj
index bca3dcd19..0ec318134 100644
--- a/src/NzbDrone.Test.Dummy/Radarr.Test.Dummy.csproj
+++ b/src/NzbDrone.Test.Dummy/Radarr.Test.Dummy.csproj
@@ -1,7 +1,6 @@
Exe
- net462
- x86
+ net462
\ No newline at end of file
diff --git a/src/NzbDrone.Update.Test/Radarr.Update.Test.csproj b/src/NzbDrone.Update.Test/Radarr.Update.Test.csproj
index 02398428e..9ec1a12b3 100644
--- a/src/NzbDrone.Update.Test/Radarr.Update.Test.csproj
+++ b/src/NzbDrone.Update.Test/Radarr.Update.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Update/Radarr.Update.csproj b/src/NzbDrone.Update/Radarr.Update.csproj
index 5fe5fb628..982d4dfeb 100644
--- a/src/NzbDrone.Update/Radarr.Update.csproj
+++ b/src/NzbDrone.Update/Radarr.Update.csproj
@@ -1,8 +1,7 @@
WinExe
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Windows.Test/Radarr.Windows.Test.csproj b/src/NzbDrone.Windows.Test/Radarr.Windows.Test.csproj
index 4f777f685..e06493d48 100644
--- a/src/NzbDrone.Windows.Test/Radarr.Windows.Test.csproj
+++ b/src/NzbDrone.Windows.Test/Radarr.Windows.Test.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone.Windows/Radarr.Windows.csproj b/src/NzbDrone.Windows/Radarr.Windows.csproj
index 59ec515b9..aeacb3368 100644
--- a/src/NzbDrone.Windows/Radarr.Windows.csproj
+++ b/src/NzbDrone.Windows/Radarr.Windows.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/NzbDrone/Radarr.csproj b/src/NzbDrone/Radarr.csproj
index 993baad96..46d28ba55 100644
--- a/src/NzbDrone/Radarr.csproj
+++ b/src/NzbDrone/Radarr.csproj
@@ -1,12 +1,16 @@
WinExe
- net462
- x86
+ net462
+ win-x64
..\NzbDrone.Host\Radarr.ico
app.manifest
+ true
+
+
+
@@ -26,4 +30,4 @@
Resources.Designer.cs
-
\ No newline at end of file
+
diff --git a/src/ParsingLibrary/ParsingLibrary.csproj b/src/ParsingLibrary/ParsingLibrary.csproj
index ee8dd2389..9f4636f15 100644
--- a/src/ParsingLibrary/ParsingLibrary.csproj
+++ b/src/ParsingLibrary/ParsingLibrary.csproj
@@ -1,7 +1,7 @@
- netstandard2.0
+ netstandard2.0
diff --git a/src/PublishAllRids.targets b/src/PublishAllRids.targets
new file mode 100644
index 000000000..e43dd7bfe
--- /dev/null
+++ b/src/PublishAllRids.targets
@@ -0,0 +1,38 @@
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+ true
+
+
+
+
+
+
+
+ %(Frameworks.Identity)
+
+
+
+ %(Identity)
+ %(Framework)
+
+
+
+
+
+
+ RuntimeIdentifier=%(Renamed.Runtime);TargetFramework=%(Renamed.Framework)
+
+
+
+
+
+
+
diff --git a/src/Radarr.Api.V2/Radarr.Api.V2.csproj b/src/Radarr.Api.V2/Radarr.Api.V2.csproj
index a3254599c..6bb64a9d3 100644
--- a/src/Radarr.Api.V2/Radarr.Api.V2.csproj
+++ b/src/Radarr.Api.V2/Radarr.Api.V2.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/Radarr.Http/Radarr.Http.csproj b/src/Radarr.Http/Radarr.Http.csproj
index 9110a81df..7e243e5b2 100644
--- a/src/Radarr.Http/Radarr.Http.csproj
+++ b/src/Radarr.Http/Radarr.Http.csproj
@@ -1,7 +1,6 @@
- net462
- x86
+ net462
diff --git a/src/Radarr.Posix.sln b/src/Radarr.Posix.sln
new file mode 100644
index 000000000..641ac364b
--- /dev/null
+++ b/src/Radarr.Posix.sln
@@ -0,0 +1,293 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29025.244
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Console", "NzbDrone.Console\Radarr.Console.csproj", "{2019313B-86BD-445C-A6F9-1BCEC49FBA9B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {EF32E669-774D-4144-A9AB-06E5094F1B5F} = {EF32E669-774D-4144-A9AB-06E5094F1B5F}
+ {0D62DE9B-33B5-4CC2-B288-E8561C27FF35} = {0D62DE9B-33B5-4CC2-B288-E8561C27FF35}
+ {D171CDAA-22BE-4598-984B-F9B4A7A6D30C} = {D171CDAA-22BE-4598-984B-F9B4A7A6D30C}
+ {C5953DAB-89DB-46D9-A401-D620F54B776E} = {C5953DAB-89DB-46D9-A401-D620F54B776E}
+ {38497DC6-E488-4B9E-A973-A1A7961B33C4} = {38497DC6-E488-4B9E-A973-A1A7961B33C4}
+ {BB0DC9D7-93EB-4668-82B2-AA7503685A38} = {BB0DC9D7-93EB-4668-82B2-AA7503685A38}
+ {0B4F09FE-275D-4A94-9FEF-CA1594639AF5} = {0B4F09FE-275D-4A94-9FEF-CA1594639AF5}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{57A04B72-8088-4F75-A582-1158CF8291F7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test.Common", "Test.Common", "{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WindowsServiceHelpers", "WindowsServiceHelpers", "{F9E67978-5CD6-4A5F-827B-4249711C0B02}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceInstall", "ServiceHelpers\ServiceInstall\ServiceInstall.csproj", "{6BCE712F-846D-4846-9D1B-A66B858DA755}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceUninstall", "ServiceHelpers\ServiceUninstall\ServiceUninstall.csproj", "{700D0B95-95CD-43F3-B6C9-FAA0FC1358D4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{1E6B3CBE-1578-41C1-9BF9-78D818740BE9}"
+ ProjectSection(SolutionItems) = preProject
+ .nuget\NuGet.exe = .nuget\NuGet.exe
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Host", "Host", "{486ADF86-DD89-4E19-B805-9D94F19800D9}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Marr.Data", "Marr.Data\Marr.Data.csproj", "{F6FC6BE7-0847-4817-A1ED-223DC647C3D7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{0F0D4998-8F5D-4467-A909-BB192C4B3B4B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{4EACDBBC-BCD7-4765-A57B-3E08331E4749}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MonoTorrent", "MonoTorrent\MonoTorrent.csproj", "{411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Http", "Radarr.Http\Radarr.Http.csproj", "{C5953DAB-89DB-46D9-A401-D620F54B776E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api.V2", "Radarr.Api.V2\Radarr.Api.V2.csproj", "{38497DC6-E488-4B9E-A973-A1A7961B33C4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api", "NzbDrone.Api\Radarr.Api.csproj", "{D171CDAA-22BE-4598-984B-F9B4A7A6D30C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Common", "NzbDrone.Common\Radarr.Common.csproj", "{BA949432-D73A-425E-B4B1-4292405DFAF6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Core", "NzbDrone.Core\Radarr.Core.csproj", "{0D62DE9B-33B5-4CC2-B288-E8561C27FF35}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.SignalR", "NzbDrone.SignalR\Radarr.SignalR.csproj", "{0B4F09FE-275D-4A94-9FEF-CA1594639AF5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Update", "NzbDrone.Update\Radarr.Update.csproj", "{D1C4B2AA-8776-4429-A3E3-71146C230037}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api.Test", "NzbDrone.Api.Test\Radarr.Api.Test.csproj", "{D9468BE6-8242-4E7F-9470-EE6FDA8832D0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Automation.Test", "NzbDrone.Automation.Test\Radarr.Automation.Test.csproj", "{779D577B-2287-4FB8-8760-D653DBB87109}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Common.Test", "NzbDrone.Common.Test\Radarr.Common.Test.csproj", "{175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Core.Test", "NzbDrone.Core.Test\Radarr.Core.Test.csproj", "{4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Host.Test", "NzbDrone.Host.Test\Radarr.Host.Test.csproj", "{3FDB2B34-A754-49C5-AEB2-16BC6E92372A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Integration.Test", "NzbDrone.Integration.Test\Radarr.Integration.Test.csproj", "{6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Libraries.Test", "NzbDrone.Libraries.Test\Radarr.Libraries.Test.csproj", "{4E16E633-5AA2-426E-B5C9-D212D4F40B44}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Update.Test", "NzbDrone.Update.Test\Radarr.Update.Test.csproj", "{10C356B1-0E60-4385-A3FA-3670159B5660}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Mono.Test", "NzbDrone.Mono.Test\Radarr.Mono.Test.csproj", "{FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Windows.Test", "NzbDrone.Windows.Test\Radarr.Windows.Test.csproj", "{10B4E062-4985-4897-99DB-745DFBEED055}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Test.Common", "NzbDrone.Test.Common\Radarr.Test.Common.csproj", "{9D841A99-B3EA-4C35-86D0-F27C69E72B3E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Test.Dummy", "NzbDrone.Test.Dummy\Radarr.Test.Dummy.csproj", "{63872633-A00E-45DE-AB4D-61DFF4B02370}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Mono", "NzbDrone.Mono\Radarr.Mono.csproj", "{EF32E669-774D-4144-A9AB-06E5094F1B5F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Windows", "NzbDrone.Windows\Radarr.Windows.csproj", "{BB0DC9D7-93EB-4668-82B2-AA7503685A38}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Host", "NzbDrone.Host\Radarr.Host.csproj", "{B044A5E8-D914-4671-8724-A92ADAB04C5A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Mono|x86 = Mono|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6BCE712F-846D-4846-9D1B-A66B858DA755}.Debug|x86.ActiveCfg = Debug|x86
+ {6BCE712F-846D-4846-9D1B-A66B858DA755}.Debug|x86.Build.0 = Debug|x86
+ {6BCE712F-846D-4846-9D1B-A66B858DA755}.Mono|x86.ActiveCfg = Debug|x86
+ {6BCE712F-846D-4846-9D1B-A66B858DA755}.Release|x86.ActiveCfg = Release|x86
+ {6BCE712F-846D-4846-9D1B-A66B858DA755}.Release|x86.Build.0 = Release|x86
+ {700D0B95-95CD-43F3-B6C9-FAA0FC1358D4}.Debug|x86.ActiveCfg = Debug|x86
+ {700D0B95-95CD-43F3-B6C9-FAA0FC1358D4}.Debug|x86.Build.0 = Debug|x86
+ {700D0B95-95CD-43F3-B6C9-FAA0FC1358D4}.Mono|x86.ActiveCfg = Debug|x86
+ {700D0B95-95CD-43F3-B6C9-FAA0FC1358D4}.Release|x86.ActiveCfg = Release|x86
+ {700D0B95-95CD-43F3-B6C9-FAA0FC1358D4}.Release|x86.Build.0 = Release|x86
+ {F6FC6BE7-0847-4817-A1ED-223DC647C3D7}.Debug|x86.ActiveCfg = Debug|x86
+ {F6FC6BE7-0847-4817-A1ED-223DC647C3D7}.Debug|x86.Build.0 = Debug|x86
+ {F6FC6BE7-0847-4817-A1ED-223DC647C3D7}.Mono|x86.ActiveCfg = Release|x86
+ {F6FC6BE7-0847-4817-A1ED-223DC647C3D7}.Mono|x86.Build.0 = Release|x86
+ {F6FC6BE7-0847-4817-A1ED-223DC647C3D7}.Release|x86.ActiveCfg = Release|x86
+ {F6FC6BE7-0847-4817-A1ED-223DC647C3D7}.Release|x86.Build.0 = Release|x86
+ {411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}.Debug|x86.ActiveCfg = Debug|x86
+ {411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}.Debug|x86.Build.0 = Debug|x86
+ {411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}.Mono|x86.ActiveCfg = Release|x86
+ {411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}.Mono|x86.Build.0 = Release|x86
+ {411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}.Release|x86.ActiveCfg = Release|x86
+ {411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}.Release|x86.Build.0 = Release|x86
+ {C5953DAB-89DB-46D9-A401-D620F54B776E}.Debug|x86.ActiveCfg = Debug|x86
+ {C5953DAB-89DB-46D9-A401-D620F54B776E}.Debug|x86.Build.0 = Debug|x86
+ {C5953DAB-89DB-46D9-A401-D620F54B776E}.Mono|x86.ActiveCfg = Release|x86
+ {C5953DAB-89DB-46D9-A401-D620F54B776E}.Mono|x86.Build.0 = Release|x86
+ {C5953DAB-89DB-46D9-A401-D620F54B776E}.Release|x86.ActiveCfg = Release|x86
+ {C5953DAB-89DB-46D9-A401-D620F54B776E}.Release|x86.Build.0 = Release|x86
+ {38497DC6-E488-4B9E-A973-A1A7961B33C4}.Debug|x86.ActiveCfg = Debug|x86
+ {38497DC6-E488-4B9E-A973-A1A7961B33C4}.Debug|x86.Build.0 = Debug|x86
+ {38497DC6-E488-4B9E-A973-A1A7961B33C4}.Mono|x86.ActiveCfg = Release|x86
+ {38497DC6-E488-4B9E-A973-A1A7961B33C4}.Mono|x86.Build.0 = Release|x86
+ {38497DC6-E488-4B9E-A973-A1A7961B33C4}.Release|x86.ActiveCfg = Release|x86
+ {38497DC6-E488-4B9E-A973-A1A7961B33C4}.Release|x86.Build.0 = Release|x86
+ {D171CDAA-22BE-4598-984B-F9B4A7A6D30C}.Debug|x86.ActiveCfg = Debug|x86
+ {D171CDAA-22BE-4598-984B-F9B4A7A6D30C}.Debug|x86.Build.0 = Debug|x86
+ {D171CDAA-22BE-4598-984B-F9B4A7A6D30C}.Mono|x86.ActiveCfg = Release|x86
+ {D171CDAA-22BE-4598-984B-F9B4A7A6D30C}.Mono|x86.Build.0 = Release|x86
+ {D171CDAA-22BE-4598-984B-F9B4A7A6D30C}.Release|x86.ActiveCfg = Release|x86
+ {D171CDAA-22BE-4598-984B-F9B4A7A6D30C}.Release|x86.Build.0 = Release|x86
+ {BA949432-D73A-425E-B4B1-4292405DFAF6}.Debug|x86.ActiveCfg = Debug|x86
+ {BA949432-D73A-425E-B4B1-4292405DFAF6}.Debug|x86.Build.0 = Debug|x86
+ {BA949432-D73A-425E-B4B1-4292405DFAF6}.Mono|x86.ActiveCfg = Release|x86
+ {BA949432-D73A-425E-B4B1-4292405DFAF6}.Mono|x86.Build.0 = Release|x86
+ {BA949432-D73A-425E-B4B1-4292405DFAF6}.Release|x86.ActiveCfg = Release|x86
+ {BA949432-D73A-425E-B4B1-4292405DFAF6}.Release|x86.Build.0 = Release|x86
+ {0D62DE9B-33B5-4CC2-B288-E8561C27FF35}.Debug|x86.ActiveCfg = Debug|x86
+ {0D62DE9B-33B5-4CC2-B288-E8561C27FF35}.Debug|x86.Build.0 = Debug|x86
+ {0D62DE9B-33B5-4CC2-B288-E8561C27FF35}.Mono|x86.ActiveCfg = Release|x86
+ {0D62DE9B-33B5-4CC2-B288-E8561C27FF35}.Mono|x86.Build.0 = Release|x86
+ {0D62DE9B-33B5-4CC2-B288-E8561C27FF35}.Release|x86.ActiveCfg = Release|x86
+ {0D62DE9B-33B5-4CC2-B288-E8561C27FF35}.Release|x86.Build.0 = Release|x86
+ {0B4F09FE-275D-4A94-9FEF-CA1594639AF5}.Debug|x86.ActiveCfg = Debug|x86
+ {0B4F09FE-275D-4A94-9FEF-CA1594639AF5}.Debug|x86.Build.0 = Debug|x86
+ {0B4F09FE-275D-4A94-9FEF-CA1594639AF5}.Mono|x86.ActiveCfg = Release|x86
+ {0B4F09FE-275D-4A94-9FEF-CA1594639AF5}.Mono|x86.Build.0 = Release|x86
+ {0B4F09FE-275D-4A94-9FEF-CA1594639AF5}.Release|x86.ActiveCfg = Release|x86
+ {0B4F09FE-275D-4A94-9FEF-CA1594639AF5}.Release|x86.Build.0 = Release|x86
+ {D1C4B2AA-8776-4429-A3E3-71146C230037}.Debug|x86.ActiveCfg = Debug|x86
+ {D1C4B2AA-8776-4429-A3E3-71146C230037}.Debug|x86.Build.0 = Debug|x86
+ {D1C4B2AA-8776-4429-A3E3-71146C230037}.Mono|x86.ActiveCfg = Release|x86
+ {D1C4B2AA-8776-4429-A3E3-71146C230037}.Mono|x86.Build.0 = Release|x86
+ {D1C4B2AA-8776-4429-A3E3-71146C230037}.Release|x86.ActiveCfg = Release|x86
+ {D1C4B2AA-8776-4429-A3E3-71146C230037}.Release|x86.Build.0 = Release|x86
+ {D9468BE6-8242-4E7F-9470-EE6FDA8832D0}.Debug|x86.ActiveCfg = Debug|x86
+ {D9468BE6-8242-4E7F-9470-EE6FDA8832D0}.Debug|x86.Build.0 = Debug|x86
+ {D9468BE6-8242-4E7F-9470-EE6FDA8832D0}.Mono|x86.ActiveCfg = Release|x86
+ {D9468BE6-8242-4E7F-9470-EE6FDA8832D0}.Mono|x86.Build.0 = Release|x86
+ {D9468BE6-8242-4E7F-9470-EE6FDA8832D0}.Release|x86.ActiveCfg = Release|x86
+ {D9468BE6-8242-4E7F-9470-EE6FDA8832D0}.Release|x86.Build.0 = Release|x86
+ {779D577B-2287-4FB8-8760-D653DBB87109}.Debug|x86.ActiveCfg = Debug|x86
+ {779D577B-2287-4FB8-8760-D653DBB87109}.Debug|x86.Build.0 = Debug|x86
+ {779D577B-2287-4FB8-8760-D653DBB87109}.Mono|x86.ActiveCfg = Release|x86
+ {779D577B-2287-4FB8-8760-D653DBB87109}.Mono|x86.Build.0 = Release|x86
+ {779D577B-2287-4FB8-8760-D653DBB87109}.Release|x86.ActiveCfg = Release|x86
+ {779D577B-2287-4FB8-8760-D653DBB87109}.Release|x86.Build.0 = Release|x86
+ {175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}.Debug|x86.ActiveCfg = Debug|x86
+ {175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}.Debug|x86.Build.0 = Debug|x86
+ {175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}.Mono|x86.ActiveCfg = Release|x86
+ {175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}.Mono|x86.Build.0 = Release|x86
+ {175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}.Release|x86.ActiveCfg = Release|x86
+ {175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}.Release|x86.Build.0 = Release|x86
+ {4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}.Debug|x86.ActiveCfg = Debug|x86
+ {4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}.Debug|x86.Build.0 = Debug|x86
+ {4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}.Mono|x86.ActiveCfg = Release|x86
+ {4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}.Mono|x86.Build.0 = Release|x86
+ {4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}.Release|x86.ActiveCfg = Release|x86
+ {4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}.Release|x86.Build.0 = Release|x86
+ {3FDB2B34-A754-49C5-AEB2-16BC6E92372A}.Debug|x86.ActiveCfg = Debug|x86
+ {3FDB2B34-A754-49C5-AEB2-16BC6E92372A}.Debug|x86.Build.0 = Debug|x86
+ {3FDB2B34-A754-49C5-AEB2-16BC6E92372A}.Mono|x86.ActiveCfg = Release|x86
+ {3FDB2B34-A754-49C5-AEB2-16BC6E92372A}.Mono|x86.Build.0 = Release|x86
+ {3FDB2B34-A754-49C5-AEB2-16BC6E92372A}.Release|x86.ActiveCfg = Release|x86
+ {3FDB2B34-A754-49C5-AEB2-16BC6E92372A}.Release|x86.Build.0 = Release|x86
+ {6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}.Debug|x86.ActiveCfg = Debug|x86
+ {6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}.Debug|x86.Build.0 = Debug|x86
+ {6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}.Mono|x86.ActiveCfg = Release|x86
+ {6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}.Mono|x86.Build.0 = Release|x86
+ {6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}.Release|x86.ActiveCfg = Release|x86
+ {6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}.Release|x86.Build.0 = Release|x86
+ {4E16E633-5AA2-426E-B5C9-D212D4F40B44}.Debug|x86.ActiveCfg = Debug|x86
+ {4E16E633-5AA2-426E-B5C9-D212D4F40B44}.Debug|x86.Build.0 = Debug|x86
+ {4E16E633-5AA2-426E-B5C9-D212D4F40B44}.Mono|x86.ActiveCfg = Release|x86
+ {4E16E633-5AA2-426E-B5C9-D212D4F40B44}.Mono|x86.Build.0 = Release|x86
+ {4E16E633-5AA2-426E-B5C9-D212D4F40B44}.Release|x86.ActiveCfg = Release|x86
+ {4E16E633-5AA2-426E-B5C9-D212D4F40B44}.Release|x86.Build.0 = Release|x86
+ {10C356B1-0E60-4385-A3FA-3670159B5660}.Debug|x86.ActiveCfg = Debug|x86
+ {10C356B1-0E60-4385-A3FA-3670159B5660}.Debug|x86.Build.0 = Debug|x86
+ {10C356B1-0E60-4385-A3FA-3670159B5660}.Mono|x86.ActiveCfg = Release|x86
+ {10C356B1-0E60-4385-A3FA-3670159B5660}.Mono|x86.Build.0 = Release|x86
+ {10C356B1-0E60-4385-A3FA-3670159B5660}.Release|x86.ActiveCfg = Release|x86
+ {10C356B1-0E60-4385-A3FA-3670159B5660}.Release|x86.Build.0 = Release|x86
+ {FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}.Debug|x86.ActiveCfg = Debug|x86
+ {FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}.Debug|x86.Build.0 = Debug|x86
+ {FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}.Mono|x86.ActiveCfg = Release|x86
+ {FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}.Mono|x86.Build.0 = Release|x86
+ {FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}.Release|x86.ActiveCfg = Release|x86
+ {FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}.Release|x86.Build.0 = Release|x86
+ {10B4E062-4985-4897-99DB-745DFBEED055}.Debug|x86.ActiveCfg = Debug|x86
+ {10B4E062-4985-4897-99DB-745DFBEED055}.Debug|x86.Build.0 = Debug|x86
+ {10B4E062-4985-4897-99DB-745DFBEED055}.Mono|x86.ActiveCfg = Release|x86
+ {10B4E062-4985-4897-99DB-745DFBEED055}.Mono|x86.Build.0 = Release|x86
+ {10B4E062-4985-4897-99DB-745DFBEED055}.Release|x86.ActiveCfg = Release|x86
+ {10B4E062-4985-4897-99DB-745DFBEED055}.Release|x86.Build.0 = Release|x86
+ {9D841A99-B3EA-4C35-86D0-F27C69E72B3E}.Debug|x86.ActiveCfg = Debug|x86
+ {9D841A99-B3EA-4C35-86D0-F27C69E72B3E}.Debug|x86.Build.0 = Debug|x86
+ {9D841A99-B3EA-4C35-86D0-F27C69E72B3E}.Mono|x86.ActiveCfg = Release|x86
+ {9D841A99-B3EA-4C35-86D0-F27C69E72B3E}.Mono|x86.Build.0 = Release|x86
+ {9D841A99-B3EA-4C35-86D0-F27C69E72B3E}.Release|x86.ActiveCfg = Release|x86
+ {9D841A99-B3EA-4C35-86D0-F27C69E72B3E}.Release|x86.Build.0 = Release|x86
+ {63872633-A00E-45DE-AB4D-61DFF4B02370}.Debug|x86.ActiveCfg = Debug|x86
+ {63872633-A00E-45DE-AB4D-61DFF4B02370}.Debug|x86.Build.0 = Debug|x86
+ {63872633-A00E-45DE-AB4D-61DFF4B02370}.Mono|x86.ActiveCfg = Release|x86
+ {63872633-A00E-45DE-AB4D-61DFF4B02370}.Mono|x86.Build.0 = Release|x86
+ {63872633-A00E-45DE-AB4D-61DFF4B02370}.Release|x86.ActiveCfg = Release|x86
+ {63872633-A00E-45DE-AB4D-61DFF4B02370}.Release|x86.Build.0 = Release|x86
+ {EF32E669-774D-4144-A9AB-06E5094F1B5F}.Debug|x86.ActiveCfg = Debug|x86
+ {EF32E669-774D-4144-A9AB-06E5094F1B5F}.Debug|x86.Build.0 = Debug|x86
+ {EF32E669-774D-4144-A9AB-06E5094F1B5F}.Mono|x86.ActiveCfg = Release|x86
+ {EF32E669-774D-4144-A9AB-06E5094F1B5F}.Mono|x86.Build.0 = Release|x86
+ {EF32E669-774D-4144-A9AB-06E5094F1B5F}.Release|x86.ActiveCfg = Release|x86
+ {EF32E669-774D-4144-A9AB-06E5094F1B5F}.Release|x86.Build.0 = Release|x86
+ {BB0DC9D7-93EB-4668-82B2-AA7503685A38}.Debug|x86.ActiveCfg = Debug|x86
+ {BB0DC9D7-93EB-4668-82B2-AA7503685A38}.Debug|x86.Build.0 = Debug|x86
+ {BB0DC9D7-93EB-4668-82B2-AA7503685A38}.Mono|x86.ActiveCfg = Release|x86
+ {BB0DC9D7-93EB-4668-82B2-AA7503685A38}.Mono|x86.Build.0 = Release|x86
+ {BB0DC9D7-93EB-4668-82B2-AA7503685A38}.Release|x86.ActiveCfg = Release|x86
+ {BB0DC9D7-93EB-4668-82B2-AA7503685A38}.Release|x86.Build.0 = Release|x86
+ {2019313B-86BD-445C-A6F9-1BCEC49FBA9B}.Debug|x86.ActiveCfg = Debug|x86
+ {2019313B-86BD-445C-A6F9-1BCEC49FBA9B}.Debug|x86.Build.0 = Debug|x86
+ {2019313B-86BD-445C-A6F9-1BCEC49FBA9B}.Mono|x86.ActiveCfg = Release|x86
+ {2019313B-86BD-445C-A6F9-1BCEC49FBA9B}.Mono|x86.Build.0 = Release|x86
+ {2019313B-86BD-445C-A6F9-1BCEC49FBA9B}.Release|x86.ActiveCfg = Release|x86
+ {2019313B-86BD-445C-A6F9-1BCEC49FBA9B}.Release|x86.Build.0 = Release|x86
+ {B044A5E8-D914-4671-8724-A92ADAB04C5A}.Debug|x86.ActiveCfg = Debug|x86
+ {B044A5E8-D914-4671-8724-A92ADAB04C5A}.Debug|x86.Build.0 = Debug|x86
+ {B044A5E8-D914-4671-8724-A92ADAB04C5A}.Mono|x86.ActiveCfg = Release|x86
+ {B044A5E8-D914-4671-8724-A92ADAB04C5A}.Mono|x86.Build.0 = Release|x86
+ {B044A5E8-D914-4671-8724-A92ADAB04C5A}.Release|x86.ActiveCfg = Release|x86
+ {B044A5E8-D914-4671-8724-A92ADAB04C5A}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {6BCE712F-846D-4846-9D1B-A66B858DA755} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
+ {700D0B95-95CD-43F3-B6C9-FAA0FC1358D4} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
+ {F6FC6BE7-0847-4817-A1ED-223DC647C3D7} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
+ {4EACDBBC-BCD7-4765-A57B-3E08331E4749} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
+ {D9468BE6-8242-4E7F-9470-EE6FDA8832D0} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {779D577B-2287-4FB8-8760-D653DBB87109} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {175CE3A0-0D8C-48DB-9D8D-C7BBD9591813} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {3FDB2B34-A754-49C5-AEB2-16BC6E92372A} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {6EEF2080-FAA9-4403-A7B4-0AA91E5A390F} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {4E16E633-5AA2-426E-B5C9-D212D4F40B44} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {10C356B1-0E60-4385-A3FA-3670159B5660} = {57A04B72-8088-4F75-A582-1158CF8291F7}
+ {FD08732A-60BB-4ACB-9AD2-F17C8BE694C8} = {4EACDBBC-BCD7-4765-A57B-3E08331E4749}
+ {10B4E062-4985-4897-99DB-745DFBEED055} = {4EACDBBC-BCD7-4765-A57B-3E08331E4749}
+ {9D841A99-B3EA-4C35-86D0-F27C69E72B3E} = {47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}
+ {63872633-A00E-45DE-AB4D-61DFF4B02370} = {47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}
+ {EF32E669-774D-4144-A9AB-06E5094F1B5F} = {0F0D4998-8F5D-4467-A909-BB192C4B3B4B}
+ {BB0DC9D7-93EB-4668-82B2-AA7503685A38} = {0F0D4998-8F5D-4467-A909-BB192C4B3B4B}
+ {2019313B-86BD-445C-A6F9-1BCEC49FBA9B} = {486ADF86-DD89-4E19-B805-9D94F19800D9}
+ {B044A5E8-D914-4671-8724-A92ADAB04C5A} = {486ADF86-DD89-4E19-B805-9D94F19800D9}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35;packages\Unity.2.1.505.2\lib\NET35
+ SolutionGuid = {2955716E-0882-41EC-935D-C95694C5C30F}
+ EndGlobalSection
+ GlobalSection(MonoDevelopProperties) = preSolution
+ StartupItem = NzbDrone.Console\NzbDrone.Console.csproj
+ EndGlobalSection
+ GlobalSection(JSLint) = preSolution
+ SolutionConfigurationLocation = JSLintOptions.xml
+ EndGlobalSection
+EndGlobal
diff --git a/src/Radarr.sln b/src/Radarr.Windows.sln
similarity index 100%
rename from src/Radarr.sln
rename to src/Radarr.Windows.sln
diff --git a/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj b/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj
index 547c2f7bc..ea283c501 100644
--- a/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj
+++ b/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj
@@ -1,7 +1,6 @@
Exe
- net462
- x86
+ net462
\ No newline at end of file
diff --git a/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj b/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj
index 547c2f7bc..ea283c501 100644
--- a/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj
+++ b/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj
@@ -1,7 +1,6 @@
Exe
- net462
- x86
+ net462
\ No newline at end of file