mirror of https://github.com/Radarr/Radarr
New: Multi target net framework 4.6.2 and net core 3.0
This commit is contained in:
parent
d0f13e16d5
commit
057829c3b0
|
@ -134,6 +134,12 @@ bin
|
||||||
obj
|
obj
|
||||||
output/*
|
output/*
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
**/Properties/launchSettings.json
|
||||||
|
|
||||||
# Packages
|
# Packages
|
||||||
Radarr_*/
|
Radarr_*/
|
||||||
Radarr_*.zip
|
Radarr_*.zip
|
||||||
|
|
|
@ -69,17 +69,21 @@ stages:
|
||||||
artifact: '$(osName)Backend'
|
artifact: '$(osName)Backend'
|
||||||
displayName: Publish Backend
|
displayName: Publish Backend
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
- publish: '$(testsFolder)/net462/win-x64/publish'
|
- publish: '$(testsFolder)/netcoreapp3.0/win-x64/publish'
|
||||||
artifact: WindowsTests
|
artifact: WindowsCoreTests
|
||||||
displayName: Publish Test Package
|
displayName: Publish Windows Test Package
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
- publish: '$(testsFolder)/net462/linux-x64/publish'
|
- publish: '$(testsFolder)/net462/linux-x64/publish'
|
||||||
artifact: LinuxTests
|
artifact: LinuxTests
|
||||||
displayName: Publish Test Package
|
displayName: Publish Linux Mono Test Package
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
- publish: '$(testsFolder)/net462/osx-x64/publish'
|
- publish: '$(testsFolder)/netcoreapp3.0/linux-x64/publish'
|
||||||
artifact: MacTests
|
artifact: LinuxCoreTests
|
||||||
displayName: Publish Test Package
|
displayName: Publish Linux Test Package
|
||||||
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
|
- publish: '$(testsFolder)/netcoreapp3.0/osx-x64/publish'
|
||||||
|
artifact: MacCoreTests
|
||||||
|
displayName: Publish MacOS Test Package
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
|
|
||||||
- stage: Build_Frontend
|
- stage: Build_Frontend
|
||||||
|
@ -145,9 +149,9 @@ stages:
|
||||||
- bash: ./build.sh --packages
|
- bash: ./build.sh --packages
|
||||||
displayName: Create Packages
|
displayName: Create Packages
|
||||||
- bash: |
|
- bash: |
|
||||||
setup/inno/ISCC.exe setup/radarr.iss //DFramework=net462
|
setup/inno/ISCC.exe setup/radarr.iss //DFramework=netcoreapp3.0
|
||||||
cp setup/output/Radarr.*windows.net462.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-installer.exe
|
cp setup/output/Radarr.*windows.netcoreapp3.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Radarr.${BUILDNAME}.windows-core-x64-installer.exe
|
||||||
displayName: Create .NET 462 Windows installer
|
displayName: Create .NET Core Windows installer
|
||||||
- publish: $(Build.ArtifactStagingDirectory)
|
- publish: $(Build.ArtifactStagingDirectory)
|
||||||
artifact: 'WindowsInstaller'
|
artifact: 'WindowsInstaller'
|
||||||
displayName: Publish Installer
|
displayName: Publish Installer
|
||||||
|
@ -183,35 +187,59 @@ stages:
|
||||||
find . -name "Radarr.Update" -exec chmod a+x {} \;
|
find . -name "Radarr.Update" -exec chmod a+x {} \;
|
||||||
displayName: Set executable bits
|
displayName: Set executable bits
|
||||||
- task: ArchiveFiles@2
|
- task: ArchiveFiles@2
|
||||||
displayName: Create Windows zip
|
displayName: Create Windows Core zip
|
||||||
inputs:
|
inputs:
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows.zip'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).windows-core-x64.zip'
|
||||||
archiveType: 'zip'
|
archiveType: 'zip'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
rootFolderOrFile: $(artifactsFolder)/windows/net462
|
rootFolderOrFile: $(artifactsFolder)/windows/netcoreapp3.0
|
||||||
- task: ArchiveFiles@2
|
- task: ArchiveFiles@2
|
||||||
displayName: Create MacOS app
|
displayName: Create MacOS Core app
|
||||||
inputs:
|
inputs:
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app.zip'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-app-core-x64.zip'
|
||||||
archiveType: 'zip'
|
archiveType: 'zip'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
rootFolderOrFile: $(artifactsFolder)/macos-app/net462
|
rootFolderOrFile: $(artifactsFolder)/macos-app/netcoreapp3.0
|
||||||
- task: ArchiveFiles@2
|
- task: ArchiveFiles@2
|
||||||
displayName: Create MacOS tar
|
displayName: Create MacOS Core tar
|
||||||
inputs:
|
inputs:
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx.tar.gz'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).osx-core-x64.tar.gz'
|
||||||
archiveType: 'tar'
|
archiveType: 'tar'
|
||||||
tarCompression: 'gz'
|
tarCompression: 'gz'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
rootFolderOrFile: $(artifactsFolder)/macos/net462
|
rootFolderOrFile: $(artifactsFolder)/macos/netcoreapp3.0
|
||||||
- task: ArchiveFiles@2
|
- task: ArchiveFiles@2
|
||||||
displayName: Create Linux tar
|
displayName: Create Linux Mono tar
|
||||||
inputs:
|
inputs:
|
||||||
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux.tar.gz'
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux.tar.gz'
|
||||||
archiveType: 'tar'
|
archiveType: 'tar'
|
||||||
tarCompression: 'gz'
|
tarCompression: 'gz'
|
||||||
includeRootFolder: false
|
includeRootFolder: false
|
||||||
rootFolderOrFile: $(artifactsFolder)/linux-x64/net462
|
rootFolderOrFile: $(artifactsFolder)/linux-x64/net462
|
||||||
|
- task: ArchiveFiles@2
|
||||||
|
displayName: Create Linux Core tar
|
||||||
|
inputs:
|
||||||
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-x64.tar.gz'
|
||||||
|
archiveType: 'tar'
|
||||||
|
tarCompression: 'gz'
|
||||||
|
includeRootFolder: false
|
||||||
|
rootFolderOrFile: $(artifactsFolder)/linux-x64/netcoreapp3.0
|
||||||
|
- task: ArchiveFiles@2
|
||||||
|
displayName: Create ARM32 Linux Core tar
|
||||||
|
inputs:
|
||||||
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-arm.tar.gz'
|
||||||
|
archiveType: 'tar'
|
||||||
|
tarCompression: 'gz'
|
||||||
|
includeRootFolder: false
|
||||||
|
rootFolderOrFile: $(artifactsFolder)/linux-arm/netcoreapp3.0
|
||||||
|
- task: ArchiveFiles@2
|
||||||
|
displayName: Create ARM64 Linux Core tar
|
||||||
|
inputs:
|
||||||
|
archiveFile: '$(Build.ArtifactStagingDirectory)/Radarr.$(buildName).linux-core-arm64.tar.gz'
|
||||||
|
archiveType: 'tar'
|
||||||
|
tarCompression: 'gz'
|
||||||
|
includeRootFolder: false
|
||||||
|
rootFolderOrFile: $(artifactsFolder)/linux-arm64/netcoreapp3.0
|
||||||
- publish: $(Build.ArtifactStagingDirectory)
|
- publish: $(Build.ArtifactStagingDirectory)
|
||||||
artifact: 'Packages'
|
artifact: 'Packages'
|
||||||
displayName: Publish Packages
|
displayName: Publish Packages
|
||||||
|
@ -238,23 +266,35 @@ stages:
|
||||||
displayName: Unit Native
|
displayName: Unit Native
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
Mac:
|
MacCore:
|
||||||
osName: 'Mac'
|
osName: 'Mac'
|
||||||
|
testName: 'MacCore'
|
||||||
imageName: 'macos-10.13'
|
imageName: 'macos-10.13'
|
||||||
Windows:
|
WindowsCore:
|
||||||
osName: 'Windows'
|
osName: 'Windows'
|
||||||
|
testName: 'WindowsCore'
|
||||||
imageName: 'windows-2019'
|
imageName: 'windows-2019'
|
||||||
|
LinuxCore:
|
||||||
|
osName: 'Linux'
|
||||||
|
testName: 'LinuxCore'
|
||||||
|
imageName: 'ubuntu-16.04'
|
||||||
|
pattern: 'Radarr.**.linux-core-x64.tar.gz'
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
vmImage: $(imageName)
|
vmImage: $(imageName)
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- checkout: none
|
- checkout: none
|
||||||
|
- task: UseDotNet@2
|
||||||
|
displayName: 'Install .net core 3.0'
|
||||||
|
inputs:
|
||||||
|
version: $(dotnetVersion)
|
||||||
|
condition: ne(variables['osName'], 'Windows')
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
inputs:
|
inputs:
|
||||||
buildType: 'current'
|
buildType: 'current'
|
||||||
artifactName: '$(osName)Tests'
|
artifactName: '$(testName)Tests'
|
||||||
targetPath: $(testsFolder)
|
targetPath: $(testsFolder)
|
||||||
- bash: |
|
- bash: |
|
||||||
wget https://mediaarea.net/repo/deb/repo-mediaarea_1.0-9_all.deb
|
wget https://mediaarea.net/repo/deb/repo-mediaarea_1.0-9_all.deb
|
||||||
|
@ -266,6 +306,11 @@ stages:
|
||||||
- powershell: Set-Service SCardSvr -StartupType Manual
|
- powershell: Set-Service SCardSvr -StartupType Manual
|
||||||
displayName: Enable Windows Test Service
|
displayName: Enable Windows Test Service
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
condition: and(succeeded(), eq(variables['osName'], 'Windows'))
|
||||||
|
- bash: |
|
||||||
|
wget https://github.com/acoustid/chromaprint/releases/download/v1.4.3/chromaprint-fpcalc-1.4.3-linux-x86_64.tar.gz
|
||||||
|
sudo tar xf chromaprint-fpcalc-1.4.3-linux-x86_64.tar.gz --strip-components=1 --directory /usr/bin
|
||||||
|
displayName: Install fpcalc
|
||||||
|
condition: and(succeeded(), eq(variables['osName'], 'Linux'))
|
||||||
- bash: |
|
- bash: |
|
||||||
SYMLINK=5_18_1
|
SYMLINK=5_18_1
|
||||||
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
|
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
|
||||||
|
@ -289,7 +334,7 @@ stages:
|
||||||
inputs:
|
inputs:
|
||||||
testResultsFormat: 'NUnit'
|
testResultsFormat: 'NUnit'
|
||||||
testResultsFiles: '**/TestResult.xml'
|
testResultsFiles: '**/TestResult.xml'
|
||||||
testRunTitle: '$(osName) Unit Tests'
|
testRunTitle: '$(testName) Unit Tests'
|
||||||
failTaskOnFailedTests: true
|
failTaskOnFailedTests: true
|
||||||
|
|
||||||
- job: Unit_Docker
|
- job: Unit_Docker
|
||||||
|
@ -334,6 +379,11 @@ stages:
|
||||||
steps:
|
steps:
|
||||||
- bash: mono --version
|
- bash: mono --version
|
||||||
displayName: Check Mono version
|
displayName: Check Mono version
|
||||||
|
- task: UseDotNet@2
|
||||||
|
displayName: 'Install .net core 3.0'
|
||||||
|
inputs:
|
||||||
|
version: $(dotnetVersion)
|
||||||
|
condition: ne(variables['osName'], 'Windows')
|
||||||
- checkout: none
|
- checkout: none
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
|
@ -364,14 +414,21 @@ stages:
|
||||||
displayName: Integration Native
|
displayName: Integration Native
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
Mac:
|
MacCore:
|
||||||
osName: 'Mac'
|
osName: 'Mac'
|
||||||
|
testName: 'MacCore'
|
||||||
imageName: 'macos-10.13'
|
imageName: 'macos-10.13'
|
||||||
pattern: 'Radarr.**.osx.tar.gz'
|
pattern: 'Radarr.**.osx-core-x64.tar.gz'
|
||||||
Windows:
|
WindowsCore:
|
||||||
osName: 'Windows'
|
osName: 'Windows'
|
||||||
|
testName: 'WindowsCore'
|
||||||
imageName: 'windows-2019'
|
imageName: 'windows-2019'
|
||||||
pattern: 'Radarr.**.windows.zip'
|
pattern: 'Radarr.**.windows-core-x64.zip'
|
||||||
|
LinuxCore:
|
||||||
|
osName: 'Linux'
|
||||||
|
testName: 'LinuxCore'
|
||||||
|
imageName: 'ubuntu-16.04'
|
||||||
|
pattern: 'Radarr.**.linux-core-x64.tar.gz'
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
vmImage: $(imageName)
|
vmImage: $(imageName)
|
||||||
|
@ -385,12 +442,17 @@ stages:
|
||||||
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
|
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"
|
||||||
displayName: Set Mono Version
|
displayName: Set Mono Version
|
||||||
condition: and(succeeded(), eq(variables['osName'], 'Mac'))
|
condition: and(succeeded(), eq(variables['osName'], 'Mac'))
|
||||||
|
- task: UseDotNet@2
|
||||||
|
displayName: 'Install .net core 3.0'
|
||||||
|
inputs:
|
||||||
|
version: $(dotnetVersion)
|
||||||
|
condition: ne(variables['osName'], 'Windows')
|
||||||
- checkout: none
|
- checkout: none
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
inputs:
|
inputs:
|
||||||
buildType: 'current'
|
buildType: 'current'
|
||||||
artifactName: '$(osName)Tests'
|
artifactName: '$(testName)Tests'
|
||||||
targetPath: $(testsFolder)
|
targetPath: $(testsFolder)
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Build Artifact
|
displayName: Download Build Artifact
|
||||||
|
@ -418,7 +480,7 @@ stages:
|
||||||
inputs:
|
inputs:
|
||||||
testResultsFormat: 'NUnit'
|
testResultsFormat: 'NUnit'
|
||||||
testResultsFiles: '**/TestResult.xml'
|
testResultsFiles: '**/TestResult.xml'
|
||||||
testRunTitle: '$(osName) Integration Tests'
|
testRunTitle: '$(testName) Integration Tests'
|
||||||
failTaskOnFailedTests: true
|
failTaskOnFailedTests: true
|
||||||
displayName: Publish Test Results
|
displayName: Publish Test Results
|
||||||
|
|
||||||
|
@ -467,12 +529,17 @@ stages:
|
||||||
steps:
|
steps:
|
||||||
- bash: mono --version
|
- bash: mono --version
|
||||||
displayName: Check Mono version
|
displayName: Check Mono version
|
||||||
|
- task: UseDotNet@2
|
||||||
|
displayName: 'Install .net core 3.0'
|
||||||
|
inputs:
|
||||||
|
version: $(dotnetVersion)
|
||||||
|
condition: ne(variables['osName'], 'Windows')
|
||||||
- checkout: none
|
- checkout: none
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
inputs:
|
inputs:
|
||||||
buildType: 'current'
|
buildType: 'current'
|
||||||
artifactName: 'LinuxTests'
|
artifactName: LinuxTests
|
||||||
targetPath: $(testsFolder)
|
targetPath: $(testsFolder)
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Build Artifact
|
displayName: Download Build Artifact
|
||||||
|
@ -516,29 +583,34 @@ stages:
|
||||||
Linux:
|
Linux:
|
||||||
osName: 'Linux'
|
osName: 'Linux'
|
||||||
imageName: 'ubuntu-16.04'
|
imageName: 'ubuntu-16.04'
|
||||||
pattern: 'Radarr.**.linux.tar.gz'
|
pattern: 'Radarr.**.linux-core-x64.tar.gz'
|
||||||
failBuild: true
|
failBuild: true
|
||||||
Mac:
|
Mac:
|
||||||
osName: 'Mac'
|
osName: 'Mac'
|
||||||
imageName: 'macos-10.13' # Fails due to firefox not being installed on image
|
imageName: 'macos-10.13' # Fails due to firefox not being installed on image
|
||||||
pattern: 'Radarr.**.osx.tar.gz'
|
pattern: 'Radarr.**.osx-core-x64.tar.gz'
|
||||||
failBuild: false
|
failBuild: false
|
||||||
Windows:
|
Windows:
|
||||||
osName: 'Windows'
|
osName: 'Windows'
|
||||||
imageName: 'windows-2019'
|
imageName: 'windows-2019'
|
||||||
pattern: 'Radarr.**.windows.zip'
|
pattern: 'Radarr.**.windows-core-x64.zip'
|
||||||
failBuild: true
|
failBuild: true
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
vmImage: $(imageName)
|
vmImage: $(imageName)
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- task: UseDotNet@2
|
||||||
|
displayName: 'Install .net core 3.0'
|
||||||
|
inputs:
|
||||||
|
version: $(dotnetVersion)
|
||||||
|
condition: ne(variables['osName'], 'Windows')
|
||||||
- checkout: none
|
- checkout: none
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Test Artifact
|
displayName: Download Test Artifact
|
||||||
inputs:
|
inputs:
|
||||||
buildType: 'current'
|
buildType: 'current'
|
||||||
artifactName: '$(osName)Tests'
|
artifactName: '$(osName)CoreTests'
|
||||||
targetPath: $(testsFolder)
|
targetPath: $(testsFolder)
|
||||||
- task: DownloadPipelineArtifact@2
|
- task: DownloadPipelineArtifact@2
|
||||||
displayName: Download Build Artifact
|
displayName: Download Build Artifact
|
||||||
|
|
38
build.sh
38
build.sh
|
@ -5,8 +5,6 @@ outputFolder='_output'
|
||||||
testPackageFolder='_tests'
|
testPackageFolder='_tests'
|
||||||
artifactsFolder="_artifacts";
|
artifactsFolder="_artifacts";
|
||||||
|
|
||||||
nuget='tools/nuget/nuget.exe';
|
|
||||||
|
|
||||||
ProgressStart()
|
ProgressStart()
|
||||||
{
|
{
|
||||||
echo "Start '$1'"
|
echo "Start '$1'"
|
||||||
|
@ -131,6 +129,10 @@ PackageLinux()
|
||||||
|
|
||||||
echo "Adding Radarr.Mono to UpdatePackage"
|
echo "Adding Radarr.Mono to UpdatePackage"
|
||||||
cp $folder/Radarr.Mono.* $folder/Radarr.Update
|
cp $folder/Radarr.Mono.* $folder/Radarr.Update
|
||||||
|
if [ "$framework" = "netcoreapp3.0" ]; then
|
||||||
|
cp $folder/Mono.Posix.NETStandard.* $folder/Radarr.Update
|
||||||
|
cp $folder/libMonoPosixHelper.* $folder/Radarr.Update
|
||||||
|
fi
|
||||||
|
|
||||||
ProgressEnd "Creating $runtime Package for $framework"
|
ProgressEnd "Creating $runtime Package for $framework"
|
||||||
}
|
}
|
||||||
|
@ -159,6 +161,10 @@ PackageMacOS()
|
||||||
|
|
||||||
echo "Adding Radarr.Mono to UpdatePackage"
|
echo "Adding Radarr.Mono to UpdatePackage"
|
||||||
cp $folder/Radarr.Mono.* $folder/Radarr.Update
|
cp $folder/Radarr.Mono.* $folder/Radarr.Update
|
||||||
|
if [ "$framework" = "netcoreapp3.0" ]; then
|
||||||
|
cp $folder/Mono.Posix.NETStandard.* $folder/Radarr.Update
|
||||||
|
cp $folder/libMonoPosixHelper.* $folder/Radarr.Update
|
||||||
|
fi
|
||||||
|
|
||||||
ProgressEnd 'Creating MacOS Package'
|
ProgressEnd 'Creating MacOS Package'
|
||||||
}
|
}
|
||||||
|
@ -189,26 +195,17 @@ PackageTests()
|
||||||
{
|
{
|
||||||
ProgressStart 'Creating Test Package'
|
ProgressStart 'Creating Test Package'
|
||||||
|
|
||||||
cp test.sh $testPackageFolder/net462/win-x64/publish
|
|
||||||
cp test.sh $testPackageFolder/net462/linux-x64/publish
|
cp test.sh $testPackageFolder/net462/linux-x64/publish
|
||||||
cp test.sh $testPackageFolder/net462/osx-x64/publish
|
cp test.sh $testPackageFolder/netcoreapp3.0/win-x64/publish
|
||||||
|
cp test.sh $testPackageFolder/netcoreapp3.0/linux-x64/publish
|
||||||
|
cp test.sh $testPackageFolder/netcoreapp3.0/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/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
|
|
||||||
|
|
||||||
rm -f $testPackageFolder/*.log.config
|
rm -f $testPackageFolder/*.log.config
|
||||||
|
|
||||||
# geckodriver.exe isn't copied by dotnet publish
|
# 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"
|
curl -Lo gecko.zip "https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-win64.zip"
|
||||||
unzip -o gecko.zip
|
unzip -o gecko.zip
|
||||||
cp geckodriver.exe $testPackageFolder/net462/win-x64/publish
|
cp geckodriver.exe $testPackageFolder/netcoreapp3.0/win-x64/publish
|
||||||
|
|
||||||
CleanFolder $testPackageFolder
|
CleanFolder $testPackageFolder
|
||||||
|
|
||||||
|
@ -227,6 +224,8 @@ PackageWindows()
|
||||||
|
|
||||||
echo "Removing Radarr.Mono"
|
echo "Removing Radarr.Mono"
|
||||||
rm -f $folder/Radarr.Mono.*
|
rm -f $folder/Radarr.Mono.*
|
||||||
|
rm -f $folder/Mono.Posix.NETStandard.*
|
||||||
|
rm -f $folder/libMonoPosixHelper.*
|
||||||
|
|
||||||
echo "Adding Radarr.Windows to UpdatePackage"
|
echo "Adding Radarr.Windows to UpdatePackage"
|
||||||
cp $folder/Radarr.Windows.* $folder/Radarr.Update
|
cp $folder/Radarr.Windows.* $folder/Radarr.Update
|
||||||
|
@ -318,8 +317,11 @@ fi
|
||||||
if [ "$PACKAGES" = "YES" ];
|
if [ "$PACKAGES" = "YES" ];
|
||||||
then
|
then
|
||||||
UpdateVersionNumber
|
UpdateVersionNumber
|
||||||
PackageWindows "net462"
|
PackageWindows "netcoreapp3.0"
|
||||||
PackageLinux "net462" "linux-x64"
|
PackageLinux "net462" "linux-x64"
|
||||||
PackageMacOS "net462"
|
PackageLinux "netcoreapp3.0" "linux-x64"
|
||||||
PackageMacOSApp "net462"
|
PackageLinux "netcoreapp3.0" "linux-arm64"
|
||||||
|
PackageLinux "netcoreapp3.0" "linux-arm"
|
||||||
|
PackageMacOS "netcoreapp3.0"
|
||||||
|
PackageMacOSApp "netcoreapp3.0"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -54,6 +54,37 @@ const mapDispatchToProps = {
|
||||||
dispatchFetchTagDetails: fetchTagDetails
|
dispatchFetchTagDetails: fetchTagDetails
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function Logger(minimumLogLevel) {
|
||||||
|
this.minimumLogLevel = minimumLogLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.prototype.cleanse = function(message) {
|
||||||
|
const apikey = new RegExp(`access_token=${window.Radarr.apiKey}`, 'g');
|
||||||
|
return message.replace(apikey, 'access_token=(removed)');
|
||||||
|
};
|
||||||
|
|
||||||
|
Logger.prototype.log = function(logLevel, message) {
|
||||||
|
// see https://github.com/aspnet/AspNetCore/blob/21c9e2cc954c10719878839cd3f766aca5f57b34/src/SignalR/clients/ts/signalr/src/Utils.ts#L147
|
||||||
|
if (logLevel >= this.minimumLogLevel) {
|
||||||
|
switch (logLevel) {
|
||||||
|
case signalR.LogLevel.Critical:
|
||||||
|
case signalR.LogLevel.Error:
|
||||||
|
console.error(`[signalR] ${signalR.LogLevel[logLevel]}: ${this.cleanse(message)}`);
|
||||||
|
break;
|
||||||
|
case signalR.LogLevel.Warning:
|
||||||
|
console.warn(`[signalR] ${signalR.LogLevel[logLevel]}: ${this.cleanse(message)}`);
|
||||||
|
break;
|
||||||
|
case signalR.LogLevel.Information:
|
||||||
|
console.info(`[signalR] ${signalR.LogLevel[logLevel]}: ${this.cleanse(message)}`);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug
|
||||||
|
console.log(`[signalR] ${signalR.LogLevel[logLevel]}: ${this.cleanse(message)}`);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
class SignalRConnector extends Component {
|
class SignalRConnector extends Component {
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -71,6 +102,7 @@ class SignalRConnector extends Component {
|
||||||
const url = `${window.Radarr.urlBase}/signalr/messages`;
|
const url = `${window.Radarr.urlBase}/signalr/messages`;
|
||||||
|
|
||||||
this.connection = new signalR.HubConnectionBuilder()
|
this.connection = new signalR.HubConnectionBuilder()
|
||||||
|
.configureLogging(new Logger(signalR.LogLevel.Information))
|
||||||
.withUrl(`${url}?access_token=${window.Radarr.apiKey}`)
|
.withUrl(`${url}?access_token=${window.Radarr.apiKey}`)
|
||||||
.withAutomaticReconnect({
|
.withAutomaticReconnect({
|
||||||
nextRetryDelayInMilliseconds: (retryContext) => {
|
nextRetryDelayInMilliseconds: (retryContext) => {
|
||||||
|
|
|
@ -97,7 +97,6 @@ class GeneralSettings extends Component {
|
||||||
settings,
|
settings,
|
||||||
hasSettings,
|
hasSettings,
|
||||||
isResettingApiKey,
|
isResettingApiKey,
|
||||||
isMono,
|
|
||||||
isWindows,
|
isWindows,
|
||||||
isWindowsService,
|
isWindowsService,
|
||||||
mode,
|
mode,
|
||||||
|
@ -162,7 +161,7 @@ class GeneralSettings extends Component {
|
||||||
<UpdateSettings
|
<UpdateSettings
|
||||||
advancedSettings={advancedSettings}
|
advancedSettings={advancedSettings}
|
||||||
settings={settings}
|
settings={settings}
|
||||||
isMono={isMono}
|
isWindows={isWindows}
|
||||||
onInputChange={onInputChange}
|
onInputChange={onInputChange}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -203,7 +202,6 @@ GeneralSettings.propTypes = {
|
||||||
settings: PropTypes.object.isRequired,
|
settings: PropTypes.object.isRequired,
|
||||||
isResettingApiKey: PropTypes.bool.isRequired,
|
isResettingApiKey: PropTypes.bool.isRequired,
|
||||||
hasSettings: PropTypes.bool.isRequired,
|
hasSettings: PropTypes.bool.isRequired,
|
||||||
isMono: PropTypes.bool.isRequired,
|
|
||||||
isWindows: PropTypes.bool.isRequired,
|
isWindows: PropTypes.bool.isRequired,
|
||||||
isWindowsService: PropTypes.bool.isRequired,
|
isWindowsService: PropTypes.bool.isRequired,
|
||||||
mode: PropTypes.string.isRequired,
|
mode: PropTypes.string.isRequired,
|
||||||
|
|
|
@ -24,7 +24,6 @@ function createMapStateToProps() {
|
||||||
return {
|
return {
|
||||||
advancedSettings,
|
advancedSettings,
|
||||||
isResettingApiKey,
|
isResettingApiKey,
|
||||||
isMono: systemStatus.isMono,
|
|
||||||
isWindows: systemStatus.isWindows,
|
isWindows: systemStatus.isWindows,
|
||||||
isWindowsService: systemStatus.isWindows && systemStatus.mode === 'service',
|
isWindowsService: systemStatus.isWindows && systemStatus.mode === 'service',
|
||||||
mode: systemStatus.mode,
|
mode: systemStatus.mode,
|
||||||
|
|
|
@ -88,7 +88,7 @@ function HostSettings(props) {
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
|
|
||||||
{
|
{
|
||||||
enableSsl.value &&
|
enableSsl.value ?
|
||||||
<FormGroup
|
<FormGroup
|
||||||
advancedSettings={advancedSettings}
|
advancedSettings={advancedSettings}
|
||||||
isAdvanced={true}
|
isAdvanced={true}
|
||||||
|
@ -104,11 +104,12 @@ function HostSettings(props) {
|
||||||
onChange={onInputChange}
|
onChange={onInputChange}
|
||||||
{...sslPort}
|
{...sslPort}
|
||||||
/>
|
/>
|
||||||
</FormGroup>
|
</FormGroup> :
|
||||||
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
enableSsl.value &&
|
enableSsl.value ?
|
||||||
<FormGroup
|
<FormGroup
|
||||||
advancedSettings={advancedSettings}
|
advancedSettings={advancedSettings}
|
||||||
isAdvanced={true}
|
isAdvanced={true}
|
||||||
|
@ -123,11 +124,12 @@ function HostSettings(props) {
|
||||||
onChange={onInputChange}
|
onChange={onInputChange}
|
||||||
{...sslCertPath}
|
{...sslCertPath}
|
||||||
/>
|
/>
|
||||||
</FormGroup>
|
</FormGroup> :
|
||||||
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
enableSsl.value &&
|
enableSsl.value ?
|
||||||
<FormGroup
|
<FormGroup
|
||||||
advancedSettings={advancedSettings}
|
advancedSettings={advancedSettings}
|
||||||
isAdvanced={true}
|
isAdvanced={true}
|
||||||
|
@ -142,7 +144,8 @@ function HostSettings(props) {
|
||||||
onChange={onInputChange}
|
onChange={onInputChange}
|
||||||
{...sslCertPassword}
|
{...sslCertPassword}
|
||||||
/>
|
/>
|
||||||
</FormGroup>
|
</FormGroup> :
|
||||||
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,7 @@ function UpdateSettings(props) {
|
||||||
const {
|
const {
|
||||||
advancedSettings,
|
advancedSettings,
|
||||||
settings,
|
settings,
|
||||||
isMono,
|
isWindows,
|
||||||
onInputChange
|
onInputChange
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ function UpdateSettings(props) {
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
|
|
||||||
{
|
{
|
||||||
isMono &&
|
!isWindows &&
|
||||||
<div>
|
<div>
|
||||||
<FormGroup
|
<FormGroup
|
||||||
advancedSettings={advancedSettings}
|
advancedSettings={advancedSettings}
|
||||||
|
@ -110,7 +110,7 @@ function UpdateSettings(props) {
|
||||||
UpdateSettings.propTypes = {
|
UpdateSettings.propTypes = {
|
||||||
advancedSettings: PropTypes.bool.isRequired,
|
advancedSettings: PropTypes.bool.isRequired,
|
||||||
settings: PropTypes.object.isRequired,
|
settings: PropTypes.object.isRequired,
|
||||||
isMono: PropTypes.bool.isRequired,
|
isWindows: PropTypes.bool.isRequired,
|
||||||
onInputChange: PropTypes.func.isRequired
|
onInputChange: PropTypes.func.isRequired
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ class MediaManagement extends Component {
|
||||||
error,
|
error,
|
||||||
settings,
|
settings,
|
||||||
hasSettings,
|
hasSettings,
|
||||||
isMono,
|
isWindows,
|
||||||
onInputChange,
|
onInputChange,
|
||||||
onSavePress,
|
onSavePress,
|
||||||
...otherProps
|
...otherProps
|
||||||
|
@ -118,7 +118,7 @@ class MediaManagement extends Component {
|
||||||
legend="Importing"
|
legend="Importing"
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
isMono &&
|
!isWindows &&
|
||||||
<FormGroup
|
<FormGroup
|
||||||
advancedSettings={advancedSettings}
|
advancedSettings={advancedSettings}
|
||||||
isAdvanced={true}
|
isAdvanced={true}
|
||||||
|
@ -319,7 +319,7 @@ class MediaManagement extends Component {
|
||||||
</FieldSet>
|
</FieldSet>
|
||||||
|
|
||||||
{
|
{
|
||||||
advancedSettings && isMono &&
|
advancedSettings && !isWindows &&
|
||||||
<FieldSet
|
<FieldSet
|
||||||
legend="Permissions"
|
legend="Permissions"
|
||||||
>
|
>
|
||||||
|
@ -424,7 +424,7 @@ MediaManagement.propTypes = {
|
||||||
error: PropTypes.object,
|
error: PropTypes.object,
|
||||||
settings: PropTypes.object.isRequired,
|
settings: PropTypes.object.isRequired,
|
||||||
hasSettings: PropTypes.bool.isRequired,
|
hasSettings: PropTypes.bool.isRequired,
|
||||||
isMono: PropTypes.bool.isRequired,
|
isWindows: PropTypes.bool.isRequired,
|
||||||
onSavePress: PropTypes.func.isRequired,
|
onSavePress: PropTypes.func.isRequired,
|
||||||
onInputChange: PropTypes.func.isRequired
|
onInputChange: PropTypes.func.isRequired
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,7 +22,7 @@ function createMapStateToProps() {
|
||||||
advancedSettings,
|
advancedSettings,
|
||||||
...sectionSettings,
|
...sectionSettings,
|
||||||
hasPendingChanges: !_.isEmpty(namingSettings.pendingChanges) || sectionSettings.hasPendingChanges,
|
hasPendingChanges: !_.isEmpty(namingSettings.pendingChanges) || sectionSettings.hasPendingChanges,
|
||||||
isMono: systemStatus.isMono
|
isWindows: systemStatus.isWindows
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -15,7 +15,8 @@ class About extends Component {
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
version,
|
version,
|
||||||
isMonoRuntime,
|
isNetCore,
|
||||||
|
isMono,
|
||||||
isDocker,
|
isDocker,
|
||||||
runtimeVersion,
|
runtimeVersion,
|
||||||
migrationVersion,
|
migrationVersion,
|
||||||
|
@ -36,18 +37,26 @@ class About extends Component {
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{
|
{
|
||||||
isMonoRuntime &&
|
isMono &&
|
||||||
<DescriptionListItem
|
<DescriptionListItem
|
||||||
title="Mono Version"
|
title="Mono Version"
|
||||||
data={runtimeVersion}
|
data={runtimeVersion}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
isNetCore &&
|
||||||
|
<DescriptionListItem
|
||||||
|
title=".NET Core"
|
||||||
|
data={'Yes'}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
isDocker &&
|
isDocker &&
|
||||||
<DescriptionListItem
|
<DescriptionListItem
|
||||||
title="Docker"
|
title="Docker"
|
||||||
data={'True'}
|
data={'Yes'}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,7 +99,8 @@ class About extends Component {
|
||||||
|
|
||||||
About.propTypes = {
|
About.propTypes = {
|
||||||
version: PropTypes.string.isRequired,
|
version: PropTypes.string.isRequired,
|
||||||
isMonoRuntime: PropTypes.bool.isRequired,
|
isNetCore: PropTypes.bool.isRequired,
|
||||||
|
isMono: PropTypes.bool.isRequired,
|
||||||
runtimeVersion: PropTypes.string.isRequired,
|
runtimeVersion: PropTypes.string.isRequired,
|
||||||
isDocker: PropTypes.bool.isRequired,
|
isDocker: PropTypes.bool.isRequired,
|
||||||
migrationVersion: PropTypes.number.isRequired,
|
migrationVersion: PropTypes.number.isRequired,
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
|
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
|
||||||
<RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;osx-x64;linux-x64;linux-arm;linux-arm64</RuntimeIdentifiers>
|
||||||
|
<ExcludedRuntimeFrameworkPairs>win-x64:net462;osx-x64:net462;linux-arm:net462;linux-arm64:net462</ExcludedRuntimeFrameworkPairs>
|
||||||
|
|
||||||
<RadarrRootDir>$(MSBuildThisFileDirectory)..\</RadarrRootDir>
|
<RadarrRootDir>$(MSBuildThisFileDirectory)..\</RadarrRootDir>
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -38,15 +38,6 @@ namespace Marr.Data
|
||||||
|
|
||||||
private DbCommand _command;
|
private DbCommand _command;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Initializes a DataMapper for the given provider type and connection string.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="providerName">Ex: </param>
|
|
||||||
/// <param name="connectionString">The database connection string.</param>
|
|
||||||
public DataMapper(string providerName, string connectionString)
|
|
||||||
: this(DbProviderFactories.GetFactory(providerName), connectionString)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// A database provider agnostic initialization.
|
/// A database provider agnostic initialization.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>netstandard2.0</TargetFrameworks>
|
||||||
|
|
||||||
<AssemblyVersion>3.17.0.0</AssemblyVersion>
|
<AssemblyVersion>3.17.0.0</AssemblyVersion>
|
||||||
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
|
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
|
||||||
|
|
|
@ -1,68 +0,0 @@
|
||||||
/* Copyright (C) 2008 - 2011 Jordan Marr
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 3 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Data;
|
|
||||||
using System.Data.OleDb;
|
|
||||||
|
|
||||||
namespace Marr.Data.Parameters
|
|
||||||
{
|
|
||||||
public class OleDbTypeBuilder : IDbTypeBuilder
|
|
||||||
{
|
|
||||||
public Enum GetDbType(Type type)
|
|
||||||
{
|
|
||||||
if (type == typeof(String))
|
|
||||||
return OleDbType.VarChar;
|
|
||||||
|
|
||||||
if (type == typeof(Int32))
|
|
||||||
return OleDbType.Integer;
|
|
||||||
|
|
||||||
if (type == typeof(Decimal))
|
|
||||||
return OleDbType.Decimal;
|
|
||||||
|
|
||||||
if (type == typeof(DateTime))
|
|
||||||
return OleDbType.DBTimeStamp;
|
|
||||||
|
|
||||||
if (type == typeof(Boolean))
|
|
||||||
return OleDbType.Boolean;
|
|
||||||
|
|
||||||
if (type == typeof(Int16))
|
|
||||||
return OleDbType.SmallInt;
|
|
||||||
|
|
||||||
if (type == typeof(Int64))
|
|
||||||
return OleDbType.BigInt;
|
|
||||||
|
|
||||||
if (type == typeof(Double))
|
|
||||||
return OleDbType.Double;
|
|
||||||
|
|
||||||
if (type == typeof(Byte))
|
|
||||||
return OleDbType.Binary;
|
|
||||||
|
|
||||||
if (type == typeof(Byte[]))
|
|
||||||
return OleDbType.VarBinary;
|
|
||||||
|
|
||||||
if (type == typeof(Guid))
|
|
||||||
return OleDbType.Guid;
|
|
||||||
|
|
||||||
return OleDbType.Variant;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetDbType(IDbDataParameter param, Enum dbType)
|
|
||||||
{
|
|
||||||
var oleDbParam = (OleDbParameter)param;
|
|
||||||
oleDbParam.OleDbType = (OleDbType)dbType;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,71 +0,0 @@
|
||||||
/* Copyright (C) 2008 - 2011 Jordan Marr
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 3 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library. If not, see <http://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Data;
|
|
||||||
using System.Data.SqlClient;
|
|
||||||
|
|
||||||
namespace Marr.Data.Parameters
|
|
||||||
{
|
|
||||||
public class SqlDbTypeBuilder : IDbTypeBuilder
|
|
||||||
{
|
|
||||||
public Enum GetDbType(Type type)
|
|
||||||
{
|
|
||||||
if (type == typeof(String))
|
|
||||||
return SqlDbType.VarChar;
|
|
||||||
|
|
||||||
if (type == typeof(Int32))
|
|
||||||
return SqlDbType.Int;
|
|
||||||
|
|
||||||
if (type == typeof(Decimal))
|
|
||||||
return SqlDbType.Decimal;
|
|
||||||
|
|
||||||
if (type == typeof(DateTime))
|
|
||||||
return SqlDbType.DateTime;
|
|
||||||
|
|
||||||
if (type == typeof(Boolean))
|
|
||||||
return SqlDbType.Bit;
|
|
||||||
|
|
||||||
if (type == typeof(Int16))
|
|
||||||
return SqlDbType.SmallInt;
|
|
||||||
|
|
||||||
if (type == typeof(Int64))
|
|
||||||
return SqlDbType.BigInt;
|
|
||||||
|
|
||||||
if (type == typeof(Double))
|
|
||||||
return SqlDbType.Float;
|
|
||||||
|
|
||||||
if (type == typeof(Char))
|
|
||||||
return SqlDbType.Char;
|
|
||||||
|
|
||||||
if (type == typeof(Byte))
|
|
||||||
return SqlDbType.Binary;
|
|
||||||
|
|
||||||
if (type == typeof(Byte[]))
|
|
||||||
return SqlDbType.VarBinary;
|
|
||||||
|
|
||||||
if (type == typeof(Guid))
|
|
||||||
return SqlDbType.UniqueIdentifier;
|
|
||||||
|
|
||||||
return SqlDbType.Variant;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetDbType(IDbDataParameter param, Enum dbType)
|
|
||||||
{
|
|
||||||
var sqlDbParam = (SqlParameter)param;
|
|
||||||
sqlDbParam.SqlDbType = (SqlDbType)dbType;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>netstandard2.0</TargetFrameworks>
|
||||||
|
|
||||||
<Version>9.0.21022</Version>
|
<Version>9.0.21022</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
<PackageReference Include="NBuilder" Version="6.0.1" />
|
<PackageReference Include="NBuilder" Version="6.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -10,4 +14,4 @@
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
<ProjectReference Include="..\Radarr.Http\Radarr.Http.csproj" />
|
<ProjectReference Include="..\Radarr.Http\Radarr.Http.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="FluentValidation" Version="8.4.0" />
|
<PackageReference Include="FluentValidation" Version="8.4.0" />
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace NzbDrone.Api.System
|
||||||
AppData = _appFolderInfo.GetAppDataPath(),
|
AppData = _appFolderInfo.GetAppDataPath(),
|
||||||
OsName = _osInfo.Name,
|
OsName = _osInfo.Name,
|
||||||
OsVersion = _osInfo.Version,
|
OsVersion = _osInfo.Version,
|
||||||
IsMonoRuntime = PlatformInfo.IsMono,
|
IsNetCore = PlatformInfo.IsNetCore,
|
||||||
IsMono = PlatformInfo.IsMono,
|
IsMono = PlatformInfo.IsMono,
|
||||||
IsLinux = OsInfo.IsLinux,
|
IsLinux = OsInfo.IsLinux,
|
||||||
IsOsx = OsInfo.IsOsx,
|
IsOsx = OsInfo.IsOsx,
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
<PackageReference Include="Selenium.Firefox.WebDriver" Version="0.24.0" />
|
<PackageReference Include="Selenium.Firefox.WebDriver" Version="0.24.0" />
|
||||||
<PackageReference Include="Selenium.Support" Version="3.141.0" />
|
<PackageReference Include="Selenium.Support" Version="3.141.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -158,7 +158,7 @@ namespace NzbDrone.Common.Test.Http
|
||||||
var response = Subject.Get<HttpBinResource>(request);
|
var response = Subject.Get<HttpBinResource>(request);
|
||||||
|
|
||||||
response.Resource.Headers["Accept-Encoding"].ToString().Should().Be(compression);
|
response.Resource.Headers["Accept-Encoding"].ToString().Should().Be(compression);
|
||||||
response.Headers.ContentLength.Should().BeLessOrEqualTo(response.Content.Length);
|
response.Resource.Gzipped.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(HttpStatusCode.Unauthorized)]
|
[TestCase(HttpStatusCode.Unauthorized)]
|
||||||
|
@ -711,6 +711,7 @@ namespace NzbDrone.Common.Test.Http
|
||||||
public string Origin { get; set; }
|
public string Origin { get; set; }
|
||||||
public string Url { get; set; }
|
public string Url { get; set; }
|
||||||
public string Data { get; set; }
|
public string Data { get; set; }
|
||||||
|
public bool Gzipped { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class HttpCookieResource
|
public class HttpCookieResource
|
||||||
|
|
|
@ -223,7 +223,7 @@ namespace NzbDrone.Common.Test
|
||||||
public void get_actual_casing_should_return_actual_casing_for_local_dir_in_windows()
|
public void get_actual_casing_should_return_actual_casing_for_local_dir_in_windows()
|
||||||
{
|
{
|
||||||
WindowsOnly();
|
WindowsOnly();
|
||||||
var path = Directory.GetCurrentDirectory().Replace("c:\\","C:\\").Replace("system32", "System32");
|
var path = Directory.GetCurrentDirectory().Replace("c:\\","C:\\").Replace("d:\\","D:\\").Replace("system32", "System32");
|
||||||
|
|
||||||
path.ToUpper().GetActualCasing().Should().Be(path);
|
path.ToUpper().GetActualCasing().Should().Be(path);
|
||||||
path.ToLower().GetActualCasing().Should().Be(path);
|
path.ToLower().GetActualCasing().Should().Be(path);
|
||||||
|
@ -280,7 +280,7 @@ namespace NzbDrone.Common.Test
|
||||||
[Test]
|
[Test]
|
||||||
public void GetUpdateClientExePath()
|
public void GetUpdateClientExePath()
|
||||||
{
|
{
|
||||||
GetIAppDirectoryInfo().GetUpdateClientExePath().Should().BeEquivalentTo(@"C:\Temp\radarr_update\Radarr.Update.exe".AsOsAgnostic());
|
GetIAppDirectoryInfo().GetUpdateClientExePath(PlatformType.DotNet).Should().BeEquivalentTo(@"C:\Temp\radarr_update\Radarr.Update.exe".AsOsAgnostic());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -6,6 +6,7 @@ using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Model;
|
using NzbDrone.Common.Model;
|
||||||
using NzbDrone.Common.Processes;
|
using NzbDrone.Common.Processes;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
|
@ -162,7 +163,17 @@ namespace NzbDrone.Common.Test
|
||||||
{
|
{
|
||||||
var processStarted = new ManualResetEventSlim();
|
var processStarted = new ManualResetEventSlim();
|
||||||
|
|
||||||
var path = Path.Combine(TestContext.CurrentContext.TestDirectory, DummyApp.DUMMY_PROCCESS_NAME + ".exe");
|
string suffix;
|
||||||
|
if (OsInfo.IsWindows || PlatformInfo.IsMono)
|
||||||
|
{
|
||||||
|
suffix = ".exe";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
suffix = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
var path = Path.Combine(TestContext.CurrentContext.TestDirectory, DummyApp.DUMMY_PROCCESS_NAME + suffix);
|
||||||
var process = Subject.Start(path, onOutputDataReceived: (string data) => {
|
var process = Subject.Start(path, onOutputDataReceived: (string data) => {
|
||||||
if (data.StartsWith("Dummy process. ID:"))
|
if (data.StartsWith("Dummy process. ID:"))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,13 +1,19 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" />
|
<ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Dummy\Radarr.Test.Dummy.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Dummy\Radarr.Test.Dummy.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<Reference Include="System.ServiceProcess" />
|
<Reference Include="System.ServiceProcess" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -4,13 +4,13 @@ using System.ServiceProcess;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
|
using NzbDrone.Common.Processes;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
using NzbDrone.Test.Common.Categories;
|
using NzbDrone.Test.Common.Categories;
|
||||||
|
|
||||||
namespace NzbDrone.Common.Test
|
namespace NzbDrone.Common.Test
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
[Timeout(15000)]
|
|
||||||
public class ServiceProviderTests : TestBase<ServiceProvider>
|
public class ServiceProviderTests : TestBase<ServiceProvider>
|
||||||
{
|
{
|
||||||
private const string ALWAYS_INSTALLED_SERVICE = "SCardSvr"; //Smart Card
|
private const string ALWAYS_INSTALLED_SERVICE = "SCardSvr"; //Smart Card
|
||||||
|
@ -20,6 +20,9 @@ namespace NzbDrone.Common.Test
|
||||||
public void Setup()
|
public void Setup()
|
||||||
{
|
{
|
||||||
WindowsOnly();
|
WindowsOnly();
|
||||||
|
|
||||||
|
Mocker.SetConstant<IProcessProvider>(Mocker.Resolve<ProcessProvider>());
|
||||||
|
|
||||||
CleanupService();
|
CleanupService();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,4 +146,4 @@ namespace NzbDrone.Common.Test
|
||||||
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,12 @@ using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Messaging;
|
using NzbDrone.Common.Messaging;
|
||||||
using TinyIoC;
|
using TinyIoC;
|
||||||
|
|
||||||
|
#if NETCOREAPP3_0
|
||||||
|
using System.IO;
|
||||||
|
using System.Runtime.Loader;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace NzbDrone.Common.Composition
|
namespace NzbDrone.Common.Composition
|
||||||
{
|
{
|
||||||
public abstract class ContainerBuilderBase
|
public abstract class ContainerBuilderBase
|
||||||
|
@ -21,15 +27,82 @@ namespace NzbDrone.Common.Composition
|
||||||
assemblies.Add(OsInfo.IsWindows ? "Radarr.Windows" : "Radarr.Mono");
|
assemblies.Add(OsInfo.IsWindows ? "Radarr.Windows" : "Radarr.Mono");
|
||||||
assemblies.Add("Radarr.Common");
|
assemblies.Add("Radarr.Common");
|
||||||
|
|
||||||
|
#if !NETCOREAPP3_0
|
||||||
foreach (var assembly in assemblies)
|
foreach (var assembly in assemblies)
|
||||||
{
|
{
|
||||||
_loadedTypes.AddRange(Assembly.Load(assembly).GetTypes());
|
_loadedTypes.AddRange(Assembly.Load(assembly).GetTypes());
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
var _startupPath = AppDomain.CurrentDomain.BaseDirectory;
|
||||||
|
|
||||||
|
foreach (var assemblyName in assemblies)
|
||||||
|
{
|
||||||
|
_loadedTypes.AddRange(AssemblyLoadContext.Default.LoadFromAssemblyPath(Path.Combine(_startupPath, $"{assemblyName}.dll")).GetTypes());
|
||||||
|
}
|
||||||
|
|
||||||
|
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ContainerResolveEventHandler);
|
||||||
|
RegisterNativeResolver(new [] {"System.Data.SQLite.dll", "Radarr.Core.dll"});
|
||||||
|
#endif
|
||||||
|
|
||||||
Container = new Container(new TinyIoCContainer(), _loadedTypes);
|
Container = new Container(new TinyIoCContainer(), _loadedTypes);
|
||||||
AutoRegisterInterfaces();
|
AutoRegisterInterfaces();
|
||||||
Container.Register(args);
|
Container.Register(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if NETCOREAPP3_0
|
||||||
|
private static Assembly ContainerResolveEventHandler(object sender, ResolveEventArgs args)
|
||||||
|
{
|
||||||
|
var _resolver = new AssemblyDependencyResolver(args.RequestingAssembly.Location);
|
||||||
|
var assemblyPath = _resolver.ResolveAssemblyToPath(new AssemblyName(args.Name));
|
||||||
|
|
||||||
|
if (assemblyPath == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return AssemblyLoadContext.Default.LoadFromAssemblyPath(assemblyPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RegisterNativeResolver(IEnumerable<string> assemblyNames)
|
||||||
|
{
|
||||||
|
// This ensures we look for sqlite3 using libsqlite3.so.0 on Linux and not libsqlite3.so which
|
||||||
|
// is less likely to exist.
|
||||||
|
foreach (var name in assemblyNames)
|
||||||
|
{
|
||||||
|
var assembly = AssemblyLoadContext.Default.LoadFromAssemblyPath(
|
||||||
|
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, name)
|
||||||
|
);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
NativeLibrary.SetDllImportResolver(assembly, LoadNativeLib);
|
||||||
|
}
|
||||||
|
catch (InvalidOperationException)
|
||||||
|
{
|
||||||
|
// This can only be set once per assembly
|
||||||
|
// Catch required for NzbDrone.Host tests
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IntPtr LoadNativeLib(string libraryName, Assembly assembly, DllImportSearchPath? dllImportSearchPath)
|
||||||
|
{
|
||||||
|
var mappedName = libraryName;
|
||||||
|
if (OsInfo.IsLinux)
|
||||||
|
{
|
||||||
|
if (libraryName == "sqlite3")
|
||||||
|
{
|
||||||
|
mappedName = "libsqlite3.so.0";
|
||||||
|
}
|
||||||
|
else if (libraryName == "mediainfo")
|
||||||
|
{
|
||||||
|
mappedName = "libmediainfo.so.0";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NativeLibrary.Load(mappedName, assembly, dllImportSearchPath);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
private void AutoRegisterInterfaces()
|
private void AutoRegisterInterfaces()
|
||||||
{
|
{
|
||||||
|
|
|
@ -119,21 +119,26 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var configHome = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
|
// It seems that DoNotVerify is the mono behaviour even though .net docs specify a blank string
|
||||||
if (configHome == "/.config" ||
|
// should be returned if the data doesn't exist. For compatibility with .net core, explicitly
|
||||||
|
// set DoNotVerify (which makes sense given we're explicitly checking that the folder exists)
|
||||||
|
var configHome = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData, Environment.SpecialFolderOption.DoNotVerify);
|
||||||
|
if (configHome.IsNullOrWhiteSpace() ||
|
||||||
|
configHome == "/.config" ||
|
||||||
configHome.EndsWith("/.config") && !_diskProvider.FolderExists(configHome.GetParentPath()) ||
|
configHome.EndsWith("/.config") && !_diskProvider.FolderExists(configHome.GetParentPath()) ||
|
||||||
!_diskProvider.FolderExists(configHome))
|
!_diskProvider.FolderExists(configHome))
|
||||||
{
|
{
|
||||||
// Tell mono to use appData/.config as ApplicationData folder.
|
// Tell mono/netcore to use appData/.config as ApplicationData folder.
|
||||||
Environment.SetEnvironmentVariable("XDG_CONFIG_HOME", Path.Combine(_appFolderInfo.AppDataFolder, ".config"));
|
Environment.SetEnvironmentVariable("XDG_CONFIG_HOME", Path.Combine(_appFolderInfo.AppDataFolder, ".config"));
|
||||||
}
|
}
|
||||||
|
|
||||||
var dataHome = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
|
var dataHome = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData, Environment.SpecialFolderOption.DoNotVerify);
|
||||||
if (dataHome == "/.local/share" ||
|
if (dataHome.IsNullOrWhiteSpace() ||
|
||||||
|
dataHome == "/.local/share" ||
|
||||||
dataHome.EndsWith("/.local/share") && !_diskProvider.FolderExists(dataHome.GetParentPath().GetParentPath()) ||
|
dataHome.EndsWith("/.local/share") && !_diskProvider.FolderExists(dataHome.GetParentPath().GetParentPath()) ||
|
||||||
!_diskProvider.FolderExists(dataHome))
|
!_diskProvider.FolderExists(dataHome))
|
||||||
{
|
{
|
||||||
// Tell mono to use appData/.config/share as LocalApplicationData folder.
|
// Tell mono/netcore to use appData/.config/share as LocalApplicationData folder.
|
||||||
Environment.SetEnvironmentVariable("XDG_DATA_HOME", Path.Combine(_appFolderInfo.AppDataFolder, ".config/share"));
|
Environment.SetEnvironmentVariable("XDG_DATA_HOME", Path.Combine(_appFolderInfo.AppDataFolder, ".config/share"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AppDataFolder = Path.Combine(Environment.GetFolderPath(DATA_SPECIAL_FOLDER, Environment.SpecialFolderOption.None), "Radarr");
|
AppDataFolder = Path.Combine(Environment.GetFolderPath(DATA_SPECIAL_FOLDER, Environment.SpecialFolderOption.DoNotVerify), "Radarr");
|
||||||
}
|
}
|
||||||
|
|
||||||
StartUpFolder = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory.FullName;
|
StartUpFolder = new FileInfo(Assembly.GetExecutingAssembly().Location).Directory.FullName;
|
||||||
|
@ -46,4 +46,4 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
|
|
||||||
public string TempFolder { get; private set; }
|
public string TempFolder { get; private set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,8 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
public enum PlatformType
|
public enum PlatformType
|
||||||
{
|
{
|
||||||
DotNet = 0,
|
DotNet = 0,
|
||||||
Mono = 1
|
Mono = 1,
|
||||||
|
NetCore = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface IPlatformInfo
|
public interface IPlatformInfo
|
||||||
|
@ -26,6 +27,10 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
|
|
||||||
static PlatformInfo()
|
static PlatformInfo()
|
||||||
{
|
{
|
||||||
|
#if NETCOREAPP3_0
|
||||||
|
_platform = PlatformType.NetCore;
|
||||||
|
_version = new Version("3.0");
|
||||||
|
#else
|
||||||
if (Type.GetType("Mono.Runtime") != null)
|
if (Type.GetType("Mono.Runtime") != null)
|
||||||
{
|
{
|
||||||
_platform = PlatformType.Mono;
|
_platform = PlatformType.Mono;
|
||||||
|
@ -36,11 +41,13 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
_platform = PlatformType.DotNet;
|
_platform = PlatformType.DotNet;
|
||||||
_version = GetDotNetVersion();
|
_version = GetDotNetVersion();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PlatformType Platform => _platform;
|
public static PlatformType Platform => _platform;
|
||||||
public static bool IsMono => Platform == PlatformType.Mono;
|
public static bool IsMono => Platform == PlatformType.Mono;
|
||||||
public static bool IsDotNet => Platform == PlatformType.DotNet;
|
public static bool IsDotNet => Platform == PlatformType.DotNet;
|
||||||
|
public static bool IsNetCore => Platform == PlatformType.NetCore;
|
||||||
|
|
||||||
public static string PlatformName
|
public static string PlatformName
|
||||||
{
|
{
|
||||||
|
@ -50,8 +57,14 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
{
|
{
|
||||||
return ".NET";
|
return ".NET";
|
||||||
}
|
}
|
||||||
|
else if (IsMono)
|
||||||
return "Mono";
|
{
|
||||||
|
return "Mono";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return ".NET Core";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,10 @@ using System.ServiceProcess;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common.Processes;
|
using NzbDrone.Common.Processes;
|
||||||
|
|
||||||
|
#if NETCOREAPP3_0
|
||||||
|
using Microsoft.Extensions.Hosting.WindowsServices;
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace NzbDrone.Common.EnvironmentInfo
|
namespace NzbDrone.Common.EnvironmentInfo
|
||||||
{
|
{
|
||||||
public class RuntimeInfo : IRuntimeInfo
|
public class RuntimeInfo : IRuntimeInfo
|
||||||
|
@ -55,7 +59,12 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !NETCOREAPP3_0
|
||||||
public static bool IsUserInteractive => Environment.UserInteractive;
|
public static bool IsUserInteractive => Environment.UserInteractive;
|
||||||
|
#else
|
||||||
|
// Note that Environment.UserInteractive is always true on net core: https://stackoverflow.com/a/57325783
|
||||||
|
public static bool IsUserInteractive => OsInfo.IsWindows && !WindowsServiceHelpers.IsWindowsService();
|
||||||
|
#endif
|
||||||
|
|
||||||
bool IRuntimeInfo.IsUserInteractive => IsUserInteractive;
|
bool IRuntimeInfo.IsUserInteractive => IsUserInteractive;
|
||||||
|
|
||||||
|
@ -63,6 +72,11 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
if (OsInfo.IsNotWindows)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
|
var principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
|
||||||
|
|
|
@ -137,5 +137,15 @@ namespace NzbDrone.Common.Extensions
|
||||||
{
|
{
|
||||||
return list.Contains(source);
|
return list.Contains(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string ConcatToString<TSource>(this IEnumerable<TSource> source, string separator = ", ")
|
||||||
|
{
|
||||||
|
return string.Join(separator, source.Select(x => x.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string ConcatToString<TSource>(this IEnumerable<TSource> source, Func<TSource, string> predicate, string separator = ", ")
|
||||||
|
{
|
||||||
|
return string.Join(separator, source.Select(predicate));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace NzbDrone.Common.Extensions
|
||||||
private const string DB_RESTORE = "radarr.restore";
|
private const string DB_RESTORE = "radarr.restore";
|
||||||
private const string LOG_DB = "logs.db";
|
private const string LOG_DB = "logs.db";
|
||||||
private const string NLOG_CONFIG_FILE = "nlog.config";
|
private const string NLOG_CONFIG_FILE = "nlog.config";
|
||||||
private const string UPDATE_CLIENT_EXE = "Radarr.Update.exe";
|
private const string UPDATE_CLIENT_EXE_NAME = "Radarr.Update";
|
||||||
|
|
||||||
private static readonly string UPDATE_SANDBOX_FOLDER_NAME = "radarr_update" + Path.DirectorySeparatorChar;
|
private static readonly string UPDATE_SANDBOX_FOLDER_NAME = "radarr_update" + Path.DirectorySeparatorChar;
|
||||||
private static readonly string UPDATE_PACKAGE_FOLDER_NAME = "Radarr" + Path.DirectorySeparatorChar;
|
private static readonly string UPDATE_PACKAGE_FOLDER_NAME = "Radarr" + Path.DirectorySeparatorChar;
|
||||||
|
@ -221,6 +221,21 @@ namespace NzbDrone.Common.Extensions
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string ProcessNameToExe(this string processName, PlatformType runtime)
|
||||||
|
{
|
||||||
|
if (OsInfo.IsWindows || runtime != PlatformType.NetCore)
|
||||||
|
{
|
||||||
|
processName += ".exe";
|
||||||
|
}
|
||||||
|
|
||||||
|
return processName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string ProcessNameToExe(this string processName)
|
||||||
|
{
|
||||||
|
return processName.ProcessNameToExe(PlatformInfo.Platform);
|
||||||
|
}
|
||||||
|
|
||||||
public static string GetAppDataPath(this IAppFolderInfo appFolderInfo)
|
public static string GetAppDataPath(this IAppFolderInfo appFolderInfo)
|
||||||
{
|
{
|
||||||
return appFolderInfo.AppDataFolder;
|
return appFolderInfo.AppDataFolder;
|
||||||
|
@ -281,9 +296,9 @@ namespace NzbDrone.Common.Extensions
|
||||||
return Path.Combine(GetUpdatePackageFolder(appFolderInfo), UPDATE_CLIENT_FOLDER_NAME);
|
return Path.Combine(GetUpdatePackageFolder(appFolderInfo), UPDATE_CLIENT_FOLDER_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetUpdateClientExePath(this IAppFolderInfo appFolderInfo)
|
public static string GetUpdateClientExePath(this IAppFolderInfo appFolderInfo, PlatformType runtime)
|
||||||
{
|
{
|
||||||
return Path.Combine(GetUpdateSandboxFolder(appFolderInfo), UPDATE_CLIENT_EXE);
|
return Path.Combine(GetUpdateSandboxFolder(appFolderInfo), UPDATE_CLIENT_EXE_NAME).ProcessNameToExe(runtime);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetDatabase(this IAppFolderInfo appFolderInfo)
|
public static string GetDatabase(this IAppFolderInfo appFolderInfo)
|
||||||
|
|
|
@ -4,7 +4,11 @@
|
||||||
{
|
{
|
||||||
public static readonly HttpAccept Rss = new HttpAccept("application/rss+xml, text/rss+xml, application/xml, text/xml");
|
public static readonly HttpAccept Rss = new HttpAccept("application/rss+xml, text/rss+xml, application/xml, text/xml");
|
||||||
public static readonly HttpAccept Json = new HttpAccept("application/json");
|
public static readonly HttpAccept Json = new HttpAccept("application/json");
|
||||||
|
#if NETCOREAPP3_0
|
||||||
|
public static readonly HttpAccept JsonCharset = new HttpAccept("application/json; charset=utf-8");
|
||||||
|
#else
|
||||||
public static readonly HttpAccept JsonCharset = new HttpAccept("application/json;charset=utf-8");
|
public static readonly HttpAccept JsonCharset = new HttpAccept("application/json;charset=utf-8");
|
||||||
|
#endif
|
||||||
public static readonly HttpAccept Html = new HttpAccept("text/html");
|
public static readonly HttpAccept Html = new HttpAccept("text/html");
|
||||||
|
|
||||||
public string Value { get; private set; }
|
public string Value { get; private set; }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="DotNet4.SocksProxy" Version="1.4.0.1" />
|
<PackageReference Include="DotNet4.SocksProxy" Version="1.4.0.1" />
|
||||||
|
@ -11,8 +11,15 @@
|
||||||
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
|
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
|
||||||
<PackageReference Include="System.Data.SQLite.Core.Lidarr" Version="1.0.111.0-5" />
|
<PackageReference Include="System.Data.SQLite.Core.Lidarr" Version="1.0.111.0-5" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.0'">
|
||||||
<Reference Include="System.Configuration.Install" />
|
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.6.0" />
|
||||||
|
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.6.0" />
|
||||||
|
<PackageReference Include="System.Runtime.Loader" Version="4.3.0" />
|
||||||
|
<PackageReference Include="System.ServiceProcess.ServiceController" Version="4.6.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="3.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Win32.Registry" Version="4.6.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<Reference Include="System.ServiceProcess" />
|
<Reference Include="System.ServiceProcess" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Specialized;
|
|
||||||
using System.Configuration.Install;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.ServiceProcess;
|
using System.ServiceProcess;
|
||||||
|
@ -62,30 +60,36 @@ namespace NzbDrone.Common
|
||||||
|
|
||||||
public virtual void Install(string serviceName)
|
public virtual void Install(string serviceName)
|
||||||
{
|
{
|
||||||
|
|
||||||
_logger.Info("Installing service '{0}'", serviceName);
|
_logger.Info("Installing service '{0}'", serviceName);
|
||||||
|
|
||||||
|
var args = $"create {serviceName} " +
|
||||||
|
$"DisplayName= \"{serviceName}\" " +
|
||||||
|
$"binpath= \"{Process.GetCurrentProcess().MainModule.FileName}\" " +
|
||||||
|
"start= auto " +
|
||||||
|
"depend= EventLog/Tcpip/http " +
|
||||||
|
"obj= \"NT AUTHORITY\\LocalService\"";
|
||||||
|
|
||||||
var installer = new ServiceProcessInstaller
|
_logger.Info(args);
|
||||||
{
|
|
||||||
Account = ServiceAccount.LocalSystem
|
|
||||||
};
|
|
||||||
|
|
||||||
var serviceInstaller = new ServiceInstaller();
|
var installOutput = _processProvider.StartAndCapture("sc.exe", args);
|
||||||
|
|
||||||
|
if (installOutput.ExitCode != 0)
|
||||||
|
{
|
||||||
|
_logger.Error($"Failed to install service: {installOutput.Lines.Select(x => x.Content).ConcatToString("\n")}");
|
||||||
|
throw new ApplicationException("Failed to install service");
|
||||||
|
}
|
||||||
|
|
||||||
string[] cmdline = { @"/assemblypath=" + Process.GetCurrentProcess().MainModule.FileName };
|
_logger.Info(installOutput.Lines.Select(x => x.Content).ConcatToString("\n"));
|
||||||
|
|
||||||
var context = new InstallContext("service_install.log", cmdline);
|
var descOutput = _processProvider.StartAndCapture("sc.exe", $"description {serviceName} \"Radarr Application Server\"");
|
||||||
serviceInstaller.Context = context;
|
if (descOutput.ExitCode != 0)
|
||||||
serviceInstaller.DisplayName = serviceName;
|
{
|
||||||
serviceInstaller.ServiceName = serviceName;
|
_logger.Error($"Failed to install service: {descOutput.Lines.Select(x => x.Content).ConcatToString("\n")}");
|
||||||
serviceInstaller.Description = "Radarr Application Server";
|
throw new ApplicationException("Failed to install service");
|
||||||
serviceInstaller.StartType = ServiceStartMode.Automatic;
|
}
|
||||||
serviceInstaller.ServicesDependedOn = new[] { "EventLog", "Tcpip", "http" };
|
|
||||||
|
|
||||||
serviceInstaller.Parent = installer;
|
_logger.Info(descOutput.Lines.Select(x => x.Content).ConcatToString("\n"));
|
||||||
|
|
||||||
serviceInstaller.Install(new ListDictionary());
|
|
||||||
|
|
||||||
_logger.Info("Service Has installed successfully.");
|
_logger.Info("Service Has installed successfully.");
|
||||||
}
|
}
|
||||||
|
@ -96,12 +100,8 @@ namespace NzbDrone.Common
|
||||||
|
|
||||||
Stop(serviceName);
|
Stop(serviceName);
|
||||||
|
|
||||||
var serviceInstaller = new ServiceInstaller();
|
var output = _processProvider.StartAndCapture("sc.exe", $"delete {serviceName}");
|
||||||
|
_logger.Info(output.Lines.Select(x => x.Content).ConcatToString("\n"));
|
||||||
var context = new InstallContext("service_uninstall.log", null);
|
|
||||||
serviceInstaller.Context = context;
|
|
||||||
serviceInstaller.ServiceName = serviceName;
|
|
||||||
serviceInstaller.Uninstall(null);
|
|
||||||
|
|
||||||
_logger.Info("{0} successfully uninstalled", serviceName);
|
_logger.Info("{0} successfully uninstalled", serviceName);
|
||||||
}
|
}
|
||||||
|
@ -228,4 +228,4 @@ namespace NzbDrone.Common
|
||||||
_processProvider.Start("sc.exe", $"sdset {serviceName} {dacls}").WaitForExit();
|
_processProvider.Start("sc.exe", $"sdset {serviceName} {dacls}").WaitForExit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
|
|
||||||
<ApplicationIcon>..\NzbDrone.Host\Radarr.ico</ApplicationIcon>
|
<ApplicationIcon>..\NzbDrone.Host\Radarr.ico</ApplicationIcon>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
|
|
|
@ -156,7 +156,7 @@ namespace NzbDrone.Core.Test.Download
|
||||||
|
|
||||||
Mocker.GetMock<IIndexerStatusService>()
|
Mocker.GetMock<IIndexerStatusService>()
|
||||||
.Verify(v => v.RecordFailure(It.IsAny<int>(),
|
.Verify(v => v.RecordFailure(It.IsAny<int>(),
|
||||||
It.IsInRange<TimeSpan>(TimeSpan.FromMinutes(4.9), TimeSpan.FromMinutes(5.1), Range.Inclusive)), Times.Once());
|
It.IsInRange<TimeSpan>(TimeSpan.FromMinutes(4.9), TimeSpan.FromMinutes(5.1), Moq.Range.Inclusive)), Times.Once());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
using System;
|
|
||||||
using NUnit.Framework;
|
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
|
||||||
using NzbDrone.Core.HealthCheck.Checks;
|
|
||||||
using NzbDrone.Core.Test.Framework;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.HealthCheck.Checks
|
|
||||||
{
|
|
||||||
[TestFixture]
|
|
||||||
public class DotnetVersionCheckFixture : CoreTest<DotnetVersionCheck>
|
|
||||||
{
|
|
||||||
private void GivenOutput(string version)
|
|
||||||
{
|
|
||||||
WindowsOnly();
|
|
||||||
|
|
||||||
Mocker.GetMock<IPlatformInfo>()
|
|
||||||
.SetupGet(s => s.Version)
|
|
||||||
.Returns(new Version(version));
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestCase("4.7.2")]
|
|
||||||
[TestCase("4.8")]
|
|
||||||
public void should_return_ok(string version)
|
|
||||||
{
|
|
||||||
GivenOutput(version);
|
|
||||||
|
|
||||||
Subject.Check().ShouldBeOk();
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestCase("4.6.2")]
|
|
||||||
[TestCase("4.7")]
|
|
||||||
[TestCase("4.7.1")]
|
|
||||||
public void should_return_notice(string version)
|
|
||||||
{
|
|
||||||
GivenOutput(version);
|
|
||||||
|
|
||||||
Subject.Check().ShouldBeNotice();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void should_return_warning(string version)
|
|
||||||
{
|
|
||||||
GivenOutput(version);
|
|
||||||
|
|
||||||
Subject.Check().ShouldBeWarning();
|
|
||||||
}
|
|
||||||
|
|
||||||
[TestCase("4.5")]
|
|
||||||
[TestCase("4.5.2")]
|
|
||||||
[TestCase("4.6.1")]
|
|
||||||
public void should_return_error(string version)
|
|
||||||
{
|
|
||||||
GivenOutput(version);
|
|
||||||
|
|
||||||
Subject.Check().ShouldBeError();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using FizzWare.NBuilder;
|
using FizzWare.NBuilder;
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using Microsoft.Practices.ObjectBuilder2;
|
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NzbDrone.Core.Housekeeping.Housekeepers;
|
using NzbDrone.Core.Housekeeping.Housekeepers;
|
||||||
using NzbDrone.Core.Jobs;
|
using NzbDrone.Core.Jobs;
|
||||||
|
@ -24,7 +24,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers
|
||||||
|
|
||||||
Subject.Clean();
|
Subject.Clean();
|
||||||
|
|
||||||
AllStoredModels.ForEach(t => t.LastExecution.Should().NotBeAfter(DateTime.UtcNow));
|
AllStoredModels.ToList().ForEach(t => t.LastExecution.Should().NotBeAfter(DateTime.UtcNow));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -41,7 +41,7 @@ namespace NzbDrone.Core.Test.Housekeeping.Housekeepers
|
||||||
|
|
||||||
Subject.Clean();
|
Subject.Clean();
|
||||||
|
|
||||||
AllStoredModels.ForEach(t => t.LastExecution.Should().Be(expectedTime));
|
AllStoredModels.ToList().ForEach(t => t.LastExecution.Should().Be(expectedTime));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,9 +81,13 @@ namespace NzbDrone.Core.Test.MediaFiles
|
||||||
var imported = Builder<History.History>.CreateNew()
|
var imported = Builder<History.History>.CreateNew()
|
||||||
.With(h => h.EventType = HistoryEventType.DownloadFolderImported)
|
.With(h => h.EventType = HistoryEventType.DownloadFolderImported)
|
||||||
.With(h => h.SourceTitle = "My Movie 2018.mkv").Build();
|
.With(h => h.SourceTitle = "My Movie 2018.mkv").Build();
|
||||||
|
|
||||||
Mocker.GetMock<IHistoryService>().Setup(s => s.GetByMovieId(It.IsAny<int>(), null))
|
Mocker.GetMock<IHistoryService>().Setup(s => s.GetByMovieId(It.IsAny<int>(), null))
|
||||||
.Returns(new List<History.History> {imported});
|
.Returns(new List<History.History> {imported});
|
||||||
|
|
||||||
|
Mocker.GetMock<IParsingService>().Setup(s => s.ParseMovieInfo("My Movie 2018.mkv", It.IsAny<List<object>>()))
|
||||||
|
.Returns(_newInfo);
|
||||||
|
|
||||||
ExecuteCommand();
|
ExecuteCommand();
|
||||||
|
|
||||||
Mocker.GetMock<IParsingService>().Verify(s => s.ParseMovieInfo("My Movie 2018.mkv", It.IsAny<List<object>>()));
|
Mocker.GetMock<IParsingService>().Verify(s => s.ParseMovieInfo("My Movie 2018.mkv", It.IsAny<List<object>>()));
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
<PackageReference Include="NBuilder" Version="6.0.1" />
|
<PackageReference Include="NBuilder" Version="6.0.1" />
|
||||||
<PackageReference Include="System.Data.SQLite.Core.Lidarr" Version="1.0.111.0-5" />
|
<PackageReference Include="System.Data.SQLite.Core.Lidarr" Version="1.0.111.0-5" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -10,6 +14,9 @@
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
|
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<RuntimeFiles Include="..\Runtimes\$(RuntimeIdentifier)\*"/>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\..\Logo\1024.png">
|
<None Include="..\..\Logo\1024.png">
|
||||||
<Link>Files\1024.png</Link>
|
<Link>Files\1024.png</Link>
|
||||||
|
@ -19,24 +26,10 @@
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Target Name="CopyWindowsRuntimesOnBuild" AfterTargets="AfterBuild" Condition="'$(RuntimeIdentifier)'=='win-x64'">
|
<Target Name="CopyRuntimeFilesOnBuild" AfterTargets="AfterBuild" >
|
||||||
<Copy SourceFiles="..\Libraries\MediaInfo\MediaInfo.dll" DestinationFolder="$(OutDir)" />
|
<Copy SourceFiles="@(RuntimeFiles)" DestinationFolder="$(OutDir)" />
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="CopyWindowsRuntimesOnPublish" AfterTargets="Publish" Condition="'$(RuntimeIdentifier)'=='win-x64'">
|
<Target Name="CopyRuntimeFilesOnPublish" AfterTargets="Publish" >
|
||||||
<Copy SourceFiles="..\Libraries\MediaInfo\MediaInfo.dll" DestinationFolder="$(PublishDir)" />
|
<Copy SourceFiles="@(RuntimeFiles)" DestinationFolder="$(PublishDir)" />
|
||||||
</Target>
|
|
||||||
<Target Name="CopyMacOSRuntimesOnBuild" AfterTargets="AfterBuild" Condition="'$(RuntimeIdentifier)'=='osx-x64'">
|
|
||||||
<Copy SourceFiles="..\Libraries\MediaInfo\libmediainfo.dylib" DestinationFolder="$(OutDir)" />
|
|
||||||
<Copy SourceFiles="..\NzbDrone.Core\Radarr.Core.dll.config" DestinationFolder="$(OutDir)" />
|
|
||||||
</Target>
|
|
||||||
<Target Name="CopyMacOSRuntimesOnPublish" AfterTargets="Publish" Condition="'$(RuntimeIdentifier)'=='osx-x64'">
|
|
||||||
<Copy SourceFiles="..\Libraries\MediaInfo\libmediainfo.dylib" DestinationFolder="$(PublishDir)" />
|
|
||||||
<Copy SourceFiles="..\NzbDrone.Core\Radarr.Core.dll.config" DestinationFolder="$(PublishDir)" />
|
|
||||||
</Target>
|
|
||||||
<Target Name="CopyLinuxRuntimesOnBuild" AfterTargets="AfterBuild" Condition="'$(RuntimeIdentifier)'=='linux-x64'">
|
|
||||||
<Copy SourceFiles="..\NzbDrone.Core\Radarr.Core.dll.config" DestinationFolder="$(OutDir)" />
|
|
||||||
</Target>
|
|
||||||
<Target Name="CopyLinuxRuntimesOnPublish" AfterTargets="Publish" Condition="'$(RuntimeIdentifier)'=='linux-x64'">
|
|
||||||
<Copy SourceFiles="..\NzbDrone.Core\Radarr.Core.dll.config" DestinationFolder="$(PublishDir)" />
|
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -25,6 +25,7 @@ namespace NzbDrone.Core.Test.UpdateTests
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
[Platform(Exclude="NetCore")]
|
||||||
public void finds_update_when_version_lower()
|
public void finds_update_when_version_lower()
|
||||||
{
|
{
|
||||||
UseRealHttp();
|
UseRealHttp();
|
||||||
|
|
|
@ -8,8 +8,6 @@ using NzbDrone.Core.Messaging.Commands;
|
||||||
using NzbDrone.Core.Messaging.Events;
|
using NzbDrone.Core.Messaging.Events;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Movies.Events;
|
using NzbDrone.Core.Movies.Events;
|
||||||
using System.Collections.Generic;
|
|
||||||
using NzbDrone.Core.Languages;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Blacklisting
|
namespace NzbDrone.Core.Blacklisting
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime.Remoting.Messaging;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.CustomFormats
|
namespace NzbDrone.Core.CustomFormats
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,10 +3,8 @@ using System.Collections.Generic;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using System.Web.Hosting;
|
|
||||||
using Marr.Data;
|
using Marr.Data;
|
||||||
using Marr.Data.QGen;
|
using Marr.Data.QGen;
|
||||||
using NLog;
|
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Core.Datastore.Events;
|
using NzbDrone.Core.Datastore.Events;
|
||||||
using NzbDrone.Core.Datastore.Extensions;
|
using NzbDrone.Core.Datastore.Extensions;
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using FluentMigrator;
|
using FluentMigrator;
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
using NzbDrone.Common.Serializer;
|
using NzbDrone.Common.Serializer;
|
||||||
using NzbDrone.Core.Datastore.Migration.Framework;
|
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Datastore.Migration
|
namespace NzbDrone.Core.Datastore.Migration
|
||||||
{
|
{
|
||||||
|
// this is here to resolve ambiguity in GetValueOrDefault extension method in net core 3
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
[Migration(85)]
|
[Migration(85)]
|
||||||
public class expand_transmission_urlbase : NzbDroneMigrationBase
|
public class expand_transmission_urlbase : NzbDroneMigrationBase
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using FluentMigrator;
|
using FluentMigrator;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
using NzbDrone.Common.Serializer;
|
using NzbDrone.Common.Serializer;
|
||||||
using NzbDrone.Core.Datastore.Migration.Framework;
|
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Datastore.Migration
|
namespace NzbDrone.Core.Datastore.Migration
|
||||||
{
|
{
|
||||||
|
// this is here to resolve ambiguity in GetValueOrDefault extension method in net core 3
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
[Migration(86)]
|
[Migration(86)]
|
||||||
public class pushbullet_device_ids : NzbDroneMigrationBase
|
public class pushbullet_device_ids : NzbDroneMigrationBase
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,12 +2,14 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using FluentMigrator;
|
using FluentMigrator;
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
using NzbDrone.Common.Serializer;
|
using NzbDrone.Common.Serializer;
|
||||||
using NzbDrone.Core.Datastore.Migration.Framework;
|
using NzbDrone.Core.Datastore.Migration.Framework;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Datastore.Migration
|
namespace NzbDrone.Core.Datastore.Migration
|
||||||
{
|
{
|
||||||
|
// this is here to resolve ambiguity in GetValueOrDefault extension method in net core 3
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
[Migration(88)]
|
[Migration(88)]
|
||||||
public class pushbullet_devices_channels_list : NzbDroneMigrationBase
|
public class pushbullet_devices_channels_list : NzbDroneMigrationBase
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,11 +5,13 @@ using NzbDrone.Core.Datastore.Converters;
|
||||||
using NzbDrone.Core.Languages;
|
using NzbDrone.Core.Languages;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Datastore.Migration
|
namespace NzbDrone.Core.Datastore.Migration
|
||||||
{
|
{
|
||||||
|
// this is here to resolve ambiguity in GetValueOrDefault extension method in net core 3
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
[Migration(154)]
|
[Migration(154)]
|
||||||
public class add_language_to_files_history_blacklist : NzbDroneMigrationBase
|
public class add_language_to_files_history_blacklist : NzbDroneMigrationBase
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,7 +3,6 @@ using System.Linq;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using NzbDrone.Common.Disk;
|
using NzbDrone.Common.Disk;
|
||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
using NzbDrone.Core.MediaFiles.TorrentInfo;
|
using NzbDrone.Core.MediaFiles.TorrentInfo;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.Core.Configuration;
|
using NzbDrone.Core.Configuration;
|
||||||
|
@ -16,6 +15,9 @@ using NzbDrone.Core.Organizer;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Download.Clients.Deluge
|
namespace NzbDrone.Core.Download.Clients.Deluge
|
||||||
{
|
{
|
||||||
|
// this is here to resolve ambiguity in GetValueOrDefault extension method in net core 3
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
public class Deluge : TorrentClientBase<DelugeSettings>
|
public class Deluge : TorrentClientBase<DelugeSettings>
|
||||||
{
|
{
|
||||||
private readonly IDelugeProxy _proxy;
|
private readonly IDelugeProxy _proxy;
|
||||||
|
|
|
@ -6,7 +6,6 @@ using System.Linq;
|
||||||
using FluentValidation.Results;
|
using FluentValidation.Results;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common.Disk;
|
using NzbDrone.Common.Disk;
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
using NzbDrone.Core.Configuration;
|
using NzbDrone.Core.Configuration;
|
||||||
using NzbDrone.Core.Exceptions;
|
using NzbDrone.Core.Exceptions;
|
||||||
|
@ -17,6 +16,9 @@ using NzbDrone.Core.Organizer;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Download.Clients.Nzbget
|
namespace NzbDrone.Core.Download.Clients.Nzbget
|
||||||
{
|
{
|
||||||
|
// this is here to resolve ambiguity in GetValueOrDefault extension method in net core 3
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
public class Nzbget : UsenetClientBase<NzbgetSettings>
|
public class Nzbget : UsenetClientBase<NzbgetSettings>
|
||||||
{
|
{
|
||||||
private readonly INzbgetProxy _proxy;
|
private readonly INzbgetProxy _proxy;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using System.Linq;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common.Instrumentation.Extensions;
|
using NzbDrone.Common.Instrumentation.Extensions;
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
|
@ -16,7 +15,6 @@ using NzbDrone.Core.Movies;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using NzbDrone.Core.Parser;
|
using NzbDrone.Core.Parser;
|
||||||
using NzbDrone.Core.IndexerSearch;
|
|
||||||
using NzbDrone.Core.IndexerSearch.Definitions;
|
using NzbDrone.Core.IndexerSearch.Definitions;
|
||||||
|
|
||||||
namespace NzbDrone.Core.MetadataSource.PreDB
|
namespace NzbDrone.Core.MetadataSource.PreDB
|
||||||
|
|
|
@ -368,8 +368,7 @@ namespace NzbDrone.Core.Parser
|
||||||
value = value.ToLowerInvariant();
|
value = value.ToLowerInvariant();
|
||||||
|
|
||||||
//Remove all accents
|
//Remove all accents
|
||||||
var bytes = Encoding.GetEncoding("ISO-8859-8").GetBytes(value);
|
value = value.RemoveAccent();
|
||||||
value = Encoding.ASCII.GetString(bytes);
|
|
||||||
|
|
||||||
//Replace spaces
|
//Replace spaces
|
||||||
value = Regex.Replace(value, @"\s", "-", RegexOptions.Compiled);
|
value = Regex.Replace(value, @"\s", "-", RegexOptions.Compiled);
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="System.Memory" Version="4.5.3" />
|
<PackageReference Include="System.Memory" Version="4.5.3" />
|
||||||
|
<PackageReference Include="System.ServiceModel.Syndication" Version="4.6.0" />
|
||||||
<PackageReference Include="FluentMigrator.Runner" Version="4.0.0-alpha.268" />
|
<PackageReference Include="FluentMigrator.Runner" Version="4.0.0-alpha.268" />
|
||||||
<PackageReference Include="FluentMigrator.Runner.SQLite" Version="4.0.0-alpha.268" />
|
<PackageReference Include="FluentMigrator.Runner.SQLite" Version="4.0.0-alpha.268" />
|
||||||
<PackageReference Include="FluentValidation" Version="8.4.0" />
|
<PackageReference Include="FluentValidation" Version="8.4.0" />
|
||||||
|
@ -20,33 +21,22 @@
|
||||||
<ProjectReference Include="..\MonoTorrent\MonoTorrent.csproj" />
|
<ProjectReference Include="..\MonoTorrent\MonoTorrent.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<Reference Include="System.Web" />
|
<Reference Include="System.Web" />
|
||||||
<Reference Include="System.Web.Extensions" />
|
<Reference Include="System.Web.Extensions" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<RuntimeFiles Include="..\Runtimes\$(RuntimeIdentifier)\*"/>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="..\..\Logo\64.png">
|
<EmbeddedResource Include="..\..\Logo\64.png">
|
||||||
<Link>Resources\Logo\64.png</Link>
|
<Link>Resources\Logo\64.png</Link>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Target Name="CopyWindowsRuntimesOnBuild" AfterTargets="AfterBuild" Condition="'$(RuntimeIdentifier)'=='win-x64'">
|
<Target Name="CopyRuntimeFilesOnBuild" AfterTargets="AfterBuild" >
|
||||||
<Copy SourceFiles="..\Libraries\MediaInfo\MediaInfo.dll" DestinationFolder="$(OutDir)" />
|
<Copy SourceFiles="@(RuntimeFiles)" DestinationFolder="$(OutDir)" />
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="CopyWindowsRuntimesOnPublish" AfterTargets="Publish" Condition="'$(RuntimeIdentifier)'=='win-x64'">
|
<Target Name="CopyRuntimeFilesOnPublish" AfterTargets="Publish" >
|
||||||
<Copy SourceFiles="..\Libraries\MediaInfo\MediaInfo.dll" DestinationFolder="$(PublishDir)" />
|
<Copy SourceFiles="@(RuntimeFiles)" DestinationFolder="$(PublishDir)" />
|
||||||
</Target>
|
</Target>
|
||||||
<Target Name="CopyMacOSRuntimesOnBuild" AfterTargets="AfterBuild" Condition="'$(RuntimeIdentifier)'=='osx-x64'">
|
</Project>
|
||||||
<Copy SourceFiles="..\Libraries\MediaInfo\libmediainfo.dylib" DestinationFolder="$(OutDir)" />
|
|
||||||
<Copy SourceFiles="Radarr.Core.dll.config" DestinationFolder="$(OutDir)" />
|
|
||||||
</Target>
|
|
||||||
<Target Name="CopyMacOSRuntimesOnPublish" AfterTargets="Publish" Condition="'$(RuntimeIdentifier)'=='osx-x64'">
|
|
||||||
<Copy SourceFiles="..\Libraries\MediaInfo\libmediainfo.dylib" DestinationFolder="$(PublishDir)" />
|
|
||||||
<Copy SourceFiles="Radarr.Core.dll.config" DestinationFolder="$(PublishDir)" />
|
|
||||||
</Target>
|
|
||||||
<Target Name="CopyLinuxRuntimesOnBuild" AfterTargets="AfterBuild" Condition="'$(RuntimeIdentifier)'=='linux-x64'">
|
|
||||||
<Copy SourceFiles="Radarr.Core.dll.config" DestinationFolder="$(OutDir)" />
|
|
||||||
</Target>
|
|
||||||
<Target Name="CopyLinuxRuntimesOnPublish" AfterTargets="Publish" Condition="'$(RuntimeIdentifier)'=='linux-x64'">
|
|
||||||
<Copy SourceFiles="Radarr.Core.dll.config" DestinationFolder="$(PublishDir)" />
|
|
||||||
</Target>
|
|
||||||
</Project>
|
|
||||||
|
|
|
@ -137,10 +137,16 @@ namespace NzbDrone.Core.Update
|
||||||
_logger.Info("Preparing client");
|
_logger.Info("Preparing client");
|
||||||
_diskTransferService.TransferFolder(_appFolderInfo.GetUpdateClientFolder(), updateSandboxFolder, TransferMode.Move, false);
|
_diskTransferService.TransferFolder(_appFolderInfo.GetUpdateClientFolder(), updateSandboxFolder, TransferMode.Move, false);
|
||||||
|
|
||||||
_logger.Info("Starting update client {0}", _appFolderInfo.GetUpdateClientExePath());
|
// Set executable flag on update app
|
||||||
|
if (OsInfo.IsOsx || (OsInfo.IsLinux && PlatformInfo.IsNetCore))
|
||||||
|
{
|
||||||
|
_diskProvider.SetPermissions(_appFolderInfo.GetUpdateClientExePath(updatePackage.Runtime), "0755", null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
_logger.Info("Starting update client {0}", _appFolderInfo.GetUpdateClientExePath(updatePackage.Runtime));
|
||||||
_logger.ProgressInfo("Radarr will restart shortly.");
|
_logger.ProgressInfo("Radarr will restart shortly.");
|
||||||
|
|
||||||
_processProvider.Start(_appFolderInfo.GetUpdateClientExePath(), GetUpdaterArgs(updateSandboxFolder));
|
_processProvider.Start(_appFolderInfo.GetUpdateClientExePath(updatePackage.Runtime), GetUpdaterArgs(updateSandboxFolder));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EnsureValidBranch(UpdatePackage package)
|
private void EnsureValidBranch(UpdatePackage package)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Update
|
namespace NzbDrone.Core.Update
|
||||||
{
|
{
|
||||||
|
@ -12,5 +12,6 @@ namespace NzbDrone.Core.Update
|
||||||
public UpdateChanges Changes { get; set; }
|
public UpdateChanges Changes { get; set; }
|
||||||
public string Hash { get; set; }
|
public string Hash { get; set; }
|
||||||
public string Branch { get; set; }
|
public string Branch { get; set; }
|
||||||
|
public PlatformType Runtime { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using NzbDrone.Common.Cloud;
|
using NzbDrone.Common.Cloud;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Http;
|
using NzbDrone.Common.Http;
|
||||||
|
@ -34,6 +35,8 @@ namespace NzbDrone.Core.Update
|
||||||
.Resource("/update/{branch}")
|
.Resource("/update/{branch}")
|
||||||
.AddQueryParam("version", currentVersion)
|
.AddQueryParam("version", currentVersion)
|
||||||
.AddQueryParam("os", OsInfo.Os.ToString().ToLowerInvariant())
|
.AddQueryParam("os", OsInfo.Os.ToString().ToLowerInvariant())
|
||||||
|
.AddQueryParam("arch", RuntimeInformation.OSArchitecture)
|
||||||
|
.AddQueryParam("runtime", PlatformInfo.Platform.ToString().ToLowerInvariant())
|
||||||
.AddQueryParam("runtimeVer", _platformInfo.Version)
|
.AddQueryParam("runtimeVer", _platformInfo.Version)
|
||||||
.SetSegment("branch", branch);
|
.SetSegment("branch", branch);
|
||||||
|
|
||||||
|
@ -70,4 +73,4 @@ namespace NzbDrone.Core.Update
|
||||||
return updates.Resource;
|
return updates.Resource;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,18 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" />
|
<ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<Reference Include="System.ServiceProcess" />
|
<Reference Include="System.ServiceProcess" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,20 +1,26 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.2.7" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.1.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.2.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Owin" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Owin" Version="2.2.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.0'">
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Owin" Version="3.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="3.0.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
<PackageReference Include="NLog.Extensions.Logging" Version="1.5.3" />
|
<PackageReference Include="NLog.Extensions.Logging" Version="1.5.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Api\Radarr.Api.csproj" />
|
<ProjectReference Include="..\NzbDrone.Api\Radarr.Api.csproj" />
|
||||||
|
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
|
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Mono\Radarr.Mono.csproj" />
|
|
||||||
<ProjectReference Include="..\NzbDrone.SignalR\Radarr.SignalR.csproj" />
|
<ProjectReference Include="..\NzbDrone.SignalR\Radarr.SignalR.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Windows\Radarr.Windows.csproj" />
|
|
||||||
<ProjectReference Include="..\Radarr.Api.V2\Radarr.Api.V2.csproj" />
|
<ProjectReference Include="..\Radarr.Api.V2\Radarr.Api.V2.csproj" />
|
||||||
<ProjectReference Include="..\Radarr.Http\Radarr.Http.csproj" />
|
<ProjectReference Include="..\Radarr.Http\Radarr.Http.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -23,6 +29,8 @@
|
||||||
<HintPath>..\Libraries\Interop.NetFwTypeLib.dll</HintPath>
|
<HintPath>..\Libraries\Interop.NetFwTypeLib.dll</HintPath>
|
||||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<Reference Include="System.ServiceProcess" />
|
<Reference Include="System.ServiceProcess" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -15,6 +15,7 @@ namespace Radarr.Host.Middleware
|
||||||
private readonly IContainer _container;
|
private readonly IContainer _container;
|
||||||
private readonly Logger _logger;
|
private readonly Logger _logger;
|
||||||
private static string API_KEY;
|
private static string API_KEY;
|
||||||
|
private static string URL_BASE;
|
||||||
public int Order => 1;
|
public int Order => 1;
|
||||||
|
|
||||||
public SignalRMiddleware(IContainer container,
|
public SignalRMiddleware(IContainer container,
|
||||||
|
@ -24,6 +25,7 @@ namespace Radarr.Host.Middleware
|
||||||
_container = container;
|
_container = container;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
API_KEY = configFileProvider.ApiKey;
|
API_KEY = configFileProvider.ApiKey;
|
||||||
|
URL_BASE = configFileProvider.UrlBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Attach(IApplicationBuilder appBuilder)
|
public void Attach(IApplicationBuilder appBuilder)
|
||||||
|
@ -55,11 +57,17 @@ namespace Radarr.Host.Middleware
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
appBuilder.UseSignalR(routes =>
|
#if NETCOREAPP3_0
|
||||||
|
appBuilder.UseEndpoints(x =>
|
||||||
{
|
{
|
||||||
routes.MapHub<MessageHub>("/signalr/messages");
|
x.MapHub<MessageHub>(URL_BASE + "/signalr/messages");
|
||||||
});
|
});
|
||||||
|
#else
|
||||||
|
appBuilder.UseSignalR(x =>
|
||||||
|
{
|
||||||
|
x.MapHub<MessageHub>("/signalr/messages");
|
||||||
|
});
|
||||||
|
#endif
|
||||||
// This is a side effect of haing multiple IoC containers, TinyIoC and whatever
|
// This is a side effect of haing multiple IoC containers, TinyIoC and whatever
|
||||||
// Kestrel/SignalR is using. Ideally we'd have one IoC container, but that's non-trivial with TinyIoC
|
// Kestrel/SignalR is using. Ideally we'd have one IoC container, but that's non-trivial with TinyIoC
|
||||||
// TODO: Use a single IoC container if supported for TinyIoC or if we switch to another system (ie Autofac).
|
// TODO: Use a single IoC container if supported for TinyIoC or if we switch to another system (ie Autofac).
|
||||||
|
|
|
@ -92,15 +92,23 @@ namespace Radarr.Host
|
||||||
{
|
{
|
||||||
services
|
services
|
||||||
.AddSignalR()
|
.AddSignalR()
|
||||||
.AddJsonProtocol(options =>
|
#if !NETCOREAPP3_0
|
||||||
|
.AddJsonProtocol(
|
||||||
|
#else
|
||||||
|
.AddNewtonsoftJsonProtocol(
|
||||||
|
#endif
|
||||||
|
options =>
|
||||||
{
|
{
|
||||||
options.PayloadSerializerSettings = Json.GetSerializerSettings();
|
options.PayloadSerializerSettings = Json.GetSerializerSettings();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.Configure(app =>
|
.Configure(app =>
|
||||||
{
|
{
|
||||||
app.UsePathBase(_configFileProvider.UrlBase);
|
#if NETCOREAPP3_0
|
||||||
|
app.UseRouting();
|
||||||
|
#endif
|
||||||
app.Properties["host.AppName"] = BuildInfo.AppName;
|
app.Properties["host.AppName"] = BuildInfo.AppName;
|
||||||
|
app.UsePathBase(_configFileProvider.UrlBase);
|
||||||
|
|
||||||
foreach (var middleWare in _middlewares.OrderBy(c => c.Order))
|
foreach (var middleWare in _middlewares.OrderBy(c => c.Order))
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,6 +8,7 @@ using NzbDrone.Common.Disk;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using NzbDrone.Common;
|
||||||
|
|
||||||
namespace NzbDrone.Integration.Test.ApiTests
|
namespace NzbDrone.Integration.Test.ApiTests
|
||||||
{
|
{
|
||||||
|
@ -61,7 +62,7 @@ namespace NzbDrone.Integration.Test.ApiTests
|
||||||
result.Directories.Should().NotBeNullOrEmpty();
|
result.Directories.Should().NotBeNullOrEmpty();
|
||||||
result.Files.Should().NotBeNullOrEmpty();
|
result.Files.Should().NotBeNullOrEmpty();
|
||||||
|
|
||||||
result.Files.Should().Contain(v => v.Path == _file && v.Type == FileSystemEntityType.File);
|
result.Files.Should().Contain(v => PathEqualityComparer.Instance.Equals(v.Path, _file) && v.Type == FileSystemEntityType.File);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -69,7 +69,9 @@ namespace NzbDrone.Integration.Test.Client
|
||||||
|
|
||||||
private static void AssertDisableCache(IList<Parameter> headers)
|
private static void AssertDisableCache(IList<Parameter> headers)
|
||||||
{
|
{
|
||||||
headers.Single(c => c.Name == "Cache-Control").Value.Should().Be("no-cache, no-store, must-revalidate, max-age=0");
|
// cache control header gets reordered on net core
|
||||||
|
((string)headers.Single(c => c.Name == "Cache-Control").Value).Split(',').Select(x => x.Trim())
|
||||||
|
.Should().BeEquivalentTo("no-store, must-revalidate, no-cache, max-age=0".Split(',').Select(x => x.Trim()));
|
||||||
headers.Single(c => c.Name == "Pragma").Value.Should().Be("no-cache");
|
headers.Single(c => c.Name == "Pragma").Value.Should().Be("no-cache");
|
||||||
headers.Single(c => c.Name == "Expires").Value.Should().Be("0");
|
headers.Single(c => c.Name == "Expires").Value.Should().Be("0");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,20 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="1.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="1.1.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.0'">
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="3.0.0" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
<ProjectReference Include="..\Radarr.Api.V2\Radarr.Api.V2.csproj" />
|
<ProjectReference Include="..\Radarr.Api.V2\Radarr.Api.V2.csproj" />
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,20 +1,31 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
|
<PackageReference Include="Mono.Posix-4.5" Version="4.5.0" PrivateAssets="all"/>
|
||||||
|
</ItemGroup>
|
||||||
|
<!--
|
||||||
|
The netstandard veresion here doesn't work in net framework
|
||||||
|
See https://github.com/xamarin/XamarinComponents/issues/282
|
||||||
|
-->
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.0'">
|
||||||
|
<PackageReference Include="Mono.Posix.NETStandard" Version="1.0.0" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Common.Test\Radarr.Common.Test.csproj" />
|
<ProjectReference Include="..\NzbDrone.Common.Test\Radarr.Common.Test.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Mono\Radarr.Mono.csproj" />
|
<ProjectReference Include="..\NzbDrone.Mono\Radarr.Mono.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Mono.Posix">
|
|
||||||
<HintPath>..\Libraries\Mono.Posix.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Update="Files\**\*.*">
|
<None Update="Files\**\*.*">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -2,6 +2,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Security.AccessControl;
|
||||||
using Mono.Unix;
|
using Mono.Unix;
|
||||||
using Mono.Unix.Native;
|
using Mono.Unix.Native;
|
||||||
using NLog;
|
using NLog;
|
||||||
|
@ -57,9 +58,10 @@ namespace NzbDrone.Mono.Disk
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var fs = File.GetAccessControl(filename);
|
var file = new FileInfo(filename);
|
||||||
|
var fs = file.GetAccessControl();
|
||||||
fs.SetAccessRuleProtection(false, false);
|
fs.SetAccessRuleProtection(false, false);
|
||||||
File.SetAccessControl(filename, fs);
|
file.SetAccessControl(fs);
|
||||||
}
|
}
|
||||||
catch (NotImplementedException)
|
catch (NotImplementedException)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,10 +5,12 @@ using System.Linq;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common.Disk;
|
using NzbDrone.Common.Disk;
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
|
|
||||||
namespace NzbDrone.Mono.Disk
|
namespace NzbDrone.Mono.Disk
|
||||||
{
|
{
|
||||||
|
// this is here to resolve ambiguity in GetValueOrDefault extension method in net core 3
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
public interface IProcMountProvider
|
public interface IProcMountProvider
|
||||||
{
|
{
|
||||||
List<IMount> GetMounts();
|
List<IMount> GetMounts();
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<PackageReference Include="NLog" Version="4.6.7" />
|
<PackageReference Include="Mono.Posix-4.5" Version="4.5.0" PrivateAssets="all"/>
|
||||||
|
</ItemGroup>
|
||||||
|
<!--
|
||||||
|
The netstandard veresion here doesn't work in net framework
|
||||||
|
See https://github.com/xamarin/XamarinComponents/issues/282
|
||||||
|
-->
|
||||||
|
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.0'">
|
||||||
|
<PackageReference Include="Mono.Posix.NETStandard" Version="1.0.0" />
|
||||||
|
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.6.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
</Project>
|
||||||
<Reference Include="Mono.Posix">
|
|
||||||
<HintPath>..\Libraries\Mono.Posix.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.1.0" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.1.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
|
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
|
||||||
|
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -9,6 +9,7 @@ using System.Runtime.CompilerServices;
|
||||||
using Unity;
|
using Unity;
|
||||||
using Moq;
|
using Moq;
|
||||||
using Moq.Language.Flow;
|
using Moq.Language.Flow;
|
||||||
|
using NzbDrone.Common.Composition;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Test.Common.AutoMoq.Unity;
|
using NzbDrone.Test.Common.AutoMoq.Unity;
|
||||||
using Unity.Resolution;
|
using Unity.Resolution;
|
||||||
|
@ -140,6 +141,10 @@ namespace NzbDrone.Test.Common.AutoMoq
|
||||||
|
|
||||||
_registeredMocks = new Dictionary<Type, object>();
|
_registeredMocks = new Dictionary<Type, object>();
|
||||||
AddTheAutoMockingContainerExtensionToTheContainer(container);
|
AddTheAutoMockingContainerExtensionToTheContainer(container);
|
||||||
|
|
||||||
|
#if NETCOREAPP3_0
|
||||||
|
ContainerBuilderBase.RegisterNativeResolver(new [] {"System.Data.SQLite.dll", "Radarr.Core.dll"});
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void AddTheAutoMockingContainerExtensionToTheContainer(IUnityContainer container)
|
private static void AddTheAutoMockingContainerExtensionToTheContainer(IUnityContainer container)
|
||||||
|
|
|
@ -36,15 +36,28 @@ namespace NzbDrone.Test.Common
|
||||||
|
|
||||||
GenerateConfigFile();
|
GenerateConfigFile();
|
||||||
|
|
||||||
var radarrConsoleExe = OsInfo.IsWindows ? "Radarr.Console.exe" : "Radarr.exe";
|
string consoleExe;
|
||||||
|
if (OsInfo.IsWindows)
|
||||||
if (BuildInfo.IsDebug)
|
|
||||||
{
|
{
|
||||||
Start(Path.Combine(TestContext.CurrentContext.TestDirectory, "..", "..", "_output", "net462", "Radarr.Console.exe"));
|
consoleExe = "Radarr.Console.exe";
|
||||||
|
}
|
||||||
|
else if (PlatformInfo.IsMono)
|
||||||
|
{
|
||||||
|
consoleExe = "Radarr.exe";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Start(Path.Combine("bin", radarrConsoleExe));
|
consoleExe = "Radarr";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (BuildInfo.IsDebug)
|
||||||
|
{
|
||||||
|
var frameworkFolder = PlatformInfo.IsNetCore ? "netcoreapp3.0" : "net462";
|
||||||
|
Start(Path.Combine(TestContext.CurrentContext.TestDirectory, "..", "..", "_output", frameworkFolder, consoleExe));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Start(Path.Combine(TestContext.CurrentContext.TestDirectory, "..", "bin", consoleExe));
|
||||||
}
|
}
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="FluentAssertions" Version="5.9.0" />
|
<PackageReference Include="FluentAssertions" Version="5.9.0" />
|
||||||
|
@ -9,10 +9,10 @@
|
||||||
<PackageReference Include="NLog" Version="4.6.7" />
|
<PackageReference Include="NLog" Version="4.6.7" />
|
||||||
<PackageReference Include="NUnit" Version="3.12.0" />
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
<PackageReference Include="RestSharp" Version="106.6.10" />
|
<PackageReference Include="RestSharp" Version="106.6.10" />
|
||||||
<PackageReference Include="Unity" Version="2.1.505.2" />
|
<PackageReference Include="Unity" Version="5.11.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
|
<ProjectReference Include="..\NzbDrone.Core\Radarr.Core.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -1,9 +1,15 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Update\Radarr.Update.csproj" />
|
<ProjectReference Include="..\NzbDrone.Update\Radarr.Update.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -3,6 +3,7 @@ using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NzbDrone.Common;
|
using NzbDrone.Common;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Common.Processes;
|
using NzbDrone.Common.Processes;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
using NzbDrone.Update.UpdateEngine;
|
using NzbDrone.Update.UpdateEngine;
|
||||||
|
@ -27,7 +28,7 @@ namespace NzbDrone.Update.Test
|
||||||
public void should_start_console_if_app_type_was_service_but_start_failed_because_of_permissions()
|
public void should_start_console_if_app_type_was_service_but_start_failed_because_of_permissions()
|
||||||
{
|
{
|
||||||
string targetFolder = "c:\\Radarr\\".AsOsAgnostic();
|
string targetFolder = "c:\\Radarr\\".AsOsAgnostic();
|
||||||
string targetProcess = "c:\\Radarr\\Radarr.Console.exe".AsOsAgnostic();
|
string targetProcess = "c:\\Radarr\\Radarr.Console".AsOsAgnostic().ProcessNameToExe();
|
||||||
|
|
||||||
Mocker.GetMock<IServiceProvider>().Setup(c => c.Start(ServiceProvider.SERVICE_NAME)).Throws(new InvalidOperationException());
|
Mocker.GetMock<IServiceProvider>().Setup(c => c.Start(ServiceProvider.SERVICE_NAME)).Throws(new InvalidOperationException());
|
||||||
|
|
||||||
|
|
|
@ -1,241 +0,0 @@
|
||||||
/*
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using FizzWare.NBuilder;
|
|
||||||
using Moq;
|
|
||||||
using NUnit.Framework;
|
|
||||||
using NzbDrone.Common;
|
|
||||||
using NzbDrone.Common.Model;
|
|
||||||
using NzbDrone.Test.Common;
|
|
||||||
using NzbDrone.Update.UpdateEngine;
|
|
||||||
|
|
||||||
namespace NzbDrone.Update.Test
|
|
||||||
{
|
|
||||||
[TestFixture]
|
|
||||||
public class UpdateProviderStartFixture : TestBase
|
|
||||||
{
|
|
||||||
private const string UPDATE_FOLDER = @"C:\Temp\nzbdrone_update\nzbdrone\";
|
|
||||||
private const string BACKUP_FOLDER = @"C:\Temp\nzbdrone_update\nzbdrone_backup\";
|
|
||||||
private const string TARGET_FOLDER = @"C:\NzbDrone\";
|
|
||||||
|
|
||||||
Mock<IIAppDirectoryInfo> _IAppDirectoryInfo;
|
|
||||||
|
|
||||||
|
|
||||||
[SetUp]
|
|
||||||
public void Setup()
|
|
||||||
{
|
|
||||||
|
|
||||||
_IAppDirectoryInfo = Mocker.GetMock<IIAppDirectoryInfo>();
|
|
||||||
|
|
||||||
_IAppDirectoryInfo.SetupGet(c => c.SystemTemp).Returns(@"C:\Temp\");
|
|
||||||
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Setup(c => c.FolderExists(UPDATE_FOLDER))
|
|
||||||
.Returns(true);
|
|
||||||
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Setup(c => c.FolderExists(TARGET_FOLDER))
|
|
||||||
.Returns(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void WithInstalledService()
|
|
||||||
{
|
|
||||||
Mocker.GetMock<IServiceProvider>()
|
|
||||||
.Setup(c => c.ServiceExist(ServiceProvider.NZBDRONE_SERVICE_NAME))
|
|
||||||
.Returns(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void WithServiceRunning(bool state)
|
|
||||||
{
|
|
||||||
Mocker.GetMock<IServiceProvider>()
|
|
||||||
.Setup(c => c.IsServiceRunning(ServiceProvider.NZBDRONE_SERVICE_NAME)).Returns(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_stop_nzbdrone_service_if_installed_and_running()
|
|
||||||
{
|
|
||||||
WithInstalledService();
|
|
||||||
WithServiceRunning(true);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<IServiceProvider>().Verify(c => c.Stop(ServiceProvider.NZBDRONE_SERVICE_NAME), Times.Once());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_not_stop_nzbdrone_service_if_installed_but_not_running()
|
|
||||||
{
|
|
||||||
WithInstalledService();
|
|
||||||
WithServiceRunning(false);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<IServiceProvider>().Verify(c => c.Stop(ServiceProvider.NZBDRONE_SERVICE_NAME), Times.Never());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_not_stop_nzbdrone_service_if_service_isnt_installed()
|
|
||||||
{
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<IServiceProvider>().Verify(c => c.Stop(It.IsAny<string>()), Times.Never());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_kill_nzbdrone_process_if_running()
|
|
||||||
{
|
|
||||||
var proccesses = Builder<ProcessInfo>.CreateListOfSize(2).Build().ToList();
|
|
||||||
|
|
||||||
Mocker.GetMock<IProcessProvider>()
|
|
||||||
.Setup(c => c.GetProcessByName(ProcessProvider.NzbDroneProcessName))
|
|
||||||
.Returns(proccesses);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<IProcessProvider>().Verify(c => c.KillAll(ProcessProvider.NzbDroneProcessName), Times.Once());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_not_kill_nzbdrone_process_not_running()
|
|
||||||
{
|
|
||||||
Mocker.GetMock<IProcessProvider>()
|
|
||||||
.Setup(c => c.GetProcessByName(ProcessProvider.NzbDroneProcessName))
|
|
||||||
.Returns(new List<ProcessInfo>());
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<IProcessProvider>().Verify(c => c.Kill(It.IsAny<int>()), Times.Never());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_create_backup_of_current_installation()
|
|
||||||
{
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Setup(c => c.CopyDirectory(TARGET_FOLDER, BACKUP_FOLDER));
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_copy_update_package_to_target()
|
|
||||||
{
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Setup(c => c.CopyDirectory(UPDATE_FOLDER, TARGET_FOLDER));
|
|
||||||
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Setup(c => c.DeleteFolder(UPDATE_FOLDER, true));
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_restore_if_update_fails()
|
|
||||||
{
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Setup(c => c.CopyDirectory(UPDATE_FOLDER, TARGET_FOLDER))
|
|
||||||
.Throws(new IOException());
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Verify(c => c.CopyDirectory(BACKUP_FOLDER, TARGET_FOLDER), Times.Once());
|
|
||||||
ExceptionVerification.ExpectedFatals(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_restart_service_if_service_was_running()
|
|
||||||
{
|
|
||||||
WithInstalledService();
|
|
||||||
WithServiceRunning(true);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
VerifyServiceRestart();
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_restart_process_if_service_was_not_running()
|
|
||||||
{
|
|
||||||
WithInstalledService();
|
|
||||||
WithServiceRunning(false);
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
VerifyProcessRestart();
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_restart_service_if_service_was_running_and_update_fails()
|
|
||||||
{
|
|
||||||
WithInstalledService();
|
|
||||||
WithServiceRunning(true);
|
|
||||||
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Setup(c => c.CopyDirectory(UPDATE_FOLDER, TARGET_FOLDER))
|
|
||||||
.Throws(new IOException());
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
VerifyServiceRestart();
|
|
||||||
ExceptionVerification.ExpectedFatals(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_restart_process_if_service_was_not_running_and_update_fails()
|
|
||||||
{
|
|
||||||
WithInstalledService();
|
|
||||||
WithServiceRunning(false);
|
|
||||||
|
|
||||||
Mocker.GetMock<IDiskProvider>()
|
|
||||||
.Setup(c => c.CopyDirectory(UPDATE_FOLDER, TARGET_FOLDER))
|
|
||||||
.Throws(new IOException());
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<InstallUpdateService>().Start(TARGET_FOLDER);
|
|
||||||
|
|
||||||
|
|
||||||
VerifyProcessRestart();
|
|
||||||
ExceptionVerification.ExpectedFatals(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void VerifyServiceRestart()
|
|
||||||
{
|
|
||||||
Mocker.GetMock<IServiceProvider>()
|
|
||||||
.Verify(c => c.Start(ServiceProvider.NZBDRONE_SERVICE_NAME), Times.Once());
|
|
||||||
|
|
||||||
Mocker.GetMock<IProcessProvider>()
|
|
||||||
.Verify(c => c.Start(It.IsAny<string>()), Times.Never());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void VerifyProcessRestart()
|
|
||||||
{
|
|
||||||
Mocker.GetMock<IServiceProvider>()
|
|
||||||
.Verify(c => c.Start(It.IsAny<string>()), Times.Never());
|
|
||||||
|
|
||||||
Mocker.GetMock<IProcessProvider>()
|
|
||||||
.Verify(c => c.Start(TARGET_FOLDER + "radarr.exe"), Times.Once());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
|
@ -1,7 +1,7 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NLog" Version="4.6.7" />
|
<PackageReference Include="NLog" Version="4.6.7" />
|
||||||
|
|
|
@ -116,8 +116,8 @@ namespace NzbDrone.Update.UpdateEngine
|
||||||
_logger.Info("Copying new files to target folder");
|
_logger.Info("Copying new files to target folder");
|
||||||
_diskTransferService.MirrorFolder(_appFolderInfo.GetUpdatePackageFolder(), installationFolder);
|
_diskTransferService.MirrorFolder(_appFolderInfo.GetUpdatePackageFolder(), installationFolder);
|
||||||
|
|
||||||
// Set executable flag on Sonarr app
|
// Set executable flag on app
|
||||||
if (OsInfo.IsOsx)
|
if (OsInfo.IsOsx || (OsInfo.IsLinux && PlatformInfo.IsNetCore))
|
||||||
{
|
{
|
||||||
_diskProvider.SetPermissions(Path.Combine(installationFolder, "Radarr"), "0755", null, null);
|
_diskProvider.SetPermissions(Path.Combine(installationFolder, "Radarr"), "0755", null, null);
|
||||||
var plistPath = Path.Combine(installationFolder, "..", "Info.plist");
|
var plistPath = Path.Combine(installationFolder, "..", "Info.plist");
|
||||||
|
|
|
@ -3,6 +3,7 @@ using System.IO;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common;
|
using NzbDrone.Common;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
|
using NzbDrone.Common.Extensions;
|
||||||
using NzbDrone.Common.Processes;
|
using NzbDrone.Common.Processes;
|
||||||
using IServiceProvider = NzbDrone.Common.IServiceProvider;
|
using IServiceProvider = NzbDrone.Common.IServiceProvider;
|
||||||
|
|
||||||
|
@ -62,12 +63,12 @@ namespace NzbDrone.Update.UpdateEngine
|
||||||
|
|
||||||
private void StartWinform(string installationFolder)
|
private void StartWinform(string installationFolder)
|
||||||
{
|
{
|
||||||
Start(installationFolder, "Radarr.exe");
|
Start(installationFolder, "Radarr".ProcessNameToExe());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartConsole(string installationFolder)
|
private void StartConsole(string installationFolder)
|
||||||
{
|
{
|
||||||
Start(installationFolder, "Radarr.Console.exe");
|
Start(installationFolder, "Radarr.Console".ProcessNameToExe());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Start(string installationFolder, string fileName)
|
private void Start(string installationFolder, string fileName)
|
||||||
|
@ -83,4 +84,4 @@ namespace NzbDrone.Update.UpdateEngine
|
||||||
_processProvider.SpawnNewProcess(path, _startupContext.PreservedArguments);
|
_processProvider.SpawnNewProcess(path, _startupContext.PreservedArguments);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,15 +25,17 @@ namespace NzbDrone.Windows.Test.DiskProviderTests
|
||||||
|
|
||||||
if (Directory.Exists(path))
|
if (Directory.Exists(path))
|
||||||
{
|
{
|
||||||
var ds = Directory.GetAccessControl(path);
|
var directory = new DirectoryInfo(path);
|
||||||
|
var ds = directory.GetAccessControl();
|
||||||
ds.SetAccessRule(new FileSystemAccessRule(owner, FileSystemRights.Write, accessControlType));
|
ds.SetAccessRule(new FileSystemAccessRule(owner, FileSystemRights.Write, accessControlType));
|
||||||
Directory.SetAccessControl(path, ds);
|
directory.SetAccessControl(ds);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var fs = File.GetAccessControl(path);
|
var file = new FileInfo(path);
|
||||||
|
var fs = file.GetAccessControl();
|
||||||
fs.SetAccessRule(new FileSystemAccessRule(owner, FileSystemRights.Write, accessControlType));
|
fs.SetAccessRule(new FileSystemAccessRule(owner, FileSystemRights.Write, accessControlType));
|
||||||
File.SetAccessControl(path, fs);
|
file.SetAccessControl(fs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ using NzbDrone.Test.Common;
|
||||||
namespace NzbDrone.Windows.Test.EnvironmentInfo
|
namespace NzbDrone.Windows.Test.EnvironmentInfo
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
[Platform("Win")]
|
[Platform("Net")]
|
||||||
public class DotNetPlatformInfoFixture : TestBase<PlatformInfo>
|
public class DotNetPlatformInfoFixture : TestBase<PlatformInfo>
|
||||||
{
|
{
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -1,10 +1,16 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
|
||||||
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
|
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
|
||||||
|
<PackageReference Include="NunitXml.TestLogger" Version="2.1.41" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Common.Test\Radarr.Common.Test.csproj" />
|
<ProjectReference Include="..\NzbDrone.Common.Test\Radarr.Common.Test.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Test.Common\Radarr.Test.Common.csproj" />
|
||||||
<ProjectReference Include="..\NzbDrone.Windows\Radarr.Windows.csproj" />
|
<ProjectReference Include="..\NzbDrone.Windows\Radarr.Windows.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Security.AccessControl;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Common.Disk;
|
using NzbDrone.Common.Disk;
|
||||||
using NzbDrone.Common.EnsureThat;
|
using NzbDrone.Common.EnsureThat;
|
||||||
|
@ -39,9 +40,10 @@ namespace NzbDrone.Windows.Disk
|
||||||
{
|
{
|
||||||
Ensure.That(filename, () => filename).IsValidPath();
|
Ensure.That(filename, () => filename).IsValidPath();
|
||||||
|
|
||||||
var fs = File.GetAccessControl(filename);
|
var file = new FileInfo(filename);
|
||||||
|
var fs = file.GetAccessControl();
|
||||||
fs.SetAccessRuleProtection(false, false);
|
fs.SetAccessRuleProtection(false, false);
|
||||||
File.SetAccessControl(filename, fs);
|
file.SetAccessControl(fs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SetPermissions(string path, string mask, string user, string group)
|
public override void SetPermissions(string path, string mask, string user, string group)
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NLog" Version="4.6.7" />
|
<PackageReference Include="NLog" Version="4.6.7" />
|
||||||
|
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="4.6.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
<ProjectReference Include="..\NzbDrone.Common\Radarr.Common.csproj" />
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
<RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
|
||||||
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
<ApplicationIcon>..\NzbDrone.Host\Radarr.ico</ApplicationIcon>
|
<ApplicationIcon>..\NzbDrone.Host\Radarr.ico</ApplicationIcon>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
|
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" />
|
<ProjectReference Include="..\NzbDrone.Host\Radarr.Host.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup Condition="'$(TargetFramework)' == 'net462'">
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,20 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using Marr.Data;
|
|
||||||
using Nancy;
|
|
||||||
using NzbDrone.Api;
|
|
||||||
using NzbDrone.Common.Cache;
|
using NzbDrone.Common.Cache;
|
||||||
using NzbDrone.Common.Extensions;
|
|
||||||
using NzbDrone.Common.Messaging;
|
|
||||||
using NzbDrone.Core.MediaCover;
|
|
||||||
using NzbDrone.Core.MediaFiles;
|
|
||||||
using NzbDrone.Core.MediaFiles.MovieImport;
|
|
||||||
using NzbDrone.Core.Messaging.Events;
|
using NzbDrone.Core.Messaging.Events;
|
||||||
using NzbDrone.Core.MetadataSource;
|
|
||||||
using NzbDrone.Core.MetadataSource.RadarrAPI;
|
using NzbDrone.Core.MetadataSource.RadarrAPI;
|
||||||
using NzbDrone.Core.Movies.AlternativeTitles;
|
|
||||||
using NzbDrone.Core.RootFolders;
|
|
||||||
using NzbDrone.Core.Movies;
|
using NzbDrone.Core.Movies;
|
||||||
using NzbDrone.Core.Movies.Events;
|
using NzbDrone.Core.Movies.Events;
|
||||||
using Radarr.Http;
|
using Radarr.Http;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="FluentValidation" Version="8.4.0" />
|
<PackageReference Include="FluentValidation" Version="8.4.0" />
|
||||||
|
|
|
@ -59,7 +59,7 @@ namespace Radarr.Api.V2.System
|
||||||
AppData = _appFolderInfo.GetAppDataPath(),
|
AppData = _appFolderInfo.GetAppDataPath(),
|
||||||
OsName = _osInfo.Name,
|
OsName = _osInfo.Name,
|
||||||
OsVersion = _osInfo.Version,
|
OsVersion = _osInfo.Version,
|
||||||
IsMonoRuntime = PlatformInfo.IsMono,
|
IsNetCore = PlatformInfo.IsNetCore,
|
||||||
IsMono = PlatformInfo.IsMono,
|
IsMono = PlatformInfo.IsMono,
|
||||||
IsLinux = OsInfo.IsLinux,
|
IsLinux = OsInfo.IsLinux,
|
||||||
IsOsx = OsInfo.IsOsx,
|
IsOsx = OsInfo.IsOsx,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="FluentValidation" Version="8.4.0" />
|
<PackageReference Include="FluentValidation" Version="8.4.0" />
|
||||||
|
|
|
@ -1,293 +1,216 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 16
|
# Visual Studio 15
|
||||||
VisualStudioVersion = 16.0.29025.244
|
VisualStudioVersion = 15.0.26124.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 15.0.26124.0
|
||||||
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}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{57A04B72-8088-4F75-A582-1158CF8291F7}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test.Common", "Test.Common", "{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test.Common", "Test.Common", "{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WindowsServiceHelpers", "WindowsServiceHelpers", "{F9E67978-5CD6-4A5F-827B-4249711C0B02}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WindowsServiceHelpers", "WindowsServiceHelpers", "{F9E67978-5CD6-4A5F-827B-4249711C0B02}"
|
||||||
EndProject
|
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}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Host", "Host", "{486ADF86-DD89-4E19-B805-9D94F19800D9}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}"
|
||||||
EndProject
|
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}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{0F0D4998-8F5D-4467-A909-BB192C4B3B4B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{4EACDBBC-BCD7-4765-A57B-3E08331E4749}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{4EACDBBC-BCD7-4765-A57B-3E08331E4749}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MonoTorrent", "MonoTorrent\MonoTorrent.csproj", "{411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Api", "NzbDrone.Api\Radarr.Api.csproj", "{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Http", "Radarr.Http\Radarr.Http.csproj", "{C5953DAB-89DB-46D9-A401-D620F54B776E}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Api.V2", "Radarr.Api.V2\Radarr.Api.V2.csproj", "{D1D48E1D-9EEB-470B-992C-3954F90FB014}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api.V2", "Radarr.Api.V2\Radarr.Api.V2.csproj", "{38497DC6-E488-4B9E-A973-A1A7961B33C4}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Http", "Radarr.Http\Radarr.Http.csproj", "{F8A02FD4-A7A4-40D0-BB81-6319105A3302}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api", "NzbDrone.Api\Radarr.Api.csproj", "{D171CDAA-22BE-4598-984B-F9B4A7A6D30C}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Marr.Data", "Marr.Data\Marr.Data.csproj", "{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Common", "NzbDrone.Common\Radarr.Common.csproj", "{BA949432-D73A-425E-B4B1-4292405DFAF6}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoTorrent", "MonoTorrent\MonoTorrent.csproj", "{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Core", "NzbDrone.Core\Radarr.Core.csproj", "{0D62DE9B-33B5-4CC2-B288-E8561C27FF35}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Api.Test", "NzbDrone.Api.Test\Radarr.Api.Test.csproj", "{E2EA47B1-6996-417D-A6EC-28C4F202715C}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.SignalR", "NzbDrone.SignalR\Radarr.SignalR.csproj", "{0B4F09FE-275D-4A94-9FEF-CA1594639AF5}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Automation.Test", "NzbDrone.Automation.Test\Radarr.Automation.Test.csproj", "{2356C987-F992-4084-9DA2-5DAD1DA35E85}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Update", "NzbDrone.Update\Radarr.Update.csproj", "{D1C4B2AA-8776-4429-A3E3-71146C230037}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Common.Test", "NzbDrone.Common.Test\Radarr.Common.Test.csproj", "{A628FEA4-75CC-4039-8823-27258C55D2BF}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api.Test", "NzbDrone.Api.Test\Radarr.Api.Test.csproj", "{D9468BE6-8242-4E7F-9470-EE6FDA8832D0}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Common", "NzbDrone.Common\Radarr.Common.csproj", "{74BF1D46-710C-42C1-82DD-34B42C58F843}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Automation.Test", "NzbDrone.Automation.Test\Radarr.Automation.Test.csproj", "{779D577B-2287-4FB8-8760-D653DBB87109}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Console", "NzbDrone.Console\Radarr.Console.csproj", "{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Common.Test", "NzbDrone.Common.Test\Radarr.Common.Test.csproj", "{175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Core.Test", "NzbDrone.Core.Test\Radarr.Core.Test.csproj", "{04ECC74F-C340-4987-863E-757FB62D27C9}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Core.Test", "NzbDrone.Core.Test\Radarr.Core.Test.csproj", "{4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Core", "NzbDrone.Core\Radarr.Core.csproj", "{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Host.Test", "NzbDrone.Host.Test\Radarr.Host.Test.csproj", "{3FDB2B34-A754-49C5-AEB2-16BC6E92372A}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Host.Test", "NzbDrone.Host.Test\Radarr.Host.Test.csproj", "{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Integration.Test", "NzbDrone.Integration.Test\Radarr.Integration.Test.csproj", "{6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Host", "NzbDrone.Host\Radarr.Host.csproj", "{B6913970-FB88-4F6F-83F9-00728218E3FD}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Libraries.Test", "NzbDrone.Libraries.Test\Radarr.Libraries.Test.csproj", "{4E16E633-5AA2-426E-B5C9-D212D4F40B44}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Integration.Test", "NzbDrone.Integration.Test\Radarr.Integration.Test.csproj", "{6D5618FB-45B9-44AE-BF99-8EF37519CB30}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Update.Test", "NzbDrone.Update.Test\Radarr.Update.Test.csproj", "{10C356B1-0E60-4385-A3FA-3670159B5660}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Libraries.Test", "NzbDrone.Libraries.Test\Radarr.Libraries.Test.csproj", "{1969394D-3181-404F-8E2C-E3E71A5BAD30}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Mono.Test", "NzbDrone.Mono.Test\Radarr.Mono.Test.csproj", "{FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Mono.Test", "NzbDrone.Mono.Test\Radarr.Mono.Test.csproj", "{CCE9ABBC-96BA-425B-8140-DC8102290BE3}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Windows.Test", "NzbDrone.Windows.Test\Radarr.Windows.Test.csproj", "{10B4E062-4985-4897-99DB-745DFBEED055}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Mono", "NzbDrone.Mono\Radarr.Mono.csproj", "{504CD0A8-523B-4A0E-99BE-C179DECA9B76}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Test.Common", "NzbDrone.Test.Common\Radarr.Test.Common.csproj", "{9D841A99-B3EA-4C35-86D0-F27C69E72B3E}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.SignalR", "NzbDrone.SignalR\Radarr.SignalR.csproj", "{B30BE76E-4D20-47AA-9E03-E32613D888CC}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Test.Dummy", "NzbDrone.Test.Dummy\Radarr.Test.Dummy.csproj", "{63872633-A00E-45DE-AB4D-61DFF4B02370}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Test.Common", "NzbDrone.Test.Common\Radarr.Test.Common.csproj", "{B8706292-5BE8-4099-94CA-F26DDD3757E0}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Mono", "NzbDrone.Mono\Radarr.Mono.csproj", "{EF32E669-774D-4144-A9AB-06E5094F1B5F}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Test.Dummy", "NzbDrone.Test.Dummy\Radarr.Test.Dummy.csproj", "{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Windows", "NzbDrone.Windows\Radarr.Windows.csproj", "{BB0DC9D7-93EB-4668-82B2-AA7503685A38}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Update.Test", "NzbDrone.Update.Test\Radarr.Update.Test.csproj", "{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Host", "NzbDrone.Host\Radarr.Host.csproj", "{B044A5E8-D914-4671-8724-A92ADAB04C5A}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Update", "NzbDrone.Update\Radarr.Update.csproj", "{4FBA2CBC-B022-41D6-B6DA-3166991B9172}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Windows.Test", "NzbDrone.Windows.Test\Radarr.Windows.Test.csproj", "{7BEDCC1E-0763-4553-B32B-0430B334ACBB}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Windows", "NzbDrone.Windows\Radarr.Windows.csproj", "{3F076242-A6FA-4657-8606-AF1D150367FC}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceInstall", "ServiceHelpers\ServiceInstall\ServiceInstall.csproj", "{7DA231E8-A31D-4F53-8760-820861B6CE65}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceUninstall", "ServiceHelpers\ServiceUninstall\ServiceUninstall.csproj", "{0E2B067C-4A97-430C-8767-D19ACB09A63A}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|x86 = Debug|x86
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Mono|x86 = Mono|x86
|
Release|Any CPU = Release|Any CPU
|
||||||
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
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{D1D48E1D-9EEB-470B-992C-3954F90FB014}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D1D48E1D-9EEB-470B-992C-3954F90FB014}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D1D48E1D-9EEB-470B-992C-3954F90FB014}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D1D48E1D-9EEB-470B-992C-3954F90FB014}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{F8A02FD4-A7A4-40D0-BB81-6319105A3302}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F8A02FD4-A7A4-40D0-BB81-6319105A3302}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F8A02FD4-A7A4-40D0-BB81-6319105A3302}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F8A02FD4-A7A4-40D0-BB81-6319105A3302}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{74BF1D46-710C-42C1-82DD-34B42C58F843}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{74BF1D46-710C-42C1-82DD-34B42C58F843}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{74BF1D46-710C-42C1-82DD-34B42C58F843}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{74BF1D46-710C-42C1-82DD-34B42C58F843}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{04ECC74F-C340-4987-863E-757FB62D27C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{04ECC74F-C340-4987-863E-757FB62D27C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{04ECC74F-C340-4987-863E-757FB62D27C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{04ECC74F-C340-4987-863E-757FB62D27C9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B30BE76E-4D20-47AA-9E03-E32613D888CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B30BE76E-4D20-47AA-9E03-E32613D888CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B30BE76E-4D20-47AA-9E03-E32613D888CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B30BE76E-4D20-47AA-9E03-E32613D888CC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4FBA2CBC-B022-41D6-B6DA-3166991B9172}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4FBA2CBC-B022-41D6-B6DA-3166991B9172}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4FBA2CBC-B022-41D6-B6DA-3166991B9172}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4FBA2CBC-B022-41D6-B6DA-3166991B9172}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
GlobalSection(NestedProjects) = preSolution
|
GlobalSection(NestedProjects) = preSolution
|
||||||
{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
{6BCE712F-846D-4846-9D1B-A66B858DA755} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D} = {47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}
|
||||||
{700D0B95-95CD-43F3-B6C9-FAA0FC1358D4} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0} = {47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}
|
||||||
{F6FC6BE7-0847-4817-A1ED-223DC647C3D7} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
|
{04ECC74F-C340-4987-863E-757FB62D27C9} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313} = {486ADF86-DD89-4E19-B805-9D94F19800D9}
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD} = {486ADF86-DD89-4E19-B805-9D94F19800D9}
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76} = {0F0D4998-8F5D-4467-A909-BB192C4B3B4B}
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC} = {0F0D4998-8F5D-4467-A909-BB192C4B3B4B}
|
||||||
{4EACDBBC-BCD7-4765-A57B-3E08331E4749} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
{4EACDBBC-BCD7-4765-A57B-3E08331E4749} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
{411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB} = {4EACDBBC-BCD7-4765-A57B-3E08331E4749}
|
||||||
{D9468BE6-8242-4E7F-9470-EE6FDA8832D0} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3} = {4EACDBBC-BCD7-4765-A57B-3E08331E4749}
|
||||||
{779D577B-2287-4FB8-8760-D653DBB87109} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
|
||||||
{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
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
@ -1,302 +1,225 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 16
|
# Visual Studio 15
|
||||||
VisualStudioVersion = 16.0.29025.244
|
VisualStudioVersion = 15.0.26124.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 15.0.26124.0
|
||||||
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}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{57A04B72-8088-4F75-A582-1158CF8291F7}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test.Common", "Test.Common", "{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test.Common", "Test.Common", "{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WindowsServiceHelpers", "WindowsServiceHelpers", "{F9E67978-5CD6-4A5F-827B-4249711C0B02}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WindowsServiceHelpers", "WindowsServiceHelpers", "{F9E67978-5CD6-4A5F-827B-4249711C0B02}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceInstall", "ServiceHelpers\ServiceInstall\ServiceInstall.csproj", "{6BCE712F-846D-4846-9D1B-A66B858DA755}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ServiceHelpers", "ServiceHelpers", "{CF5BF374-71E4-485E-A74C-39B581323D9A}"
|
||||||
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
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Host", "Host", "{486ADF86-DD89-4E19-B805-9D94F19800D9}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Host", "Host", "{486ADF86-DD89-4E19-B805-9D94F19800D9}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}"
|
||||||
EndProject
|
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}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{0F0D4998-8F5D-4467-A909-BB192C4B3B4B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{4EACDBBC-BCD7-4765-A57B-3E08331E4749}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platform", "Platform", "{4EACDBBC-BCD7-4765-A57B-3E08331E4749}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MonoTorrent", "MonoTorrent\MonoTorrent.csproj", "{411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Api", "NzbDrone.Api\Radarr.Api.csproj", "{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Http", "Radarr.Http\Radarr.Http.csproj", "{C5953DAB-89DB-46D9-A401-D620F54B776E}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Api.V2", "Radarr.Api.V2\Radarr.Api.V2.csproj", "{D1D48E1D-9EEB-470B-992C-3954F90FB014}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api.V2", "Radarr.Api.V2\Radarr.Api.V2.csproj", "{38497DC6-E488-4B9E-A973-A1A7961B33C4}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Http", "Radarr.Http\Radarr.Http.csproj", "{F8A02FD4-A7A4-40D0-BB81-6319105A3302}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api", "NzbDrone.Api\Radarr.Api.csproj", "{D171CDAA-22BE-4598-984B-F9B4A7A6D30C}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Marr.Data", "Marr.Data\Marr.Data.csproj", "{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Common", "NzbDrone.Common\Radarr.Common.csproj", "{BA949432-D73A-425E-B4B1-4292405DFAF6}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoTorrent", "MonoTorrent\MonoTorrent.csproj", "{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Core", "NzbDrone.Core\Radarr.Core.csproj", "{0D62DE9B-33B5-4CC2-B288-E8561C27FF35}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Api.Test", "NzbDrone.Api.Test\Radarr.Api.Test.csproj", "{E2EA47B1-6996-417D-A6EC-28C4F202715C}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.SignalR", "NzbDrone.SignalR\Radarr.SignalR.csproj", "{0B4F09FE-275D-4A94-9FEF-CA1594639AF5}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Automation.Test", "NzbDrone.Automation.Test\Radarr.Automation.Test.csproj", "{2356C987-F992-4084-9DA2-5DAD1DA35E85}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Update", "NzbDrone.Update\Radarr.Update.csproj", "{D1C4B2AA-8776-4429-A3E3-71146C230037}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Common.Test", "NzbDrone.Common.Test\Radarr.Common.Test.csproj", "{A628FEA4-75CC-4039-8823-27258C55D2BF}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Api.Test", "NzbDrone.Api.Test\Radarr.Api.Test.csproj", "{D9468BE6-8242-4E7F-9470-EE6FDA8832D0}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Common", "NzbDrone.Common\Radarr.Common.csproj", "{74BF1D46-710C-42C1-82DD-34B42C58F843}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Automation.Test", "NzbDrone.Automation.Test\Radarr.Automation.Test.csproj", "{779D577B-2287-4FB8-8760-D653DBB87109}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Console", "NzbDrone.Console\Radarr.Console.csproj", "{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Common.Test", "NzbDrone.Common.Test\Radarr.Common.Test.csproj", "{175CE3A0-0D8C-48DB-9D8D-C7BBD9591813}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Core.Test", "NzbDrone.Core.Test\Radarr.Core.Test.csproj", "{04ECC74F-C340-4987-863E-757FB62D27C9}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Core.Test", "NzbDrone.Core.Test\Radarr.Core.Test.csproj", "{4EF23885-C1DD-4AE0-B6AF-DB045A0E83BD}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Core", "NzbDrone.Core\Radarr.Core.csproj", "{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Host.Test", "NzbDrone.Host.Test\Radarr.Host.Test.csproj", "{3FDB2B34-A754-49C5-AEB2-16BC6E92372A}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Host.Test", "NzbDrone.Host.Test\Radarr.Host.Test.csproj", "{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Integration.Test", "NzbDrone.Integration.Test\Radarr.Integration.Test.csproj", "{6EEF2080-FAA9-4403-A7B4-0AA91E5A390F}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Host", "NzbDrone.Host\Radarr.Host.csproj", "{B6913970-FB88-4F6F-83F9-00728218E3FD}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Libraries.Test", "NzbDrone.Libraries.Test\Radarr.Libraries.Test.csproj", "{4E16E633-5AA2-426E-B5C9-D212D4F40B44}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Integration.Test", "NzbDrone.Integration.Test\Radarr.Integration.Test.csproj", "{6D5618FB-45B9-44AE-BF99-8EF37519CB30}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Update.Test", "NzbDrone.Update.Test\Radarr.Update.Test.csproj", "{10C356B1-0E60-4385-A3FA-3670159B5660}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Libraries.Test", "NzbDrone.Libraries.Test\Radarr.Libraries.Test.csproj", "{1969394D-3181-404F-8E2C-E3E71A5BAD30}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Mono.Test", "NzbDrone.Mono.Test\Radarr.Mono.Test.csproj", "{FD08732A-60BB-4ACB-9AD2-F17C8BE694C8}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Mono.Test", "NzbDrone.Mono.Test\Radarr.Mono.Test.csproj", "{CCE9ABBC-96BA-425B-8140-DC8102290BE3}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Windows.Test", "NzbDrone.Windows.Test\Radarr.Windows.Test.csproj", "{10B4E062-4985-4897-99DB-745DFBEED055}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Mono", "NzbDrone.Mono\Radarr.Mono.csproj", "{504CD0A8-523B-4A0E-99BE-C179DECA9B76}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Test.Common", "NzbDrone.Test.Common\Radarr.Test.Common.csproj", "{9D841A99-B3EA-4C35-86D0-F27C69E72B3E}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.SignalR", "NzbDrone.SignalR\Radarr.SignalR.csproj", "{B30BE76E-4D20-47AA-9E03-E32613D888CC}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Test.Dummy", "NzbDrone.Test.Dummy\Radarr.Test.Dummy.csproj", "{63872633-A00E-45DE-AB4D-61DFF4B02370}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Test.Common", "NzbDrone.Test.Common\Radarr.Test.Common.csproj", "{B8706292-5BE8-4099-94CA-F26DDD3757E0}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Mono", "NzbDrone.Mono\Radarr.Mono.csproj", "{EF32E669-774D-4144-A9AB-06E5094F1B5F}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Test.Dummy", "NzbDrone.Test.Dummy\Radarr.Test.Dummy.csproj", "{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Windows", "NzbDrone.Windows\Radarr.Windows.csproj", "{BB0DC9D7-93EB-4668-82B2-AA7503685A38}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Update.Test", "NzbDrone.Update.Test\Radarr.Update.Test.csproj", "{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr", "NzbDrone\Radarr.csproj", "{2F5F4802-BF35-476F-8F26-D53863C9B595}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Update", "NzbDrone.Update\Radarr.Update.csproj", "{4FBA2CBC-B022-41D6-B6DA-3166991B9172}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Radarr.Host", "NzbDrone.Host\Radarr.Host.csproj", "{B044A5E8-D914-4671-8724-A92ADAB04C5A}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Windows.Test", "NzbDrone.Windows.Test\Radarr.Windows.Test.csproj", "{7BEDCC1E-0763-4553-B32B-0430B334ACBB}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Windows", "NzbDrone.Windows\Radarr.Windows.csproj", "{3F076242-A6FA-4657-8606-AF1D150367FC}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr", "NzbDrone\Radarr.csproj", "{0DC43D36-6680-4237-BE39-D5D094DBCE29}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceInstall", "ServiceHelpers\ServiceInstall\ServiceInstall.csproj", "{7DA231E8-A31D-4F53-8760-820861B6CE65}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceUninstall", "ServiceHelpers\ServiceUninstall\ServiceUninstall.csproj", "{0E2B067C-4A97-430C-8767-D19ACB09A63A}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|x86 = Debug|x86
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Mono|x86 = Mono|x86
|
Release|Any CPU = Release|Any CPU
|
||||||
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
|
|
||||||
{2F5F4802-BF35-476F-8F26-D53863C9B595}.Debug|x86.ActiveCfg = Debug|x86
|
|
||||||
{2F5F4802-BF35-476F-8F26-D53863C9B595}.Debug|x86.Build.0 = Debug|x86
|
|
||||||
{2F5F4802-BF35-476F-8F26-D53863C9B595}.Mono|x86.ActiveCfg = Release|x86
|
|
||||||
{2F5F4802-BF35-476F-8F26-D53863C9B595}.Mono|x86.Build.0 = Release|x86
|
|
||||||
{2F5F4802-BF35-476F-8F26-D53863C9B595}.Release|x86.ActiveCfg = Release|x86
|
|
||||||
{2F5F4802-BF35-476F-8F26-D53863C9B595}.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
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{D1D48E1D-9EEB-470B-992C-3954F90FB014}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D1D48E1D-9EEB-470B-992C-3954F90FB014}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D1D48E1D-9EEB-470B-992C-3954F90FB014}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D1D48E1D-9EEB-470B-992C-3954F90FB014}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{F8A02FD4-A7A4-40D0-BB81-6319105A3302}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F8A02FD4-A7A4-40D0-BB81-6319105A3302}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F8A02FD4-A7A4-40D0-BB81-6319105A3302}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F8A02FD4-A7A4-40D0-BB81-6319105A3302}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{74BF1D46-710C-42C1-82DD-34B42C58F843}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{74BF1D46-710C-42C1-82DD-34B42C58F843}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{74BF1D46-710C-42C1-82DD-34B42C58F843}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{74BF1D46-710C-42C1-82DD-34B42C58F843}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{04ECC74F-C340-4987-863E-757FB62D27C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{04ECC74F-C340-4987-863E-757FB62D27C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{04ECC74F-C340-4987-863E-757FB62D27C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{04ECC74F-C340-4987-863E-757FB62D27C9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{82EBE37B-E3A7-4365-9B06-FA647BCC7AF0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B30BE76E-4D20-47AA-9E03-E32613D888CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B30BE76E-4D20-47AA-9E03-E32613D888CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B30BE76E-4D20-47AA-9E03-E32613D888CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B30BE76E-4D20-47AA-9E03-E32613D888CC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{4FBA2CBC-B022-41D6-B6DA-3166991B9172}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{4FBA2CBC-B022-41D6-B6DA-3166991B9172}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{4FBA2CBC-B022-41D6-B6DA-3166991B9172}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{4FBA2CBC-B022-41D6-B6DA-3166991B9172}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0DC43D36-6680-4237-BE39-D5D094DBCE29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0DC43D36-6680-4237-BE39-D5D094DBCE29}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0DC43D36-6680-4237-BE39-D5D094DBCE29}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0DC43D36-6680-4237-BE39-D5D094DBCE29}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{59D9DA5C-FD93-4599-BE2F-AFC540B180C8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
GlobalSection(NestedProjects) = preSolution
|
GlobalSection(NestedProjects) = preSolution
|
||||||
{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
{47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
{6BCE712F-846D-4846-9D1B-A66B858DA755} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
|
{AFA7F48E-DB81-4E39-843B-78715C6ADF0D} = {47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}
|
||||||
{700D0B95-95CD-43F3-B6C9-FAA0FC1358D4} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
|
{B8706292-5BE8-4099-94CA-F26DDD3757E0} = {47697CDB-27B6-4B05-B4F8-0CBE6F6EDF97}
|
||||||
{F6FC6BE7-0847-4817-A1ED-223DC647C3D7} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
|
{04ECC74F-C340-4987-863E-757FB62D27C9} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{6D4DE6D5-9594-4AE4-85E0-41C7FFCCED92} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{A76441EE-AB2E-4E9D-8CD3-58BE5A8514D3} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{A628FEA4-75CC-4039-8823-27258C55D2BF} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{E2EA47B1-6996-417D-A6EC-28C4F202715C} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{1969394D-3181-404F-8E2C-E3E71A5BAD30} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{6D5618FB-45B9-44AE-BF99-8EF37519CB30} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{2356C987-F992-4084-9DA2-5DAD1DA35E85} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
|
{7DA231E8-A31D-4F53-8760-820861B6CE65} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
|
||||||
|
{0E2B067C-4A97-430C-8767-D19ACB09A63A} = {F9E67978-5CD6-4A5F-827B-4249711C0B02}
|
||||||
|
{AEA9EE9A-19BF-45CB-93D9-52CA443FD313} = {486ADF86-DD89-4E19-B805-9D94F19800D9}
|
||||||
|
{B6913970-FB88-4F6F-83F9-00728218E3FD} = {486ADF86-DD89-4E19-B805-9D94F19800D9}
|
||||||
|
{0DC43D36-6680-4237-BE39-D5D094DBCE29} = {486ADF86-DD89-4E19-B805-9D94F19800D9}
|
||||||
|
{8D7D5F17-96BB-4EDD-A6E6-3BCA2D6B401A} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
|
||||||
|
{504CD0A8-523B-4A0E-99BE-C179DECA9B76} = {0F0D4998-8F5D-4467-A909-BB192C4B3B4B}
|
||||||
|
{3F076242-A6FA-4657-8606-AF1D150367FC} = {0F0D4998-8F5D-4467-A909-BB192C4B3B4B}
|
||||||
{4EACDBBC-BCD7-4765-A57B-3E08331E4749} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
{4EACDBBC-BCD7-4765-A57B-3E08331E4749} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
||||||
{411A9E0E-FDC6-4E25-828A-0C2CD1CD96F8} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
|
{7BEDCC1E-0763-4553-B32B-0430B334ACBB} = {4EACDBBC-BCD7-4765-A57B-3E08331E4749}
|
||||||
{D9468BE6-8242-4E7F-9470-EE6FDA8832D0} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
{CCE9ABBC-96BA-425B-8140-DC8102290BE3} = {4EACDBBC-BCD7-4765-A57B-3E08331E4749}
|
||||||
{779D577B-2287-4FB8-8760-D653DBB87109} = {57A04B72-8088-4F75-A582-1158CF8291F7}
|
{BE8533CC-A1ED-46A6-811F-2FA29CC6AD80} = {F6E3A728-AE77-4D02-BAC8-82FBC1402DDA}
|
||||||
{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}
|
|
||||||
{2F5F4802-BF35-476F-8F26-D53863C9B595} = {486ADF86-DD89-4E19-B805-9D94F19800D9}
|
|
||||||
{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
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<dllmap os="osx" dll="mediainfo" target="libmediainfo.dylib"/>
|
||||||
|
<dllmap os="linux" dll="mediainfo" target="libmediainfo.so.0" />
|
||||||
|
<dllmap os="freebsd" dll="mediainfo" target="libmediainfo.so.0" />
|
||||||
|
<dllmap os="solaris" dll="mediainfo" target="libmediainfo.so.0.0.0" />
|
||||||
|
</configuration>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<dllmap os="osx" dll="mediainfo" target="libmediainfo.dylib"/>
|
||||||
|
<dllmap os="linux" dll="mediainfo" target="libmediainfo.so.0" />
|
||||||
|
<dllmap os="freebsd" dll="mediainfo" target="libmediainfo.so.0" />
|
||||||
|
<dllmap os="solaris" dll="mediainfo" target="libmediainfo.so.0.0.0" />
|
||||||
|
</configuration>
|
|
@ -1,6 +1,9 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFrameworks>net462</TargetFrameworks>
|
<TargetFrameworks>net462;netcoreapp3.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.0'">
|
||||||
|
<PackageReference Include="System.Security.Principal.Windows" Version="4.6.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue