From d0a4794f197893cbf70d816dd10763049117b6f8 Mon Sep 17 00:00:00 2001 From: Zhi Li Date: Wed, 30 Sep 2015 13:45:02 -0700 Subject: [PATCH] fixed https://github.com/NuGet/Home/issues/1444 --- NuGet.Clients.sln | 570 +++++++++++++++++- .../NuGet.VisualStudio.Implementation.csproj | 4 +- .../PackageManagement.UI.csproj | 10 +- .../UserInterfaceService/INuGetUIContext.cs | 3 + .../UserInterfaceService/NuGetUIContext.cs | 11 +- .../Utility/PackageManagerProviderUtility.cs | 28 + .../StandaloneUI/StandaloneUI.csproj | 4 + .../StandaloneUI/StandaloneUIContext.cs | 2 +- .../VisualStudio.Interop.csproj | 4 +- .../Extensibility/IVsPackageInstaller.cs | 0 .../IVsPackageInstallerEvents.cs | 0 .../IVsPackageInstallerServices.cs | 0 .../Extensibility/IVsPackageMetadata.cs | 0 .../Extensibility/IVsPackageRestorer.cs | 0 .../Extensibility/IVsPackageSourceProvider.cs | 0 .../Extensibility/IVsPackageUninstaller.cs | 0 .../Extensibility/VsPackageEventHandler.cs | 0 .../VisualStudio/IPackageManagerProvider.cs | 47 ++ .../IRegistryKey.cs | 0 .../IVsTemplateWizard.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../VisualStudio.csproj} | 1 + .../project.json | 0 .../VsExtension/VisualStudioUIContext.cs | 6 +- .../VisualStudioUIContextFactory.cs | 12 +- .../VsExtension/VsExtension.csproj | 7 +- .../VsExtension/source.extension.vsixmanifest | 2 +- .../PackageManagerProvider.Test.csproj | 86 +++ .../PackageManagerProviderTest.cs | 66 ++ .../Properties/AssemblyInfo.cs | 11 + .../TestPackageManagerProviders.cs | 142 +++++ .../project.json | 14 + 32 files changed, 1014 insertions(+), 16 deletions(-) create mode 100644 src/NuGet.Clients/PackageManagement.UI/Utility/PackageManagerProviderUtility.cs rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Extensibility/IVsPackageInstaller.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Extensibility/IVsPackageInstallerEvents.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Extensibility/IVsPackageInstallerServices.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Extensibility/IVsPackageMetadata.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Extensibility/IVsPackageRestorer.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Extensibility/IVsPackageSourceProvider.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Extensibility/IVsPackageUninstaller.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Extensibility/VsPackageEventHandler.cs (100%) create mode 100644 src/NuGet.Clients/VisualStudio/IPackageManagerProvider.cs rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/IRegistryKey.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/IVsTemplateWizard.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/Properties/AssemblyInfo.cs (100%) rename src/NuGet.Clients/{VisualStudioAPI/VisualStudioAPI.csproj => VisualStudio/VisualStudio.csproj} (99%) rename src/NuGet.Clients/{VisualStudioAPI => VisualStudio}/project.json (100%) create mode 100644 test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageManagerProvider.Test.csproj create mode 100644 test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageManagerProviderTest.cs create mode 100644 test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/Properties/AssemblyInfo.cs create mode 100644 test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/TestPackageManagerProviders.cs create mode 100644 test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/project.json diff --git a/NuGet.Clients.sln b/NuGet.Clients.sln index 27989c71661..8432ffc9dba 100644 --- a/NuGet.Clients.sln +++ b/NuGet.Clients.sln @@ -23,7 +23,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{3EF356B5 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Options", "src\NuGet.Clients\Options\Options.csproj", "{53AB7187-CDF3-48B5-B90E-8919D3CB904D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisualStudioAPI", "src\NuGet.Clients\VisualStudioAPI\VisualStudioAPI.csproj", "{E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisualStudio", "src\NuGet.Clients\VisualStudio\VisualStudio.csproj", "{E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "functional", "functional", "{72887A16-F39B-4B21-9B76-33AE5004DE0B}" EndProject @@ -72,185 +72,752 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTests", "UnitTests", "{ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NuGet.CommandLine.Test", "test\NuGet.Clients.Tests\NuGet.CommandLine.Test\NuGet.CommandLine.Test.csproj", "{33294BB8-5144-4363-B02C-332F6D94C1C1}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagerProvider.Test", "test\NuGet.Clients.Tests\NuGet.PackageManagement.UI.Test\PackageManagerProvider.Test.csproj", "{1E243B39-7C61-4525-A664-3DC8589707AC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Coverage|Any CPU = Coverage|Any CPU + Coverage|ARM = Coverage|ARM + Coverage|x64 = Coverage|x64 + Coverage|x86 = Coverage|x86 Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Mono Debug|Any CPU = Mono Debug|Any CPU + Mono Debug|ARM = Mono Debug|ARM + Mono Debug|x64 = Mono Debug|x64 + Mono Debug|x86 = Mono Debug|x86 Mono Release|Any CPU = Mono Release|Any CPU + Mono Release|ARM = Mono Release|ARM + Mono Release|x64 = Mono Release|x64 + Mono Release|x86 = Mono Release|x86 Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Coverage|Any CPU.Build.0 = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Coverage|ARM.Build.0 = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Coverage|x64.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Coverage|x64.Build.0 = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Coverage|x86.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Coverage|x86.Build.0 = Debug|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Debug|Any CPU.Build.0 = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Debug|ARM.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Debug|ARM.Build.0 = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Debug|x64.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Debug|x64.Build.0 = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Debug|x86.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Debug|x86.Build.0 = Debug|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Debug|x64.Build.0 = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Debug|x86.Build.0 = Debug|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Release|ARM.Build.0 = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Release|x64.ActiveCfg = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Release|x64.Build.0 = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Release|x86.ActiveCfg = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Mono Release|x86.Build.0 = Release|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Release|Any CPU.ActiveCfg = Release|Any CPU {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Release|Any CPU.Build.0 = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Release|ARM.ActiveCfg = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Release|ARM.Build.0 = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Release|x64.ActiveCfg = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Release|x64.Build.0 = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Release|x86.ActiveCfg = Release|Any CPU + {306CDDFA-FF0B-4299-930C-9EC6C9308160}.Release|x86.Build.0 = Release|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Coverage|Any CPU.Build.0 = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Coverage|ARM.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Coverage|ARM.Build.0 = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Coverage|x64.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Coverage|x64.Build.0 = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Coverage|x86.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Coverage|x86.Build.0 = Mono Release|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Debug|ARM.Build.0 = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Debug|x64.ActiveCfg = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Debug|x64.Build.0 = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Debug|x86.ActiveCfg = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Debug|x86.Build.0 = Debug|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Debug|ARM.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Debug|ARM.Build.0 = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Debug|x64.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Debug|x64.Build.0 = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Debug|x86.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Debug|x86.Build.0 = Mono Release|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Release|Any CPU.ActiveCfg = Debug|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Release|Any CPU.Build.0 = Debug|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Release|ARM.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Release|ARM.Build.0 = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Release|x64.Build.0 = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Mono Release|x86.Build.0 = Mono Release|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Release|Any CPU.ActiveCfg = Release|Any CPU {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Release|Any CPU.Build.0 = Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Release|ARM.ActiveCfg = Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Release|ARM.Build.0 = Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Release|x64.ActiveCfg = Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Release|x64.Build.0 = Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Release|x86.ActiveCfg = Release|Any CPU + {D0F9864B-D782-4471-81A2-29555E5DC0D7}.Release|x86.Build.0 = Release|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Coverage|Any CPU.Build.0 = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Coverage|ARM.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Coverage|ARM.Build.0 = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Coverage|x64.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Coverage|x64.Build.0 = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Coverage|x86.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Coverage|x86.Build.0 = Mono Release|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Debug|ARM.ActiveCfg = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Debug|ARM.Build.0 = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Debug|x64.ActiveCfg = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Debug|x64.Build.0 = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Debug|x86.ActiveCfg = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Debug|x86.Build.0 = Debug|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Debug|ARM.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Debug|ARM.Build.0 = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Debug|x64.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Debug|x64.Build.0 = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Debug|x86.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Debug|x86.Build.0 = Mono Release|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Release|Any CPU.ActiveCfg = Debug|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Release|Any CPU.Build.0 = Debug|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Release|ARM.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Release|ARM.Build.0 = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Release|x64.Build.0 = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Mono Release|x86.Build.0 = Mono Release|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Release|Any CPU.ActiveCfg = Release|Any CPU {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Release|Any CPU.Build.0 = Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Release|ARM.ActiveCfg = Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Release|ARM.Build.0 = Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Release|x64.ActiveCfg = Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Release|x64.Build.0 = Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Release|x86.ActiveCfg = Release|Any CPU + {7DB43FE1-75E1-49F9-B2C8-06A552BA2144}.Release|x86.Build.0 = Release|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Coverage|Any CPU.Build.0 = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Coverage|ARM.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Coverage|ARM.Build.0 = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Coverage|x64.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Coverage|x64.Build.0 = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Coverage|x86.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Coverage|x86.Build.0 = Mono Release|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Debug|ARM.ActiveCfg = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Debug|ARM.Build.0 = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Debug|x64.ActiveCfg = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Debug|x64.Build.0 = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Debug|x86.ActiveCfg = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Debug|x86.Build.0 = Debug|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Debug|ARM.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Debug|ARM.Build.0 = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Debug|x64.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Debug|x64.Build.0 = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Debug|x86.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Debug|x86.Build.0 = Mono Release|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Release|Any CPU.ActiveCfg = Debug|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Release|Any CPU.Build.0 = Debug|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Release|ARM.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Release|ARM.Build.0 = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Release|x64.Build.0 = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Mono Release|x86.Build.0 = Mono Release|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Release|Any CPU.ActiveCfg = Release|Any CPU {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Release|Any CPU.Build.0 = Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Release|ARM.ActiveCfg = Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Release|ARM.Build.0 = Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Release|x64.ActiveCfg = Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Release|x64.Build.0 = Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Release|x86.ActiveCfg = Release|Any CPU + {EEA49A74-6EFC-410E-9745-BAD367AC151D}.Release|x86.Build.0 = Release|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Coverage|Any CPU.Build.0 = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Coverage|ARM.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Coverage|ARM.Build.0 = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Coverage|x64.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Coverage|x64.Build.0 = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Coverage|x86.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Coverage|x86.Build.0 = Mono Release|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Debug|ARM.ActiveCfg = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Debug|ARM.Build.0 = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Debug|x64.ActiveCfg = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Debug|x64.Build.0 = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Debug|x86.ActiveCfg = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Debug|x86.Build.0 = Debug|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Debug|ARM.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Debug|ARM.Build.0 = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Debug|x64.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Debug|x64.Build.0 = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Debug|x86.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Debug|x86.Build.0 = Mono Release|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Release|Any CPU.ActiveCfg = Debug|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Release|Any CPU.Build.0 = Debug|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Release|ARM.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Release|ARM.Build.0 = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Release|x64.Build.0 = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Mono Release|x86.Build.0 = Mono Release|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Release|Any CPU.ActiveCfg = Release|Any CPU {50E33DA2-AF14-486D-81B8-BD8409744A38}.Release|Any CPU.Build.0 = Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Release|ARM.ActiveCfg = Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Release|ARM.Build.0 = Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Release|x64.ActiveCfg = Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Release|x64.Build.0 = Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Release|x86.ActiveCfg = Release|Any CPU + {50E33DA2-AF14-486D-81B8-BD8409744A38}.Release|x86.Build.0 = Release|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Coverage|Any CPU.Build.0 = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Coverage|ARM.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Coverage|ARM.Build.0 = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Coverage|x64.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Coverage|x64.Build.0 = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Coverage|x86.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Coverage|x86.Build.0 = Mono Release|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Debug|ARM.ActiveCfg = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Debug|ARM.Build.0 = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Debug|x64.ActiveCfg = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Debug|x64.Build.0 = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Debug|x86.ActiveCfg = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Debug|x86.Build.0 = Debug|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Debug|ARM.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Debug|ARM.Build.0 = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Debug|x64.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Debug|x64.Build.0 = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Debug|x86.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Debug|x86.Build.0 = Mono Release|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Release|Any CPU.ActiveCfg = Debug|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Release|Any CPU.Build.0 = Debug|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Release|ARM.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Release|ARM.Build.0 = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Release|x64.Build.0 = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Mono Release|x86.Build.0 = Mono Release|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Release|Any CPU.ActiveCfg = Release|Any CPU {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Release|Any CPU.Build.0 = Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Release|ARM.ActiveCfg = Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Release|ARM.Build.0 = Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Release|x64.ActiveCfg = Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Release|x64.Build.0 = Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Release|x86.ActiveCfg = Release|Any CPU + {6FD11460-39A3-4A10-BA63-7541B0A7D053}.Release|x86.Build.0 = Release|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Coverage|Any CPU.Build.0 = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Coverage|ARM.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Coverage|ARM.Build.0 = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Coverage|x64.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Coverage|x64.Build.0 = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Coverage|x86.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Coverage|x86.Build.0 = Mono Release|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Debug|ARM.Build.0 = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Debug|x64.ActiveCfg = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Debug|x64.Build.0 = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Debug|x86.ActiveCfg = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Debug|x86.Build.0 = Debug|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Debug|ARM.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Debug|ARM.Build.0 = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Debug|x64.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Debug|x64.Build.0 = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Debug|x86.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Debug|x86.Build.0 = Mono Release|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Release|Any CPU.ActiveCfg = Debug|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Release|Any CPU.Build.0 = Debug|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Release|ARM.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Release|ARM.Build.0 = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Release|x64.Build.0 = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Mono Release|x86.Build.0 = Mono Release|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Release|Any CPU.Build.0 = Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Release|ARM.ActiveCfg = Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Release|ARM.Build.0 = Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Release|x64.ActiveCfg = Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Release|x64.Build.0 = Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Release|x86.ActiveCfg = Release|Any CPU + {5A79EEF3-51C0-4A14-8D37-50EF38AD835D}.Release|x86.Build.0 = Release|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Coverage|Any CPU.Build.0 = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Coverage|ARM.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Coverage|ARM.Build.0 = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Coverage|x64.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Coverage|x64.Build.0 = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Coverage|x86.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Coverage|x86.Build.0 = Mono Release|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Debug|ARM.Build.0 = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Debug|x64.ActiveCfg = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Debug|x64.Build.0 = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Debug|x86.Build.0 = Debug|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Debug|ARM.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Debug|ARM.Build.0 = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Debug|x64.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Debug|x64.Build.0 = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Debug|x86.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Debug|x86.Build.0 = Mono Release|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Release|Any CPU.ActiveCfg = Debug|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Release|Any CPU.Build.0 = Debug|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Release|ARM.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Release|ARM.Build.0 = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Release|x64.Build.0 = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Mono Release|x86.Build.0 = Mono Release|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Release|Any CPU.ActiveCfg = Release|Any CPU {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Release|Any CPU.Build.0 = Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Release|ARM.ActiveCfg = Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Release|ARM.Build.0 = Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Release|x64.ActiveCfg = Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Release|x64.Build.0 = Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Release|x86.ActiveCfg = Release|Any CPU + {A5E7AEB3-738F-4C39-A459-00F90483B2FE}.Release|x86.Build.0 = Release|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Coverage|Any CPU.ActiveCfg = Debug|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Coverage|Any CPU.Build.0 = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Coverage|ARM.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Coverage|ARM.Build.0 = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Coverage|x64.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Coverage|x64.Build.0 = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Coverage|x86.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Coverage|x86.Build.0 = Mono Release|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Debug|ARM.ActiveCfg = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Debug|ARM.Build.0 = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Debug|x64.ActiveCfg = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Debug|x64.Build.0 = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Debug|x86.ActiveCfg = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Debug|x86.Build.0 = Debug|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Debug|ARM.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Debug|ARM.Build.0 = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Debug|x64.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Debug|x64.Build.0 = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Debug|x86.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Debug|x86.Build.0 = Mono Release|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Release|Any CPU.ActiveCfg = Debug|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Release|Any CPU.Build.0 = Debug|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Release|ARM.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Release|ARM.Build.0 = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Release|x64.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Release|x64.Build.0 = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Release|x86.ActiveCfg = Mono Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Mono Release|x86.Build.0 = Mono Release|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Release|Any CPU.ActiveCfg = Release|Any CPU {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Release|Any CPU.Build.0 = Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Release|ARM.ActiveCfg = Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Release|ARM.Build.0 = Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Release|x64.ActiveCfg = Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Release|x64.Build.0 = Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Release|x86.ActiveCfg = Release|Any CPU + {53AB7187-CDF3-48B5-B90E-8919D3CB904D}.Release|x86.Build.0 = Release|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Coverage|Any CPU.Build.0 = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Coverage|ARM.Build.0 = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Coverage|x64.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Coverage|x64.Build.0 = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Coverage|x86.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Coverage|x86.Build.0 = Debug|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Debug|ARM.Build.0 = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Debug|x64.Build.0 = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Debug|x86.Build.0 = Debug|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Debug|x64.Build.0 = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Debug|x86.Build.0 = Debug|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Release|ARM.Build.0 = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Release|x64.ActiveCfg = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Release|x64.Build.0 = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Release|x86.ActiveCfg = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Mono Release|x86.Build.0 = Release|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Release|Any CPU.ActiveCfg = Release|Any CPU {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Release|Any CPU.Build.0 = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Release|ARM.ActiveCfg = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Release|ARM.Build.0 = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Release|x64.ActiveCfg = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Release|x64.Build.0 = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Release|x86.ActiveCfg = Release|Any CPU + {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471}.Release|x86.Build.0 = Release|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Coverage|Any CPU.Build.0 = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Coverage|ARM.Build.0 = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Coverage|x64.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Coverage|x64.Build.0 = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Coverage|x86.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Coverage|x86.Build.0 = Debug|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Debug|ARM.Build.0 = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Debug|x64.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Debug|x64.Build.0 = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Debug|x86.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Debug|x86.Build.0 = Debug|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Debug|x64.Build.0 = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Debug|x86.Build.0 = Debug|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Release|ARM.Build.0 = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Release|x64.ActiveCfg = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Release|x64.Build.0 = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Release|x86.ActiveCfg = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Mono Release|x86.Build.0 = Release|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Release|Any CPU.ActiveCfg = Release|Any CPU {E961D080-F10B-4F11-BEA0-056509C086CC}.Release|Any CPU.Build.0 = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Release|ARM.ActiveCfg = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Release|ARM.Build.0 = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Release|x64.ActiveCfg = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Release|x64.Build.0 = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Release|x86.ActiveCfg = Release|Any CPU + {E961D080-F10B-4F11-BEA0-056509C086CC}.Release|x86.Build.0 = Release|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Coverage|Any CPU.Build.0 = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Coverage|ARM.Build.0 = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Coverage|x64.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Coverage|x64.Build.0 = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Coverage|x86.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Coverage|x86.Build.0 = Debug|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Debug|ARM.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Debug|ARM.Build.0 = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Debug|x64.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Debug|x64.Build.0 = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Debug|x86.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Debug|x86.Build.0 = Debug|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Debug|x64.Build.0 = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Debug|x86.Build.0 = Debug|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Release|ARM.Build.0 = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Release|x64.ActiveCfg = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Release|x64.Build.0 = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Release|x86.ActiveCfg = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Mono Release|x86.Build.0 = Release|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Release|Any CPU.ActiveCfg = Release|Any CPU {26DC17AC-A390-4515-A2C0-07A0950036C5}.Release|Any CPU.Build.0 = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Release|ARM.ActiveCfg = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Release|ARM.Build.0 = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Release|x64.ActiveCfg = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Release|x64.Build.0 = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Release|x86.ActiveCfg = Release|Any CPU + {26DC17AC-A390-4515-A2C0-07A0950036C5}.Release|x86.Build.0 = Release|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Coverage|Any CPU.Build.0 = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Coverage|ARM.Build.0 = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Coverage|x64.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Coverage|x64.Build.0 = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Coverage|x86.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Coverage|x86.Build.0 = Debug|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Debug|ARM.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Debug|ARM.Build.0 = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Debug|x64.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Debug|x64.Build.0 = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Debug|x86.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Debug|x86.Build.0 = Debug|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Debug|x64.Build.0 = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Debug|x86.Build.0 = Debug|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Release|ARM.Build.0 = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Release|x64.ActiveCfg = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Release|x64.Build.0 = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Release|x86.ActiveCfg = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Mono Release|x86.Build.0 = Release|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Release|Any CPU.ActiveCfg = Release|Any CPU {9623CF30-192C-4864-B419-29649169AE30}.Release|Any CPU.Build.0 = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Release|ARM.ActiveCfg = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Release|ARM.Build.0 = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Release|x64.ActiveCfg = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Release|x64.Build.0 = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Release|x86.ActiveCfg = Release|Any CPU + {9623CF30-192C-4864-B419-29649169AE30}.Release|x86.Build.0 = Release|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Coverage|Any CPU.Build.0 = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Coverage|ARM.Build.0 = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Coverage|x64.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Coverage|x64.Build.0 = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Coverage|x86.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Coverage|x86.Build.0 = Debug|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Debug|ARM.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Debug|ARM.Build.0 = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Debug|x64.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Debug|x64.Build.0 = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Debug|x86.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Debug|x86.Build.0 = Debug|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Debug|x64.Build.0 = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Debug|x86.Build.0 = Debug|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Release|ARM.Build.0 = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Release|x64.ActiveCfg = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Release|x64.Build.0 = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Release|x86.ActiveCfg = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Mono Release|x86.Build.0 = Release|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Release|Any CPU.ActiveCfg = Release|Any CPU {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Release|Any CPU.Build.0 = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Release|ARM.ActiveCfg = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Release|ARM.Build.0 = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Release|x64.ActiveCfg = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Release|x64.Build.0 = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Release|x86.ActiveCfg = Release|Any CPU + {114FD278-477D-4292-82AA-7F8A5FC0BA08}.Release|x86.Build.0 = Release|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Coverage|Any CPU.Build.0 = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Coverage|ARM.Build.0 = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Coverage|x64.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Coverage|x64.Build.0 = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Coverage|x86.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Coverage|x86.Build.0 = Debug|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Debug|Any CPU.Build.0 = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Debug|ARM.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Debug|ARM.Build.0 = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Debug|x64.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Debug|x64.Build.0 = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Debug|x86.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Debug|x86.Build.0 = Debug|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Debug|x64.Build.0 = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Debug|x86.Build.0 = Debug|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Release|ARM.Build.0 = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Release|x64.ActiveCfg = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Release|x64.Build.0 = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Release|x86.ActiveCfg = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Mono Release|x86.Build.0 = Release|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Release|Any CPU.ActiveCfg = Release|Any CPU {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Release|Any CPU.Build.0 = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Release|ARM.ActiveCfg = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Release|ARM.Build.0 = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Release|x64.ActiveCfg = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Release|x64.Build.0 = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Release|x86.ActiveCfg = Release|Any CPU + {538ADEFD-2170-40A9-A2C5-EC8369CFE490}.Release|x86.Build.0 = Release|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Coverage|Any CPU.Build.0 = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Coverage|ARM.Build.0 = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Coverage|x64.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Coverage|x64.Build.0 = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Coverage|x86.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Coverage|x86.Build.0 = Debug|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Debug|ARM.Build.0 = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Debug|x64.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Debug|x64.Build.0 = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Debug|x86.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Debug|x86.Build.0 = Debug|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Debug|x64.Build.0 = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Debug|x86.Build.0 = Debug|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Release|ARM.Build.0 = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Release|x64.ActiveCfg = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Release|x64.Build.0 = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Release|x86.ActiveCfg = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Mono Release|x86.Build.0 = Release|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Release|Any CPU.ActiveCfg = Release|Any CPU {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Release|Any CPU.Build.0 = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Release|ARM.ActiveCfg = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Release|ARM.Build.0 = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Release|x64.ActiveCfg = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Release|x64.Build.0 = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Release|x86.ActiveCfg = Release|Any CPU + {957C4E99-3644-47DD-8F9A-AE36F41EBE4A}.Release|x86.Build.0 = Release|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Coverage|Any CPU.ActiveCfg = Release|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Coverage|Any CPU.Build.0 = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Coverage|ARM.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Coverage|ARM.Build.0 = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Coverage|x64.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Coverage|x64.Build.0 = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Coverage|x86.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Coverage|x86.Build.0 = Debug|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Debug|ARM.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Debug|ARM.Build.0 = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Debug|x64.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Debug|x64.Build.0 = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Debug|x86.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Debug|x86.Build.0 = Debug|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Debug|x64.Build.0 = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Debug|x86.Build.0 = Debug|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Release|ARM.Build.0 = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Release|x64.ActiveCfg = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Release|x64.Build.0 = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Release|x86.ActiveCfg = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Mono Release|x86.Build.0 = Release|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Release|Any CPU.ActiveCfg = Release|Any CPU {33294BB8-5144-4363-B02C-332F6D94C1C1}.Release|Any CPU.Build.0 = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Release|ARM.ActiveCfg = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Release|ARM.Build.0 = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Release|x64.ActiveCfg = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Release|x64.Build.0 = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Release|x86.ActiveCfg = Release|Any CPU + {33294BB8-5144-4363-B02C-332F6D94C1C1}.Release|x86.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Coverage|Any CPU.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Coverage|Any CPU.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Coverage|ARM.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Coverage|ARM.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Coverage|x64.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Coverage|x64.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Coverage|x86.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Coverage|x86.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Debug|ARM.ActiveCfg = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Debug|ARM.Build.0 = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Debug|x64.ActiveCfg = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Debug|x64.Build.0 = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Debug|x86.ActiveCfg = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Debug|x86.Build.0 = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Debug|Any CPU.Build.0 = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Debug|ARM.ActiveCfg = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Debug|ARM.Build.0 = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Debug|x64.ActiveCfg = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Debug|x64.Build.0 = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Debug|x86.ActiveCfg = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Debug|x86.Build.0 = Debug|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Release|Any CPU.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Release|Any CPU.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Release|ARM.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Release|ARM.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Release|x64.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Release|x64.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Release|x86.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Mono Release|x86.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Release|Any CPU.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Release|ARM.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Release|ARM.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Release|x64.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Release|x64.Build.0 = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Release|x86.ActiveCfg = Release|Any CPU + {1E243B39-7C61-4525-A664-3DC8589707AC}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -261,5 +828,6 @@ Global {83AEE32C-FFCC-43A6-898B-D7DF81774C25} = {72887A16-F39B-4B21-9B76-33AE5004DE0B} {25E91311-400E-47A6-A844-733D604E662A} = {3EF356B5-E2D3-45E3-B515-99F4611ACBDA} {33294BB8-5144-4363-B02C-332F6D94C1C1} = {25E91311-400E-47A6-A844-733D604E662A} + {1E243B39-7C61-4525-A664-3DC8589707AC} = {25E91311-400E-47A6-A844-733D604E662A} EndGlobalSection EndGlobal diff --git a/src/NuGet.Clients/NuGet.VisualStudio.Implementation/NuGet.VisualStudio.Implementation.csproj b/src/NuGet.Clients/NuGet.VisualStudio.Implementation/NuGet.VisualStudio.Implementation.csproj index ac8f5123fdf..b6646bfba0e 100644 --- a/src/NuGet.Clients/NuGet.VisualStudio.Implementation/NuGet.VisualStudio.Implementation.csproj +++ b/src/NuGet.Clients/NuGet.VisualStudio.Implementation/NuGet.VisualStudio.Implementation.csproj @@ -96,9 +96,9 @@ {306cddfa-ff0b-4299-930c-9ec6c9308160} PackageManagement.VisualStudio - + {e5556bc6-a7fd-4d8e-8a7d-7648df1d7471} - VisualStudioAPI + VisualStudio {6fd11460-39a3-4a10-ba63-7541b0a7d053} diff --git a/src/NuGet.Clients/PackageManagement.UI/PackageManagement.UI.csproj b/src/NuGet.Clients/PackageManagement.UI/PackageManagement.UI.csproj index 2613e5a2d3b..be6e0815b18 100644 --- a/src/NuGet.Clients/PackageManagement.UI/PackageManagement.UI.csproj +++ b/src/NuGet.Clients/PackageManagement.UI/PackageManagement.UI.csproj @@ -8,7 +8,7 @@ true $(UserProfile)\.nuget\packages 14.0 - $(MS_PFX_PATH) + $(MS_PFX_PATH) 14.0 @@ -42,6 +42,7 @@ 4 + @@ -147,6 +148,7 @@ + @@ -281,6 +283,12 @@ Resources.Designer.cs + + + {e5556bc6-a7fd-4d8e-8a7d-7648df1d7471} + VisualStudio + + diff --git a/src/NuGet.Clients/PackageManagement.UI/UserInterfaceService/INuGetUIContext.cs b/src/NuGet.Clients/PackageManagement.UI/UserInterfaceService/INuGetUIContext.cs index a327e599127..abe909a6ebb 100644 --- a/src/NuGet.Clients/PackageManagement.UI/UserInterfaceService/INuGetUIContext.cs +++ b/src/NuGet.Clients/PackageManagement.UI/UserInterfaceService/INuGetUIContext.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using NuGet.ProjectManagement; using NuGet.Protocol.Core.Types; +using NuGet.VisualStudio; namespace NuGet.PackageManagement.UI { @@ -37,5 +38,7 @@ public interface INuGetUIContext /// /// The value of the setting. void ApplyShowPreviewSetting(bool show); + + IEnumerable PackageManagerProviders { get; } } } diff --git a/src/NuGet.Clients/PackageManagement.UI/UserInterfaceService/NuGetUIContext.cs b/src/NuGet.Clients/PackageManagement.UI/UserInterfaceService/NuGetUIContext.cs index 3ebe70417f2..e027c31da18 100644 --- a/src/NuGet.Clients/PackageManagement.UI/UserInterfaceService/NuGetUIContext.cs +++ b/src/NuGet.Clients/PackageManagement.UI/UserInterfaceService/NuGetUIContext.cs @@ -5,6 +5,7 @@ using System.Linq; using NuGet.ProjectManagement; using NuGet.Protocol.Core.Types; +using NuGet.VisualStudio; namespace NuGet.PackageManagement.UI { @@ -14,6 +15,7 @@ namespace NuGet.PackageManagement.UI public abstract class NuGetUIContextBase : INuGetUIContext { private readonly NuGetProject[] _projects; + private readonly IEnumerable _packageManagerProviders; protected NuGetUIContextBase( ISourceRepositoryProvider sourceProvider, @@ -22,7 +24,8 @@ protected NuGetUIContextBase( UIActionEngine uiActionEngine, IPackageRestoreManager packageRestoreManager, IOptionsPageActivator optionsPageActivator, - IEnumerable projects) + IEnumerable projects, + IEnumerable packageManagerProviders) { SourceProvider = sourceProvider; SolutionManager = solutionManager; @@ -32,6 +35,7 @@ protected NuGetUIContextBase( PackageRestoreManager = packageRestoreManager; OptionsPageActivator = optionsPageActivator; _projects = projects.ToArray(); + _packageManagerProviders = packageManagerProviders; } public ISourceRepositoryProvider SourceProvider { get; } @@ -58,5 +62,10 @@ public IEnumerable Projects public abstract void PersistSettings(); public abstract void ApplyShowPreviewSetting(bool show); + + public IEnumerable PackageManagerProviders + { + get { return _packageManagerProviders; } + } } } diff --git a/src/NuGet.Clients/PackageManagement.UI/Utility/PackageManagerProviderUtility.cs b/src/NuGet.Clients/PackageManagement.UI/Utility/PackageManagerProviderUtility.cs new file mode 100644 index 00000000000..50a3007be84 --- /dev/null +++ b/src/NuGet.Clients/PackageManagement.UI/Utility/PackageManagerProviderUtility.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.VisualStudio.Utilities; +using NuGet.VisualStudio; + +namespace NuGet.PackageManagement.UI +{ + public static class PackageManagerProviderUtility + { + public static List Sort(IEnumerable> packageManagerProviders, int max) + { + var sortedProviders = new List(); + var uniqueId = new HashSet(StringComparer.OrdinalIgnoreCase); + + foreach (var provider in Orderer.Order(packageManagerProviders)) + { + if (sortedProviders.Count() < max && !uniqueId.Contains(provider.Value.PackageManagerId)) + { + uniqueId.Add(provider.Value.PackageManagerId); + sortedProviders.Add(provider.Value); + } + } + + return sortedProviders; + } + } +} diff --git a/src/NuGet.Clients/StandaloneUI/StandaloneUI.csproj b/src/NuGet.Clients/StandaloneUI/StandaloneUI.csproj index a26089dc343..4aee7f84ea9 100644 --- a/src/NuGet.Clients/StandaloneUI/StandaloneUI.csproj +++ b/src/NuGet.Clients/StandaloneUI/StandaloneUI.csproj @@ -134,6 +134,10 @@ {538adefd-2170-40a9-a2c5-ec8369cfe490} PackageManagement.UI + + {e5556bc6-a7fd-4d8e-8a7d-7648df1d7471} + VisualStudio + diff --git a/src/NuGet.Clients/StandaloneUI/StandaloneUIContext.cs b/src/NuGet.Clients/StandaloneUI/StandaloneUIContext.cs index b8b650ef2cf..db9aa8a97d1 100644 --- a/src/NuGet.Clients/StandaloneUI/StandaloneUIContext.cs +++ b/src/NuGet.Clients/StandaloneUI/StandaloneUIContext.cs @@ -27,7 +27,7 @@ public StandaloneUIContext( IOptionsPageActivator optionsPageActivator, IEnumerable projects) : - base(sourceProvider, solutionManager, packageManager, uiActionEngine, packageRestoreManager, optionsPageActivator, projects) + base(sourceProvider, solutionManager, packageManager, uiActionEngine, packageRestoreManager, optionsPageActivator, projects, null) { _settingsFile = settingsFile; LoadSettings(); diff --git a/src/NuGet.Clients/VisualStudio.Interop/VisualStudio.Interop.csproj b/src/NuGet.Clients/VisualStudio.Interop/VisualStudio.Interop.csproj index 1eb6e2d8c54..c7446f2f3b5 100644 --- a/src/NuGet.Clients/VisualStudio.Interop/VisualStudio.Interop.csproj +++ b/src/NuGet.Clients/VisualStudio.Interop/VisualStudio.Interop.csproj @@ -50,9 +50,9 @@ - + {e5556bc6-a7fd-4d8e-8a7d-7648df1d7471} - VisualStudioAPI + VisualStudio diff --git a/src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageInstaller.cs b/src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageInstaller.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageInstaller.cs rename to src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageInstaller.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageInstallerEvents.cs b/src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageInstallerEvents.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageInstallerEvents.cs rename to src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageInstallerEvents.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageInstallerServices.cs b/src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageInstallerServices.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageInstallerServices.cs rename to src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageInstallerServices.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageMetadata.cs b/src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageMetadata.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageMetadata.cs rename to src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageMetadata.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageRestorer.cs b/src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageRestorer.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageRestorer.cs rename to src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageRestorer.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageSourceProvider.cs b/src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageSourceProvider.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageSourceProvider.cs rename to src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageSourceProvider.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageUninstaller.cs b/src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageUninstaller.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Extensibility/IVsPackageUninstaller.cs rename to src/NuGet.Clients/VisualStudio/Extensibility/IVsPackageUninstaller.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/Extensibility/VsPackageEventHandler.cs b/src/NuGet.Clients/VisualStudio/Extensibility/VsPackageEventHandler.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Extensibility/VsPackageEventHandler.cs rename to src/NuGet.Clients/VisualStudio/Extensibility/VsPackageEventHandler.cs diff --git a/src/NuGet.Clients/VisualStudio/IPackageManagerProvider.cs b/src/NuGet.Clients/VisualStudio/IPackageManagerProvider.cs new file mode 100644 index 00000000000..2b73453827f --- /dev/null +++ b/src/NuGet.Clients/VisualStudio/IPackageManagerProvider.cs @@ -0,0 +1,47 @@ +using System.Runtime.InteropServices; +using System.Threading; +using System.Threading.Tasks; + +namespace NuGet.VisualStudio +{ + /// + /// Interface allowing integration of alternate package manager suggestion for a NuGet package. + /// For example jQuery may appear on Bower and it might be more appropriate to install a package from Bower for certain projects + /// + [ComImport] + [Guid("BCED5BF2-40FC-4D9F-BF0A-43CD4E9FF65F")] + public interface IPackageManagerProvider + { + /// + /// Localized display package manager name. + /// + string PackageManagerName { get; } + + /// + /// Package manager unique id. + /// + string PackageManagerId { get; } + + /// + /// Display description for package manager when user hover over the manager name on UI. + /// + string Description { get; } + + /// + /// Check if a recommendation should be surfaced for an alternate package manager. + /// This code should not rely on slow network calls, and should return rapidly. + /// + /// Current package id + /// Unique project name for finding the project through VS dte + /// Cancellation Token + /// return true if need to direct to integrated package manager for this package + Task CheckForPackage(string packageId, string projectName, CancellationToken token); + + /// + /// This Action should take the user to the other package manager. + /// + /// Current package id + /// Unique project name for finding the project through VS dte + void GoToPackage(string packageId, string projectName); + } +} diff --git a/src/NuGet.Clients/VisualStudioAPI/IRegistryKey.cs b/src/NuGet.Clients/VisualStudio/IRegistryKey.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/IRegistryKey.cs rename to src/NuGet.Clients/VisualStudio/IRegistryKey.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/IVsTemplateWizard.cs b/src/NuGet.Clients/VisualStudio/IVsTemplateWizard.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/IVsTemplateWizard.cs rename to src/NuGet.Clients/VisualStudio/IVsTemplateWizard.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/Properties/AssemblyInfo.cs b/src/NuGet.Clients/VisualStudio/Properties/AssemblyInfo.cs similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/Properties/AssemblyInfo.cs rename to src/NuGet.Clients/VisualStudio/Properties/AssemblyInfo.cs diff --git a/src/NuGet.Clients/VisualStudioAPI/VisualStudioAPI.csproj b/src/NuGet.Clients/VisualStudio/VisualStudio.csproj similarity index 99% rename from src/NuGet.Clients/VisualStudioAPI/VisualStudioAPI.csproj rename to src/NuGet.Clients/VisualStudio/VisualStudio.csproj index f88437b1d14..759a5bd131e 100644 --- a/src/NuGet.Clients/VisualStudioAPI/VisualStudioAPI.csproj +++ b/src/NuGet.Clients/VisualStudio/VisualStudio.csproj @@ -108,6 +108,7 @@ + diff --git a/src/NuGet.Clients/VisualStudioAPI/project.json b/src/NuGet.Clients/VisualStudio/project.json similarity index 100% rename from src/NuGet.Clients/VisualStudioAPI/project.json rename to src/NuGet.Clients/VisualStudio/project.json diff --git a/src/NuGet.Clients/VsExtension/VisualStudioUIContext.cs b/src/NuGet.Clients/VsExtension/VisualStudioUIContext.cs index f789e6f0e77..9a921bb48c8 100644 --- a/src/NuGet.Clients/VsExtension/VisualStudioUIContext.cs +++ b/src/NuGet.Clients/VsExtension/VisualStudioUIContext.cs @@ -9,6 +9,7 @@ using NuGet.PackageManagement.VisualStudio; using NuGet.ProjectManagement; using NuGet.Protocol.Core.Types; +using NuGet.VisualStudio; namespace NuGetVSExtension { @@ -24,9 +25,10 @@ public VisualStudioUIContext( UIActionEngine uiActionEngine, IPackageRestoreManager packageRestoreManager, IOptionsPageActivator optionsPageActivator, - IEnumerable projects) + IEnumerable projects, + IEnumerable packageManagerProviders) : - base(sourceProvider, solutionManager, packageManager, uiActionEngine, packageRestoreManager, optionsPageActivator, projects) + base(sourceProvider, solutionManager, packageManager, uiActionEngine, packageRestoreManager, optionsPageActivator, projects, packageManagerProviders) { _package = package; } diff --git a/src/NuGet.Clients/VsExtension/VisualStudioUIContextFactory.cs b/src/NuGet.Clients/VsExtension/VisualStudioUIContextFactory.cs index d84f1dfa06e..3d028369491 100644 --- a/src/NuGet.Clients/VsExtension/VisualStudioUIContextFactory.cs +++ b/src/NuGet.Clients/VsExtension/VisualStudioUIContextFactory.cs @@ -5,11 +5,13 @@ using System.Collections.Generic; using System.ComponentModel.Composition; using System.Linq; +using Microsoft.VisualStudio.Utilities; using NuGet.Configuration; using NuGet.PackageManagement; using NuGet.PackageManagement.UI; using NuGet.ProjectManagement; using NuGet.Protocol.Core.Types; +using NuGet.VisualStudio; namespace NuGetVSExtension { @@ -22,6 +24,9 @@ internal class VisualStudioUIContextFactory : INuGetUIContextFactory private readonly IOptionsPageActivator _optionsPage; private readonly ISettings _settings; private readonly IDeleteOnRestartManager _deleteOnRestartManager; + private readonly List _packageManagerProviders; + // only pick up at most three integrated package managers + private const int MaxPackageManager = 3; [ImportingConstructor] public VisualStudioUIContextFactory([Import] ISourceRepositoryProvider repositoryProvider, @@ -29,7 +34,8 @@ public VisualStudioUIContextFactory([Import] ISourceRepositoryProvider repositor [Import] ISettings settings, [Import] IPackageRestoreManager packageRestoreManager, [Import] IOptionsPageActivator optionsPage, - [Import] IDeleteOnRestartManager deleteOnRestartManager) + [Import] IDeleteOnRestartManager deleteOnRestartManager, + [ImportMany] IEnumerable> packageManagerProviders) { _repositoryProvider = repositoryProvider; _solutionManager = solutionManager; @@ -37,6 +43,7 @@ public VisualStudioUIContextFactory([Import] ISourceRepositoryProvider repositor _optionsPage = optionsPage; _settings = settings; _deleteOnRestartManager = deleteOnRestartManager; + _packageManagerProviders = PackageManagerProviderUtility.Sort(packageManagerProviders, MaxPackageManager); } public INuGetUIContext Create(NuGetPackage package, IEnumerable projects) @@ -62,7 +69,8 @@ public INuGetUIContext Create(NuGetPackage package, IEnumerable pr actionEngine, _restoreManager, _optionsPage, - projects); + projects, + _packageManagerProviders); } } } diff --git a/src/NuGet.Clients/VsExtension/VsExtension.csproj b/src/NuGet.Clients/VsExtension/VsExtension.csproj index 2b8d5184eb6..0cc06708075 100644 --- a/src/NuGet.Clients/VsExtension/VsExtension.csproj +++ b/src/NuGet.Clients/VsExtension/VsExtension.csproj @@ -173,9 +173,9 @@ {eea49a74-6efc-410e-9745-bad367ac151d} VisualStudio14 - - {E5556BC6-A7FD-4D8E-8A7D-7648DF1D7471} - VisualStudioAPI + + {e5556bc6-a7fd-4d8e-8a7d-7648df1d7471} + VisualStudio BuiltProjectOutputGroup%3bBuiltProjectOutputGroupDependencies%3bGetCopyToOutputDirectoryItems%3bSatelliteDllsProjectOutputGroup%3b DebugSymbolsProjectOutputGroup%3b @@ -206,6 +206,7 @@ True + True diff --git a/src/NuGet.Clients/VsExtension/source.extension.vsixmanifest b/src/NuGet.Clients/VsExtension/source.extension.vsixmanifest index d02b9e853e8..3abfdb9ca42 100644 --- a/src/NuGet.Clients/VsExtension/source.extension.vsixmanifest +++ b/src/NuGet.Clients/VsExtension/source.extension.vsixmanifest @@ -21,8 +21,8 @@ - + diff --git a/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageManagerProvider.Test.csproj b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageManagerProvider.Test.csproj new file mode 100644 index 00000000000..e0128aaa105 --- /dev/null +++ b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageManagerProvider.Test.csproj @@ -0,0 +1,86 @@ + + + + $(UserProfile)\.nuget\packages + true + + + + Debug + AnyCPU + {1E243B39-7C61-4525-A664-3DC8589707AC} + Library + Properties + NuGet.CommandLine.Test + NuGet.CommandLine.Test + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {538adefd-2170-40a9-a2c5-ec8369cfe490} + PackageManagement.UI + + + {e5556bc6-a7fd-4d8e-8a7d-7648df1d7471} + VisualStudio + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + \ No newline at end of file diff --git a/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageManagerProviderTest.cs b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageManagerProviderTest.cs new file mode 100644 index 00000000000..e4fb9262b4a --- /dev/null +++ b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageManagerProviderTest.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using Xunit; +using NuGet.VisualStudio; +using System.ComponentModel.Composition; +using Microsoft.VisualStudio.Utilities; +using System.ComponentModel.Composition.Hosting; +using System.Reflection; +using NuGet.PackageManagement.UI; + +namespace NuGet.CommandLine.Test +{ + public class PackageManagerProviderTest + { + [ImportMany(typeof(IPackageManagerProvider))] + public IEnumerable> PackageManagerProviders { get; set; } + + public PackageManagerProviderTest() + { + Init(); + } + + [Fact] + public void PackageManagerProvider_SimpleSort() + { + // Act + var sorted = PackageManagerProviderUtility.Sort(PackageManagerProviders, 3); + + // Assert + Assert.Equal("test-version0", sorted[0].PackageManagerId); + Assert.Equal("test-version1", sorted[1].PackageManagerId); + Assert.Equal("test-version2", sorted[2].PackageManagerId); + } + + [Fact] + public void PackageManagerProvider_duplicatedManagerId() + { + // Act + var sorted = PackageManagerProviderUtility.Sort(PackageManagerProviders, 3); + + // Assert + Assert.Equal("testUpdate", sorted[0].PackageManagerName); + Assert.Equal("test-version1", sorted[1].PackageManagerId); + Assert.Equal("test-version2", sorted[2].PackageManagerId); + } + + [Fact] + public void PackageManagerProvider_limitedManagerProviders() + { + // Act + var sorted = PackageManagerProviderUtility.Sort(PackageManagerProviders, 1); + + // Assert + Assert.Equal(1, sorted.Count); + } + + private void Init() + { + var catalog = new AssemblyCatalog + (Assembly.GetExecutingAssembly()); + + var container = new CompositionContainer(catalog); + container.ComposeParts(this); + } + } +} diff --git a/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/Properties/AssemblyInfo.cs b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000000..10810f095c3 --- /dev/null +++ b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/Properties/AssemblyInfo.cs @@ -0,0 +1,11 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PackageManagerProvider.Test")] +[assembly: AssemblyDescription("")] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6E65C591-14C9-459D-92BB-8775A99592F3")] diff --git a/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/TestPackageManagerProviders.cs b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/TestPackageManagerProviders.cs new file mode 100644 index 00000000000..41e6c5b57bb --- /dev/null +++ b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/TestPackageManagerProviders.cs @@ -0,0 +1,142 @@ +using System; +using System.ComponentModel.Composition; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.VisualStudio.Utilities; +using NuGet.VisualStudio; + +namespace NuGet.CommandLine.Test +{ + [Export(typeof(IPackageManagerProvider))] + [Order(Before = "test-version1")] + [Name("test-version0")] + public class PackageManagerProviderTest0 : IPackageManagerProvider + { + public string PackageManagerName { get; } + + public string PackageManagerId { get; } + + public string Description { get; } + + public PackageManagerProviderTest0() + { + PackageManagerName = "test"; + PackageManagerId = "test-version0"; + Description = "this is a test package manager"; + } + + public async Task CheckForPackage(string packageId, string projectName, CancellationToken token) + { + return await Task.Run(() => + { + Console.WriteLine("checking package in {0}", PackageManagerName); + return true; + }); + } + + public void GoToPackage(string packageId, string projectName) + { + Console.WriteLine("opening {0} UI", PackageManagerName); + } + } + + [Export(typeof(IPackageManagerProvider))] + [Order(Before = "test-version2", After = "test-version0")] + [Name("test-version1")] + public class PackageManagerProviderTest1 : IPackageManagerProvider + { + public string PackageManagerName { get; } + + public string PackageManagerId { get; } + + public string Description { get; } + + public PackageManagerProviderTest1() + { + PackageManagerName = "test"; + PackageManagerId = "test-version1"; + Description = "this is a test package manager"; + } + + public async Task CheckForPackage(string packageId, string projectName, CancellationToken token) + { + return await Task.Run(() => + { + Console.WriteLine("checking package in {0}", PackageManagerName); + return true; + }); + } + + public void GoToPackage(string packageId, string projectName) + { + Console.WriteLine("opening {0} UI", PackageManagerName); + } + } + + [Export(typeof(IPackageManagerProvider))] + [Order(After = "test-version1")] + [Name("test-version2")] + public class PackageManagerProviderTest2 : IPackageManagerProvider + { + public string PackageManagerName { get; } + + public string PackageManagerId { get; } + + public string Description { get; } + + public PackageManagerProviderTest2() + { + PackageManagerName = "test"; + PackageManagerId = "test-version2"; + Description = "this is a test package manager"; + } + + public async Task CheckForPackage(string packageId, string projectName, CancellationToken token) + { + return await Task.Run(() => + { + Console.WriteLine("checking package in {0}", PackageManagerName); + return true; + }); + } + + public void GoToPackage(string packageId, string projectName) + { + Console.WriteLine("opening {0} UI", PackageManagerName); + } + } + + [Export(typeof(IPackageManagerProvider))] + [Order(Before = "test-version0")] + [Name("test-version0Update")] + public class PackageManagerProviderTest0Update : IPackageManagerProvider + { + public string PackageManagerName { get; } + + public string PackageManagerId { get; } + + public string Description { get; } + + public PackageManagerProviderTest0Update() + { + PackageManagerName = "testUpdate"; + PackageManagerId = "test-version0"; + Description = "this is a test package manager"; + } + + public async Task CheckForPackage(string packageId, string projectName, CancellationToken token) + { + return await Task.Run(() => + { + Console.WriteLine("checking package in {0}", PackageManagerName); + return true; + }); + } + + public void GoToPackage(string packageId, string projectName) + { + Console.WriteLine("opening {0} UI", PackageManagerName); + } + } + +} diff --git a/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/project.json b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/project.json new file mode 100644 index 00000000000..84ceb8de3b6 --- /dev/null +++ b/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/project.json @@ -0,0 +1,14 @@ +{ + "dependencies": { + "xunit": "2.0.0", + "xunit.runner.visualstudio": "2.0.0" + }, + "frameworks": { + "net45": { + "frameworkAssemblies": {} + } + }, + "runtimes": { + "win-anycpu": {} + } +} \ No newline at end of file