commit 614f9d2280fc8104c97136fbfe00f1412c400103 parent d46aea143abbfdeacb0750363def7edf90c57bde Author: sreadingMSFT <74242768+sreadingMSFT@users.noreply.github.com> Date: Tue, 19 Oct 2021 17:15:07 -0700 Add projected winrt wrapper for server com interface and add tests (#1373) * Add c# in proc winrt wrapper and projection * Add wrapper implementation and project * Override factory to return objects. * Fix unreferenced parameters. * Guid name updates. * Undo unneccessary changes. * Remove projection. * Spelling changes. * Simplify packaged test csproj file. * Update guids\packagereference versions. * Remove anycpu * Append defines instead of overriding. * Attempt switch to packages.config for nuget * Add packagereference back. * Try packages.config again. * Try direct restore of csproj * Try workaround solutiondir issue * Try fix bundleplatforms. * Change outputpath * Remove output path * Make client and server have separate lib names. * Add output path back. * Merge build break fix to allow pipeline run. * Move test package to its own solution. * Microsoft.Management.Deployment.Client buildchange * Merge local master to comtesting (#16) * Fix bad merge (#1408) * Add support for rest api 1.1 interface (#1396) Added support for market Added support for source agreements Added support for msstore type Minor changes to workflow ui Next pr will be the manifest v1.1 integration. * Remove the packagedAPI experimental feature flag (#1419) * Integrating custom header with V1.1 changes (#1422) Integrating custom header with V1.1 changes * Expose pass through header through com interface. (#1420) * Add custom header. * Update behavior for composites. * Revert line ending changes. * Add comment. * Update composite behavior. * Fix error code * Update Loggers to support multiple Win32 app installs in single process (#1399) * Update Loggers to support multi threaded processing of Win32 app install requests in WPMServer Co-authored-by: JohnMcPMS <johnmcp@microsoft.com> Co-authored-by: yao-msft <50888816+yao-msft@users.noreply.github.com> Co-authored-by: Ashwini Patil <47225815+ashpatil-msft@users.noreply.github.com> Co-authored-by: sachintaMSFT <80828309+sachintaMSFT@users.noreply.github.com> * Remove unneccessary cpp files * Run Com Interface tests * Add appxrecipe to spelling * Update test path * Update test paths. * Remove test adapter dll from testassembly * Add powershell task to install wingetdev * Add runsettings file to publish logs. * Test installing package in vstest * Try newer windows server. * Try enable com tracing for tests. * Try direct run of vstest * Fix install script to call add script. * Fix appxpackages path. * Fix path again, remove trace * Extract unsigned package for loose register * reenable tracing * Include server in packagedtests * Remove build dependency on wingetserver project * Try tracelog comtracing. * Fix powershell args. * Handle variable azure src dir paths. * Make Dll version of com server and use for tests * Fix library name parameter. * Remove com tracing. Fix test. * Fix copyright and spelling. * Try decrease build disk size. Co-authored-by: JohnMcPMS <johnmcp@microsoft.com> Co-authored-by: yao-msft <50888816+yao-msft@users.noreply.github.com> Co-authored-by: Ashwini Patil <47225815+ashpatil-msft@users.noreply.github.com> Co-authored-by: sachintaMSFT <80828309+sachintaMSFT@users.noreply.github.com> Diffstat:
57 files changed, 1692 insertions(+), 179 deletions(-)
diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt @@ -6,8 +6,10 @@ addmanifest addstore admins alloc +altform anonymize api +APIENTRY appdata appinst appinstaller @@ -17,6 +19,7 @@ appx appxbundle appxbundles appxmanifest +appxrecipe appxsdk APSTUDIO argc @@ -105,6 +108,7 @@ DIRECTONLY distro dll dllexport +dllmain docx dotnet downlevel @@ -132,6 +136,7 @@ EULA EVENTTAG exe executables +executionengine exeenus exeinteractive exelog @@ -185,6 +190,7 @@ html http https Hyperlink +IActivation IApplication IAppx IAsync @@ -337,6 +343,7 @@ PBYTE pch PCWSTR pdb +pdbonly PEVENT pfp PGP @@ -489,6 +496,7 @@ TARG TARGETDIR targetentrypoint targetnametoken +targetsize tdbuild tdd tellg @@ -505,6 +513,7 @@ Timeline todo tokenizer tolower +Toolchain toupper TOutput towlower @@ -512,6 +521,7 @@ TRACELOGGING triaged trunc TRUSTEDPEOPLE +trx tt ttl typedef @@ -578,6 +588,7 @@ wcsicmp webpage wekyb wil +wildcards WINAPI WINEVENT winget diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt @@ -1,4 +1,5 @@ abcd +activatable adml admx affle @@ -79,6 +80,7 @@ count'th countof countryregion createmanifestmetadata +CSharp cstdint ctc Ctx @@ -161,6 +163,7 @@ insufficientmemory Intelli IPackage IPersist +IRead IService ISettings ishelp @@ -230,6 +233,8 @@ myinstalldir mylog mysilent mysilentwithprogress +mytool +NETFX netlify Newtonsoft NOEXPAND @@ -364,6 +369,7 @@ VERSI VERSIE vns vscode +vstest vy wcslen webpages diff --git a/azure-pipelines.yml b/azure-pipelines.yml @@ -19,6 +19,8 @@ variables: solution: 'src/AppInstallerCLI.sln' buildPlatform: 'x86|x64' buildConfiguration: 'Release' + testBuildPlatform: 'x86' + testBuildConfiguration: 'TestRelease' appxPackageDir: '$(build.artifactStagingDirectory)\AppxPackages\\' # Do not set the build version for a PR build. @@ -65,6 +67,11 @@ jobs: displayName: Restore AppInstallerTestMsixInstaller inputs: restoreSolution: 'src\AppInstallerTestMsixInstaller\AppInstallerTestMsixInstaller.wapproj' + + - task: NuGetCommand@2 + displayName: Restore PackagedTests + inputs: + restoreSolution: 'src\PackagedTests\PackagedTests.csproj' # Restores only .NET core projects, but is still necessary, as without this the IndexCreationTool and LocalhostWebServer projects fail to build - task: DotNetCoreCLI@2 @@ -81,6 +88,7 @@ jobs: arguments: '-TargetFile binver\binver\version.h -BuildVersion $(BuildVer)' workingDirectory: 'src' + # Build all solutions in the root directory. - task: VSBuild@1 displayName: Build Solution inputs: @@ -92,6 +100,17 @@ jobs: /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload' + - task: VSBuild@1 + displayName: Build Test Project + inputs: + platform: 'x86' + solution: '$(solution)' + configuration: '$(testBuildConfiguration)' + msbuildArgs: '/p:AppxBundlePlatforms="$(testBuildPlatform)" + /p:AppxPackageDir="$(appxPackageDir)" + /p:AppxBundle=Always + /p:UapAppxPackageBuildMode=StoreUpload' + - task: PowerShell@2 displayName: Install Tests Dependencies inputs: @@ -302,6 +321,17 @@ jobs: publishLocation: 'Container' condition: succeededOrFailed() + - task: VSTest@2 + displayName: Run Com Interface Tests + inputs: + testRunTitle: 'Com Interface Tests' + platform: 'x86' + testSelector: 'testAssemblies' + testAssemblyVer2: | + src\x86\Release\PackagedTests\PackagedTests.build.appxrecipe + runSettingsFile: 'src\x86\Release\PackagedTests\Test.runsettings' + condition: succeededOrFailed() + - task: PublishBuildArtifacts@1 displayName: Publish CLI Binary inputs: diff --git a/src/AppInstallerCLI.sln b/src/AppInstallerCLI.sln @@ -4,7 +4,9 @@ VisualStudioVersion = 16.0.29409.12 MinimumVisualStudioVersion = 10.0.40219.1 Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "AppInstallerCLIPackage", "AppInstallerCLIPackage\AppInstallerCLIPackage.wapproj", "{6AA3791A-0713-4548-A357-87A323E7AC3A}" ProjectSection(ProjectDependencies) = postProject + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD} = {4BC1F40B-36C2-4BBB-8306-76E490B13BBD} {1CC41A9A-AE66-459D-9210-1E572DD7BE69} = {1CC41A9A-AE66-459D-9210-1E572DD7BE69} + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777} = {5B6F90DF-FD19-4BAE-83D9-24DAD128E777} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AppInstallerCLI", "AppInstallerCLI\AppInstallerCLI.vcxproj", "{5B6F90DF-FD19-4BAE-83D9-24DAD128E777}" @@ -123,6 +125,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinGetServer", "WinGetServe {1CC41A9A-AE66-459D-9210-1E572DD7BE69} = {1CC41A9A-AE66-459D-9210-1E572DD7BE69} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Management.Deployment.Client", "Microsoft.Management.Deployment.Client\Microsoft.Management.Deployment.Client.vcxproj", "{4BC1F40B-36C2-4BBB-8306-76E490B13BBD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Management.Deployment.Server.Test", "Microsoft.Management.Deployment.Server.Test\Microsoft.Management.Deployment.Server.Test.vcxproj", "{7DE2CFC7-5AAE-4F89-BF42-8D231E389687}" + ProjectSection(ProjectDependencies) = postProject + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D} = {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackagedTests", "PackagedTests\PackagedTests.csproj", "{8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}" + ProjectSection(ProjectDependencies) = postProject + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687} = {7DE2CFC7-5AAE-4F89-BF42-8D231E389687} + EndProjectSection +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution ManifestSchema\ManifestSchema.vcxitems*{1622da16-914f-4f57-a259-d5169003cc8c}*SharedItemsImports = 4 @@ -157,6 +171,10 @@ Global Release|ARM64 = Release|ARM64 Release|x64 = Release|x64 Release|x86 = Release|x86 + TestRelease|ARM = TestRelease|ARM + TestRelease|ARM64 = TestRelease|ARM64 + TestRelease|x64 = TestRelease|x64 + TestRelease|x86 = TestRelease|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {6AA3791A-0713-4548-A357-87A323E7AC3A}.Debug|ARM.ActiveCfg = Debug|ARM @@ -187,6 +205,10 @@ Global {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|x86.ActiveCfg = Release|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|x86.Build.0 = Release|x86 {6AA3791A-0713-4548-A357-87A323E7AC3A}.Release|x86.Deploy.0 = Release|x86 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|ARM.ActiveCfg = Release|ARM + {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|x64.ActiveCfg = Release|x64 + {6AA3791A-0713-4548-A357-87A323E7AC3A}.TestRelease|x86.ActiveCfg = Release|x86 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM.ActiveCfg = Debug|ARM {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM.Build.0 = Debug|ARM {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -207,6 +229,10 @@ Global {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x64.Build.0 = Release|x64 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x86.ActiveCfg = Release|Win32 {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.Release|x86.Build.0 = Release|Win32 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|ARM.ActiveCfg = Release|ARM + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|x64.ActiveCfg = Release|x64 + {5B6F90DF-FD19-4BAE-83D9-24DAD128E777}.TestRelease|x86.ActiveCfg = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM.ActiveCfg = Debug|ARM {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM.Build.0 = Debug|ARM {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -227,6 +253,14 @@ Global {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x64.Build.0 = Release|x64 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x86.ActiveCfg = Release|Win32 {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.Release|x86.Build.0 = Release|Win32 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM.ActiveCfg = Release|ARM + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM.Build.0 = Release|ARM + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|ARM64.Build.0 = Release|ARM64 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x64.ActiveCfg = Release|x64 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x64.Build.0 = Release|x64 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x86.ActiveCfg = Release|Win32 + {1C6E0108-2860-4B17-9F7E-FA5C6C1F3D3D}.TestRelease|x86.Build.0 = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM.ActiveCfg = Debug|ARM {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM.Build.0 = Debug|ARM {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -247,6 +281,14 @@ Global {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x64.Build.0 = Release|x64 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x86.ActiveCfg = Release|Win32 {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.Release|x86.Build.0 = Release|Win32 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM.ActiveCfg = Release|ARM + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM.Build.0 = Release|ARM + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|ARM64.Build.0 = Release|ARM64 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x64.ActiveCfg = Release|x64 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x64.Build.0 = Release|x64 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x86.ActiveCfg = Release|Win32 + {5EB88068-5FB9-4E69-89B2-72DBC5E068F9}.TestRelease|x86.Build.0 = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|ARM.ActiveCfg = Debug|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|ARM64.ActiveCfg = Debug|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Debug|x64.ActiveCfg = Debug|x64 @@ -263,6 +305,10 @@ Global {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x64.Build.0 = Release|x64 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x86.ActiveCfg = Release|Win32 {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.Release|x86.Build.0 = Release|Win32 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|ARM.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|ARM64.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|x64.ActiveCfg = Release|x64 + {89B1AAB4-2BBC-4B65-9ED7-A01D5CF88230}.TestRelease|x86.ActiveCfg = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM.ActiveCfg = Debug|ARM {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM.Build.0 = Debug|ARM {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -284,6 +330,14 @@ Global {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x64.Build.0 = Release|x64 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x86.ActiveCfg = Release|Win32 {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.Release|x86.Build.0 = Release|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM.ActiveCfg = Release|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM.Build.0 = Release|ARM + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|ARM64.Build.0 = Release|ARM64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x64.ActiveCfg = Release|x64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x64.Build.0 = Release|x64 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x86.ActiveCfg = Release|Win32 + {8BB94BB8-374F-4294-BCA1-C7811514A6B7}.TestRelease|x86.Build.0 = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM.ActiveCfg = Debug|ARM {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM.Build.0 = Debug|ARM {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -305,6 +359,14 @@ Global {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x64.Build.0 = Release|x64 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x86.ActiveCfg = Release|Win32 {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.Release|x86.Build.0 = Release|Win32 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM.ActiveCfg = Release|ARM + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM.Build.0 = Release|ARM + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|ARM64.Build.0 = Release|ARM64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x64.ActiveCfg = Release|x64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x64.Build.0 = Release|x64 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x86.ActiveCfg = Release|Win32 + {5890D6ED-7C3B-40F3-B436-B54F640D9E65}.TestRelease|x86.Build.0 = Release|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM.ActiveCfg = Debug|ARM {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM.Build.0 = Debug|ARM {FB313532-38B0-4676-9303-AB200AA13576}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -325,6 +387,10 @@ Global {FB313532-38B0-4676-9303-AB200AA13576}.Release|x64.Build.0 = Release|x64 {FB313532-38B0-4676-9303-AB200AA13576}.Release|x86.ActiveCfg = Release|Win32 {FB313532-38B0-4676-9303-AB200AA13576}.Release|x86.Build.0 = Release|Win32 + {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|ARM.ActiveCfg = Release|ARM + {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|x64.ActiveCfg = Release|x64 + {FB313532-38B0-4676-9303-AB200AA13576}.TestRelease|x86.ActiveCfg = Release|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM.ActiveCfg = Debug|ARM {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM.Build.0 = Debug|ARM {6CB84692-5994-407D-B9BD-9216AF77FE83}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -345,6 +411,10 @@ Global {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x64.Build.0 = Release|x64 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x86.ActiveCfg = Release|Win32 {6CB84692-5994-407D-B9BD-9216AF77FE83}.Release|x86.Build.0 = Release|Win32 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|ARM.ActiveCfg = Release|ARM + {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|x64.ActiveCfg = Release|x64 + {6CB84692-5994-407D-B9BD-9216AF77FE83}.TestRelease|x86.ActiveCfg = Release|Win32 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|ARM.ActiveCfg = Debug|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|ARM64.ActiveCfg = Debug|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Debug|x64.ActiveCfg = Debug|x64 @@ -361,6 +431,10 @@ Global {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x64.Build.0 = Release|x64 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x86.ActiveCfg = Release|x86 {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.Release|x86.Build.0 = Release|x86 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|ARM.ActiveCfg = TestOnly|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|ARM64.ActiveCfg = TestOnly|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|x64.ActiveCfg = Release|x64 + {3C0269FA-E582-4CA7-9E33-3881A005CA0C}.TestRelease|x86.ActiveCfg = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM.ActiveCfg = Debug|ARM {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM.Build.0 = Debug|ARM {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Debug|ARM.Deploy.0 = Debug|ARM @@ -389,6 +463,10 @@ Global {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|x86.ActiveCfg = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|x86.Build.0 = Release|x86 {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.Release|x86.Deploy.0 = Release|x86 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|ARM.ActiveCfg = Release|ARM + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|x64.ActiveCfg = Release|x64 + {3E2CBA31-CEBA-4D63-BF52-49C0718E19EA}.TestRelease|x86.ActiveCfg = Release|x86 {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Debug|ARM.ActiveCfg = Debug {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Debug|ARM64.ActiveCfg = Debug {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Debug|x64.ActiveCfg = Debug @@ -401,6 +479,10 @@ Global {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Release|ARM64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Release|x64.ActiveCfg = Release {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.Release|x86.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|ARM.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|ARM64.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|x64.ActiveCfg = Release + {C1624B2F-2BF6-4E28-92FA-1BF85C6B62A8}.TestRelease|x86.ActiveCfg = Release {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|ARM.ActiveCfg = Debug|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|ARM64.ActiveCfg = Debug|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Debug|x64.ActiveCfg = Debug|x64 @@ -417,6 +499,10 @@ Global {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x64.Build.0 = Release|x64 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x86.ActiveCfg = Release|x86 {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.Release|x86.Build.0 = Release|x86 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|ARM.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|ARM64.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|x64.ActiveCfg = Release|x64 + {3B8466CF-4FDD-4329-9C80-91321C4AAC99}.TestRelease|x86.ActiveCfg = Release|x86 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM.ActiveCfg = Debug|ARM {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM.Build.0 = Debug|ARM {82B39FDA-E86B-4713-A873-9D56DE00247A}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -438,6 +524,14 @@ Global {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x64.Build.0 = Release|x64 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x86.ActiveCfg = Release|Win32 {82B39FDA-E86B-4713-A873-9D56DE00247A}.Release|x86.Build.0 = Release|Win32 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM.ActiveCfg = Release|ARM + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM.Build.0 = Release|ARM + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|ARM64.Build.0 = Release|ARM64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x64.ActiveCfg = Release|x64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x64.Build.0 = Release|x64 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x86.ActiveCfg = Release|Win32 + {82B39FDA-E86B-4713-A873-9D56DE00247A}.TestRelease|x86.Build.0 = Release|Win32 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|ARM.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Debug|x64.ActiveCfg = Debug|x64 @@ -452,6 +546,10 @@ Global {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|ARM64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|x64.ActiveCfg = Fuzzing|x64 {1622DA16-914F-4F57-A259-D5169003CC8C}.Release|x86.ActiveCfg = Fuzzing|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|ARM.ActiveCfg = Debug|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|ARM64.ActiveCfg = Debug|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|x64.ActiveCfg = Debug|x64 + {1622DA16-914F-4F57-A259-D5169003CC8C}.TestRelease|x86.ActiveCfg = Debug|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|ARM.ActiveCfg = Debug|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|ARM64.ActiveCfg = Debug|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Debug|x64.ActiveCfg = Debug|x64 @@ -468,6 +566,10 @@ Global {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x64.Build.0 = Release|x64 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x86.ActiveCfg = Release|x86 {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.Release|x86.Build.0 = Release|x86 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|ARM.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|ARM64.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|x64.ActiveCfg = Release|x64 + {3BAF989F-7F65-465B-ACE8-BAFE42D1017E}.TestRelease|x86.ActiveCfg = Release|x86 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM.ActiveCfg = Debug|ARM {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM.Build.0 = Debug|ARM {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -488,6 +590,14 @@ Global {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x64.Build.0 = Release|x64 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x86.ActiveCfg = Release|Win32 {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.Release|x86.Build.0 = Release|Win32 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM.ActiveCfg = Release|ARM + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM.Build.0 = Release|ARM + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|ARM64.Build.0 = Release|ARM64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x64.ActiveCfg = Release|x64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x64.Build.0 = Release|x64 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x86.ActiveCfg = Release|Win32 + {866C3F06-636F-4BE8-BC24-5F86ECC606A1}.TestRelease|x86.Build.0 = Release|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM.ActiveCfg = Debug|ARM {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM.Build.0 = Debug|ARM {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -508,6 +618,14 @@ Global {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x64.Build.0 = Release|x64 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x86.ActiveCfg = Release|Win32 {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.Release|x86.Build.0 = Release|Win32 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM.ActiveCfg = Release|ARM + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM.Build.0 = Release|ARM + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|ARM64.Build.0 = Release|ARM64 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x64.ActiveCfg = Release|x64 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x64.Build.0 = Release|x64 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x86.ActiveCfg = Release|Win32 + {1CC41A9A-AE66-459D-9210-1E572DD7BE69}.TestRelease|x86.Build.0 = Release|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM.ActiveCfg = Debug|ARM {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM.Build.0 = Debug|ARM {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -528,6 +646,82 @@ Global {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x64.Build.0 = Release|x64 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x86.ActiveCfg = Release|Win32 {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.Release|x86.Build.0 = Release|Win32 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|ARM.ActiveCfg = Release|ARM + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|x64.ActiveCfg = Release|x64 + {2B00D362-AC92-41F3-A8D2-5B1599BDCA01}.TestRelease|x86.ActiveCfg = Release|Win32 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Debug|ARM.ActiveCfg = Debug|ARM + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Debug|ARM.Build.0 = Debug|ARM + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Debug|ARM64.Build.0 = Debug|ARM64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Debug|x64.ActiveCfg = Debug|x64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Debug|x64.Build.0 = Debug|x64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Debug|x86.ActiveCfg = Debug|Win32 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Debug|x86.Build.0 = Debug|Win32 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Fuzzing|x64.ActiveCfg = Debug|x64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Fuzzing|x86.ActiveCfg = Debug|Win32 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Release|ARM.ActiveCfg = Release|ARM + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Release|ARM.Build.0 = Release|ARM + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Release|ARM64.ActiveCfg = Release|ARM64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Release|ARM64.Build.0 = Release|ARM64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Release|x64.ActiveCfg = Release|x64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Release|x64.Build.0 = Release|x64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Release|x86.ActiveCfg = Release|Win32 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.Release|x86.Build.0 = Release|Win32 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.TestRelease|ARM.ActiveCfg = Release|ARM + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.TestRelease|ARM.Build.0 = Release|ARM + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.TestRelease|ARM64.Build.0 = Release|ARM64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.TestRelease|x64.ActiveCfg = Release|x64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.TestRelease|x64.Build.0 = Release|x64 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.TestRelease|x86.ActiveCfg = Release|Win32 + {4BC1F40B-36C2-4BBB-8306-76E490B13BBD}.TestRelease|x86.Build.0 = Release|Win32 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Debug|ARM.ActiveCfg = Debug|ARM + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Debug|x64.ActiveCfg = Debug|x64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Debug|x86.ActiveCfg = Debug|Win32 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Fuzzing|x64.ActiveCfg = Debug|x64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Fuzzing|x86.ActiveCfg = Debug|Win32 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Release|ARM.ActiveCfg = Release|ARM + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Release|ARM64.ActiveCfg = Release|ARM64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Release|x64.ActiveCfg = Release|x64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.Release|x86.ActiveCfg = Release|Win32 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.TestRelease|ARM.ActiveCfg = Release|ARM + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.TestRelease|ARM.Build.0 = Release|ARM + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.TestRelease|ARM64.Build.0 = Release|ARM64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.TestRelease|x64.ActiveCfg = Release|x64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.TestRelease|x64.Build.0 = Release|x64 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.TestRelease|x86.ActiveCfg = Release|Win32 + {7DE2CFC7-5AAE-4F89-BF42-8D231E389687}.TestRelease|x86.Build.0 = Release|Win32 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Debug|ARM.ActiveCfg = Debug|ARM + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Debug|x64.ActiveCfg = Debug|x64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Debug|x86.ActiveCfg = Debug|x86 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Fuzzing|ARM.ActiveCfg = Debug|ARM + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Fuzzing|x64.ActiveCfg = Debug|x64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Fuzzing|x86.ActiveCfg = Debug|x86 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Release|ARM.ActiveCfg = Release|ARM + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Release|ARM64.ActiveCfg = Release|ARM64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Release|x64.ActiveCfg = Release|x64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.Release|x86.ActiveCfg = Release|x86 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|ARM.ActiveCfg = Release|ARM + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|ARM.Build.0 = Release|ARM + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|ARM.Deploy.0 = Release|ARM + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|ARM64.ActiveCfg = Release|ARM64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|ARM64.Build.0 = Release|ARM64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|ARM64.Deploy.0 = Release|ARM64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|x64.ActiveCfg = Release|x64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|x64.Build.0 = Release|x64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|x64.Deploy.0 = Release|x64 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|x86.ActiveCfg = Release|x86 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|x86.Build.0 = Release|x86 + {8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}.TestRelease|x86.Deploy.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/Microsoft.Management.Deployment.Client/Client.CreateCompositePackageCatalogOptions.h b/src/Microsoft.Management.Deployment.Client/Client.CreateCompositePackageCatalogOptions.h @@ -0,0 +1,15 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#pragma once +#include "CreateCompositePackageCatalogOptions.g.h" + +namespace winrt::Microsoft::Management::Deployment::factory_implementation +{ + struct CreateCompositePackageCatalogOptions : CreateCompositePackageCatalogOptionsT<CreateCompositePackageCatalogOptions, implementation::CreateCompositePackageCatalogOptions> + { + auto ActivateInstance() const + { + return winrt::create_instance<winrt::Microsoft::Management::Deployment::PackageManager>(__uuidof(implementation::CreateCompositePackageCatalogOptions), CLSCTX_ALL); + } + }; +} diff --git a/src/Microsoft.Management.Deployment.Client/Client.FindPackagesOptions.h b/src/Microsoft.Management.Deployment.Client/Client.FindPackagesOptions.h @@ -0,0 +1,15 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#pragma once +#include "FindPackagesOptions.g.h" + +namespace winrt::Microsoft::Management::Deployment::factory_implementation +{ + struct FindPackagesOptions : FindPackagesOptionsT<FindPackagesOptions, implementation::FindPackagesOptions> + { + auto ActivateInstance() const + { + return winrt::create_instance<winrt::Microsoft::Management::Deployment::PackageManager>(__uuidof(implementation::FindPackagesOptions), CLSCTX_ALL); + } + }; +} diff --git a/src/Microsoft.Management.Deployment.Client/Client.InstallOptions.h b/src/Microsoft.Management.Deployment.Client/Client.InstallOptions.h @@ -0,0 +1,15 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#pragma once +#include "InstallOptions.g.h" + +namespace winrt::Microsoft::Management::Deployment::factory_implementation +{ + struct InstallOptions : InstallOptionsT<InstallOptions, implementation::InstallOptions> + { + auto ActivateInstance() const + { + return winrt::create_instance<winrt::Microsoft::Management::Deployment::PackageManager>(__uuidof(implementation::InstallOptions), CLSCTX_ALL); + } + }; +} diff --git a/src/Microsoft.Management.Deployment.Client/Client.PackageManager.h b/src/Microsoft.Management.Deployment.Client/Client.PackageManager.h @@ -0,0 +1,13 @@ +#pragma once +#include "PackageManager.g.h" + +namespace winrt::Microsoft::Management::Deployment::factory_implementation +{ + struct PackageManager : PackageManagerT<PackageManager, implementation::PackageManager> + { + auto ActivateInstance() const + { + return winrt::create_instance<winrt::Microsoft::Management::Deployment::PackageManager>(__uuidof(implementation::PackageManager), CLSCTX_ALL); + } + }; +} diff --git a/src/Microsoft.Management.Deployment.Client/Client.PackageMatchFilter.h b/src/Microsoft.Management.Deployment.Client/Client.PackageMatchFilter.h @@ -0,0 +1,15 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#pragma once +#include "PackageMatchFilter.g.h" + +namespace winrt::Microsoft::Management::Deployment::factory_implementation +{ + struct PackageMatchFilter : PackageMatchFilterT<PackageMatchFilter, implementation::PackageMatchFilter> + { + auto ActivateInstance() const + { + return winrt::create_instance<winrt::Microsoft::Management::Deployment::PackageManager>(__uuidof(implementation::PackageMatchFilter), CLSCTX_ALL); + } + }; +} diff --git a/src/Microsoft.Management.Deployment.Client/CreateCompositePackageCatalogOptions.cpp b/src/Microsoft.Management.Deployment.Client/CreateCompositePackageCatalogOptions.cpp @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" +#pragma warning( push ) +#pragma warning ( disable : 4467 6388) +#include <CreateCompositePackageCatalogOptions.h> +#include <Client.CreateCompositePackageCatalogOptions.h> +#pragma warning( pop ) +#include "CreateCompositePackageCatalogOptions.g.cpp" + +namespace winrt::Microsoft::Management::Deployment::implementation +{ + winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::PackageCatalogReference> CreateCompositePackageCatalogOptions::Catalogs() + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::CompositeSearchBehavior CreateCompositePackageCatalogOptions::CompositeSearchBehavior() + { + throw hresult_not_implemented(); + } + void CreateCompositePackageCatalogOptions::CompositeSearchBehavior(winrt::Microsoft::Management::Deployment::CompositeSearchBehavior const&) + { + throw hresult_not_implemented(); + } +} diff --git a/src/Microsoft.Management.Deployment.Client/FindPackagesOptions.cpp b/src/Microsoft.Management.Deployment.Client/FindPackagesOptions.cpp @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" +#pragma warning( push ) +#pragma warning ( disable : 4467 6388) +#include <FindPackagesOptions.h> +#include <Client.FindPackagesOptions.h> +#pragma warning( pop ) +#include "FindPackagesOptions.g.cpp" + +namespace winrt::Microsoft::Management::Deployment::implementation +{ + winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::PackageMatchFilter> FindPackagesOptions::Selectors() + { + throw hresult_not_implemented(); + } + winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::PackageMatchFilter> FindPackagesOptions::Filters() + { + throw hresult_not_implemented(); + } + uint32_t FindPackagesOptions::ResultLimit() + { + throw hresult_not_implemented(); + } + void FindPackagesOptions::ResultLimit(uint32_t) + { + throw hresult_not_implemented(); + } +} diff --git a/src/Microsoft.Management.Deployment.Client/InstallOptions.cpp b/src/Microsoft.Management.Deployment.Client/InstallOptions.cpp @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" +#pragma warning( push ) +#pragma warning ( disable : 4467 6388) +#include <InstallOptions.h> +#include <Client.InstallOptions.h> +#pragma warning( pop ) +#include "InstallOptions.g.cpp" + +namespace winrt::Microsoft::Management::Deployment::implementation +{ + InstallOptions::InstallOptions() + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::PackageVersionId InstallOptions::PackageVersionId() + { + throw hresult_not_implemented(); + } + void InstallOptions::PackageVersionId(winrt::Microsoft::Management::Deployment::PackageVersionId const&) + { + throw hresult_not_implemented(); + } + hstring InstallOptions::PreferredInstallLocation() + { + throw hresult_not_implemented(); + } + void InstallOptions::PreferredInstallLocation(hstring const&) + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::PackageInstallScope InstallOptions::PackageInstallScope() + { + throw hresult_not_implemented(); + } + void InstallOptions::PackageInstallScope(winrt::Microsoft::Management::Deployment::PackageInstallScope const&) + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::PackageInstallMode InstallOptions::PackageInstallMode() + { + throw hresult_not_implemented(); + } + void InstallOptions::PackageInstallMode(winrt::Microsoft::Management::Deployment::PackageInstallMode const&) + { + throw hresult_not_implemented(); + } + hstring InstallOptions::LogOutputPath() + { + throw hresult_not_implemented(); + } + void InstallOptions::LogOutputPath(hstring const&) + { + throw hresult_not_implemented(); + } + bool InstallOptions::AllowHashMismatch() + { + throw hresult_not_implemented(); + } + void InstallOptions::AllowHashMismatch(bool) + { + throw hresult_not_implemented(); + } + hstring InstallOptions::ReplacementInstallerArguments() + { + throw hresult_not_implemented(); + } + void InstallOptions::ReplacementInstallerArguments(hstring const&) + { + throw hresult_not_implemented(); + } + hstring InstallOptions::CorrelationData() + { + throw hresult_not_implemented(); + } + void InstallOptions::CorrelationData(hstring const&) + { + throw hresult_not_implemented(); + } + hstring InstallOptions::AdditionalPackageCatalogArguments() + { + throw hresult_not_implemented(); + } + void InstallOptions::AdditionalPackageCatalogArguments(hstring const&) + { + throw hresult_not_implemented(); + } + winrt::Windows::Foundation::Collections::IVector<winrt::Windows::System::ProcessorArchitecture> InstallOptions::AllowedArchitectures() + { + throw hresult_not_implemented(); + } +} diff --git a/src/Microsoft.Management.Deployment.Client/Microsoft.Management.Deployment.Client.vcxproj b/src/Microsoft.Management.Deployment.Client/Microsoft.Management.Deployment.Client.vcxproj @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props')" /> + <PropertyGroup Label="Globals"> + <CppWinRTOptimized>true</CppWinRTOptimized> + <CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge> + <CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata> + <MinimalCoreWin>true</MinimalCoreWin> + <ProjectGuid>{4bc1f40b-36c2-4bbb-8306-76e490b13bbd}</ProjectGuid> + <ProjectName>Microsoft.Management.Deployment.Client</ProjectName> + <RootNamespace>Microsoft.Management.Deployment</RootNamespace> + <DefaultLanguage>en-US</DefaultLanguage> + <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion> + <AppContainerApplication>true</AppContainerApplication> + <ApplicationType>Windows Store</ApplicationType> + <ApplicationTypeRevision>10.0</ApplicationTypeRevision> + <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.19041.0</WindowsTargetPlatformVersion> + <WindowsTargetPlatformMinVersion>10.0.17134.0</WindowsTargetPlatformMinVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|ARM64"> + <Configuration>Debug</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM64"> + <Configuration>Release</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + <GenerateManifest>false</GenerateManifest> + <DesktopCompatible>true</DesktopCompatible> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> + <UseDebugLibraries>true</UseDebugLibraries> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <LinkIncremental>false</LinkIncremental> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets"> + <Import Project="PropertySheet.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <IncludePath>..\Microsoft.Management.Deployment;$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> + <OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\$(ProjectName)\</OutDir> + <IntDir>$(PlatformTarget)\$(Configuration)\</IntDir> + <TargetName>$(RootNamespace)</TargetName> + <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors> + <RunCodeAnalysis>false</RunCodeAnalysis> + <CodeAnalysisRuleSet>..\CodeAnalysis.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <WarningLevel>Level4</WarningLevel> + <AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions> + <!--Temporarily disable cppwinrt heap enforcement to work around xaml compiler generated std::shared_ptr use --> + <AdditionalOptions Condition="'$(CppWinRTHeapEnforcement)'==''">/DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)</AdditionalOptions> + <DisableSpecificWarnings> + </DisableSpecificWarnings> + <PreprocessorDefinitions>INCLUDE_ONLY_INTERFACE_METHODS;_WINRT_DLL;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateWindowsMetadata>false</GenerateWindowsMetadata> + <ModuleDefinitionFile>Microsoft_Management_Deployment_Client.def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> + <ClCompile> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'"> + <ClCompile> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="pch.h" /> + <ClInclude Include="Client.CreateCompositePackageCatalogOptions.h" /> + <ClInclude Include="Client.FindPackagesOptions.h" /> + <ClInclude Include="Client.InstallOptions.h" /> + <ClInclude Include="Client.PackageManager.h" /> + <ClInclude Include="Client.PackageMatchFilter.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="CreateCompositePackageCatalogOptions.cpp" /> + <ClCompile Include="FindPackagesOptions.cpp" /> + <ClCompile Include="InstallOptions.cpp" /> + <ClCompile Include="PackageMatchFilter.cpp" /> + <ClCompile Include="pch.cpp"> + <PrecompiledHeader>Create</PrecompiledHeader> + </ClCompile> + <ClCompile Include="PackageManager.cpp" /> + <ClCompile Include="$(GeneratedFilesDir)module.g.cpp" /> + </ItemGroup> + <ItemGroup> + <Midl Include="..\Microsoft.Management.Deployment\PackageManager.idl" /> + </ItemGroup> + <ItemGroup> + <None Include="Microsoft_Management_Deployment_Client.def" /> + </ItemGroup> + <ItemGroup> + <None Include="packages.config" /> + <None Include="PropertySheet.props" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + <Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets')" /> + </ImportGroup> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props'))" /> + <Error Condition="!Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets'))" /> + </Target> +</Project>+ \ No newline at end of file diff --git a/src/Microsoft.Management.Deployment.Client/Microsoft_Management_Deployment_Client.def b/src/Microsoft.Management.Deployment.Client/Microsoft_Management_Deployment_Client.def @@ -0,0 +1,3 @@ +EXPORTS +DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE +DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE diff --git a/src/Microsoft.Management.Deployment.Client/PackageManager.cpp b/src/Microsoft.Management.Deployment.Client/PackageManager.cpp @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" +#pragma warning( push ) +#pragma warning ( disable : 4467 6388) +#include <PackageManager.h> +#include <Client.PackageManager.h> +#pragma warning( pop ) +#include "PackageManager.g.cpp" + +namespace winrt::Microsoft::Management::Deployment::implementation +{ + winrt::Windows::Foundation::Collections::IVectorView<winrt::Microsoft::Management::Deployment::PackageCatalogReference> PackageManager::GetPackageCatalogs() + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::PackageCatalogReference PackageManager::GetPredefinedPackageCatalog(winrt::Microsoft::Management::Deployment::PredefinedPackageCatalog const&) + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::PackageCatalogReference PackageManager::GetLocalPackageCatalog(winrt::Microsoft::Management::Deployment::LocalPackageCatalog const&) + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::PackageCatalogReference PackageManager::GetPackageCatalogByName(hstring const&) + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::PackageCatalogReference PackageManager::CreateCompositePackageCatalog(winrt::Microsoft::Management::Deployment::CreateCompositePackageCatalogOptions const&) + { + throw hresult_not_implemented(); + } + winrt::Windows::Foundation::IAsyncOperationWithProgress<winrt::Microsoft::Management::Deployment::InstallResult, winrt::Microsoft::Management::Deployment::InstallProgress> PackageManager::InstallPackageAsync(winrt::Microsoft::Management::Deployment::CatalogPackage package, winrt::Microsoft::Management::Deployment::InstallOptions) + { + throw hresult_not_implemented(); + } + winrt::Windows::Foundation::IAsyncOperationWithProgress<winrt::Microsoft::Management::Deployment::InstallResult, winrt::Microsoft::Management::Deployment::InstallProgress> PackageManager::GetInstallProgress(winrt::Microsoft::Management::Deployment::CatalogPackage package, winrt::Microsoft::Management::Deployment::PackageCatalogInfo catalogInfo) + { + throw hresult_not_implemented(); + } + +} diff --git a/src/Microsoft.Management.Deployment.Client/PackageMatchFilter.cpp b/src/Microsoft.Management.Deployment.Client/PackageMatchFilter.cpp @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" +#pragma warning( push ) +#pragma warning ( disable : 4467 6388) +#include <PackageMatchFilter.h> +#include <Client.PackageMatchFilter.h> +#pragma warning( pop ) +#include "PackageMatchFilter.g.cpp" + +namespace winrt::Microsoft::Management::Deployment::implementation +{ + winrt::Microsoft::Management::Deployment::PackageFieldMatchOption PackageMatchFilter::Option() + { + throw hresult_not_implemented();; + } + void PackageMatchFilter::Option(winrt::Microsoft::Management::Deployment::PackageFieldMatchOption const&) + { + throw hresult_not_implemented(); + } + winrt::Microsoft::Management::Deployment::PackageMatchField PackageMatchFilter::Field() + { + throw hresult_not_implemented(); + } + void PackageMatchFilter::Field(winrt::Microsoft::Management::Deployment::PackageMatchField const&) + { + throw hresult_not_implemented(); + } + hstring PackageMatchFilter::Value() + { + throw hresult_not_implemented(); + } + void PackageMatchFilter::Value(hstring const&) + { + throw hresult_not_implemented(); + } +} diff --git a/src/Microsoft.Management.Deployment.Client/PropertySheet.props b/src/Microsoft.Management.Deployment.Client/PropertySheet.props @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ImportGroup Label="PropertySheets" /> + <PropertyGroup Label="UserMacros" /> + <!-- + To customize common C++/WinRT project properties: + * right-click the project node + * expand the Common Properties item + * select the C++/WinRT property page + + For more advanced scenarios, and complete documentation, please see: + https://github.com/Microsoft/cppwinrt/tree/master/nuget + --> + <PropertyGroup /> + <ItemDefinitionGroup /> +</Project>+ \ No newline at end of file diff --git a/src/Microsoft.Management.Deployment.Client/packages.config b/src/Microsoft.Management.Deployment.Client/packages.config @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="Microsoft.Windows.CppWinRT" version="2.0.210505.3" targetFramework="native" /> +</packages>+ \ No newline at end of file diff --git a/src/Microsoft.Management.Deployment.Client/pch.cpp b/src/Microsoft.Management.Deployment.Client/pch.cpp @@ -0,0 +1,3 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#include "pch.h" diff --git a/src/Microsoft.Management.Deployment.Client/pch.h b/src/Microsoft.Management.Deployment.Client/pch.h @@ -0,0 +1,7 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#pragma once +#include <unknwn.h> +#include <winrt/Windows.Foundation.h> +#include <winrt/Windows.Foundation.Collections.h> +#include <winrt/Microsoft.Management.Deployment.h> diff --git a/src/Microsoft.Management.Deployment.Server.Test/Microsoft.Management.Deployment.Server.Test.vcxproj b/src/Microsoft.Management.Deployment.Server.Test/Microsoft.Management.Deployment.Server.Test.vcxproj @@ -0,0 +1,173 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props')" /> + <PropertyGroup Label="Globals"> + <CppWinRTOptimized>true</CppWinRTOptimized> + <CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge> + <CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata> + <MinimalCoreWin>true</MinimalCoreWin> + <VCProjectVersion>15.0</VCProjectVersion> + <ProjectGuid>{7DE2CFC7-5AAE-4F89-BF42-8D231E389687}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>Microsoft.Management.Deployment.Server.Test</RootNamespace> + <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.18362.0</WindowsTargetPlatformVersion> + <WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + <ProjectName>Microsoft.Management.Deployment.Server.Test</ProjectName> + <TargetName>Microsoft.Management.Deployment.Server.Test</TargetName> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|ARM64"> + <Configuration>Debug</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM64"> + <Configuration>Release</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> + <UseDebugLibraries>true</UseDebugLibraries> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <LinkIncremental>false</LinkIncremental> + <SpectreMitigation>Spectre</SpectreMitigation> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\$(ProjectName)\</OutDir> + <IntDir>$(PlatformTarget)\$(Configuration)\</IntDir> + <LibraryPath>$(OutDir)..\Microsoft.Management.Deployment;$(OutDir)..\AppInstallerCLICore;$(OutDir)..\JsonCppLib;$(OutDir)..\AppInstallerRepositoryCore;$(OutDir)..\YamlCppLib;$(OutDir)..\AppInstallerCommonCore;$(OutDir)..\cpprestsdk;$(LibraryPath)</LibraryPath> + <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors> + <RunCodeAnalysis>false</RunCodeAnalysis> + <CodeAnalysisRuleSet>..\CodeAnalysis.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <WarningLevel>Level4</WarningLevel> + <AdditionalOptions>%(AdditionalOptions) /permissive- /bigobj</AdditionalOptions> + <TreatWarningAsError>true</TreatWarningAsError> + <SDLCheck>true</SDLCheck> + <EnablePREfast>true</EnablePREfast> + <AdditionalIncludeDirectories>$(ProjectDir)..\AppInstallerCLICore;$(ProjectDir)..\AppInstallerRepositoryCore;$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateWindowsMetadata>false</GenerateWindowsMetadata> + <ModuleDefinitionFile>Microsoft_Management_Deployment_Server_Test.def</ModuleDefinitionFile> + <AdditionalLibraryDirectories>$(OutDir)..\Microsoft.Management.Deployment;$(OutDir)..\AppInstallerCLICore;$(OutDir)..\JsonCppLib;$(OutDir)..\AppInstallerRepositoryCore;$(OutDir)..\YamlCppLib;$(OutDir)..\AppInstallerCommonCore;$(OutDir)..\cpprestsdk;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>Microsoft.Management.Deployment.Server.lib;AppInstallerCLICore.lib;AppInstallerCommonCore.lib;AppInstallerRepositoryCore.lib;JsonCppLib.lib;YamlCppLib.lib;cpprestsdk.lib;wininet.lib;shell32.lib;winsqlite3.lib;shlwapi.lib;icuuc.lib;icuin.lib;urlmon.lib;Advapi32.lib;winhttp.lib;onecoreuap.lib;msi.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> + <ClCompile> + <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="Microsoft_Management_Deployment_Server_Test.def" /> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\AppInstallerCommonCore\AppInstallerCommonCore.vcxproj"> + <Project>{5890d6ed-7c3b-40f3-b436-b54f640d9e65}</Project> + </ProjectReference> + <ProjectReference Include="..\AppInstallerRepositoryCore\AppInstallerRepositoryCore.vcxproj"> + <Project>{5eb88068-5fb9-4e69-89b2-72dbc5e068f9}</Project> + </ProjectReference> + <ProjectReference Include="..\cpprestsdk\cpprestsdk.vcxproj"> + <Project>{866c3f06-636f-4be8-bc24-5f86ecc606a1}</Project> + </ProjectReference> + <ProjectReference Include="..\JsonCppLib\JsonCppLib.vcxproj"> + <Project>{82b39fda-e86b-4713-a873-9d56de00247a}</Project> + </ProjectReference> + <ProjectReference Include="..\YamlCppLib\YamlCppLib.vcxproj"> + <Project>{8bb94bb8-374f-4294-bca1-c7811514a6b7}</Project> + </ProjectReference> + <ProjectReference Include="..\Microsoft.Management.Deployment\Microsoft.Management.Deployment.vcxproj"> + <Project>{1cc41a9a-ae66-459d-9210-1e572dd7be69}</Project> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dllmain.cpp" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + <Import Project="$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" /> + <Import Project="$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets')" /> + </ImportGroup> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" /> + <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props'))" /> + <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets'))" /> + </Target> +</Project>+ \ No newline at end of file diff --git a/src/Microsoft.Management.Deployment.Server.Test/Microsoft.Management.Deployment.Server.Test.vcxproj.filters b/src/Microsoft.Management.Deployment.Server.Test/Microsoft.Management.Deployment.Server.Test.vcxproj.filters @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="packages.config" /> + <None Include="Microsoft_Management_Deployment_Server_Test.def"> + <Filter>Source Files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dllmain.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>+ \ No newline at end of file diff --git a/src/Microsoft.Management.Deployment.Server.Test/Microsoft_Management_Deployment_Server_Test.def b/src/Microsoft.Management.Deployment.Server.Test/Microsoft_Management_Deployment_Server_Test.def @@ -0,0 +1,3 @@ +EXPORTS +DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE +DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE diff --git a/src/Microsoft.Management.Deployment.Server.Test/dllmain.cpp b/src/Microsoft.Management.Deployment.Server.Test/dllmain.cpp @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#include "winrt/base.h" +#include <windows.h> +#include <string_view> + +void* __stdcall Microsoft_Management_Deployment_get_activation_factory(std::wstring_view const& name); +bool __stdcall Microsoft_Management_Deployment_can_unload_now(); + +BOOL APIENTRY DllMain( HMODULE, + DWORD ul_reason_for_call, + LPVOID + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + +void* __stdcall winrt_get_activation_factory( + std::wstring_view const& name) +{ + return Microsoft_Management_Deployment_get_activation_factory(name); +} + +int32_t __stdcall WINRT_GetActivationFactory(void* classId, void** factory) noexcept try +{ + std::wstring_view const name{ *reinterpret_cast<winrt::hstring*>(&classId) }; + *factory = winrt_get_activation_factory(name); + + if (*factory) + { + return 0; + } + + return winrt::hresult_class_not_available(name).to_abi(); +} +catch (...) { return winrt::to_hresult(); } + +bool __stdcall winrt_can_unload_now() noexcept +{ + return Microsoft_Management_Deployment_can_unload_now(); +} + +int32_t __stdcall WINRT_CanUnloadNow() noexcept +{ + return winrt_can_unload_now() ? 0 : 1; +}+ \ No newline at end of file diff --git a/src/Microsoft.Management.Deployment/CatalogPackage.h b/src/Microsoft.Management.Deployment/CatalogPackage.h @@ -8,9 +8,12 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct CatalogPackage : CatalogPackageT<CatalogPackage> { CatalogPackage() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize( std::shared_ptr<const ::AppInstaller::Repository::ISource> source, std::shared_ptr<::AppInstaller::Repository::IPackage> package); +#endif hstring Id(); hstring Name(); @@ -19,6 +22,8 @@ namespace winrt::Microsoft::Management::Deployment::implementation winrt::Microsoft::Management::Deployment::PackageVersionInfo DefaultInstallVersion(); winrt::Microsoft::Management::Deployment::PackageVersionInfo GetPackageVersionInfo(winrt::Microsoft::Management::Deployment::PackageVersionId const& versionKey); bool IsUpdateAvailable(); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: std::shared_ptr<const ::AppInstaller::Repository::ISource> m_source; std::shared_ptr<::AppInstaller::Repository::IPackage> m_package; @@ -28,5 +33,6 @@ namespace winrt::Microsoft::Management::Deployment::implementation std::once_flag m_installedVersionOnceFlag; std::once_flag m_availableVersionsOnceFlag; std::once_flag m_defaultInstallVersionOnceFlag; +#endif }; } \ No newline at end of file diff --git a/src/Microsoft.Management.Deployment/ConnectResult.h b/src/Microsoft.Management.Deployment/ConnectResult.h @@ -8,12 +8,18 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct ConnectResult : ConnectResultT<ConnectResult> { ConnectResult() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize(winrt::Microsoft::Management::Deployment::ConnectResultStatus status, winrt::Microsoft::Management::Deployment::PackageCatalog packageCatalog); +#endif winrt::Microsoft::Management::Deployment::ConnectResultStatus Status(); - winrt::Microsoft::Management::Deployment::PackageCatalog PackageCatalog(); + winrt::Microsoft::Management::Deployment::PackageCatalog PackageCatalog(); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: winrt::Microsoft::Management::Deployment::ConnectResultStatus m_status = winrt::Microsoft::Management::Deployment::ConnectResultStatus::Ok; winrt::Microsoft::Management::Deployment::PackageCatalog m_packageCatalog{ nullptr }; +#endif }; } diff --git a/src/Microsoft.Management.Deployment/CreateCompositePackageCatalogOptions.h b/src/Microsoft.Management.Deployment/CreateCompositePackageCatalogOptions.h @@ -17,14 +17,20 @@ namespace winrt::Microsoft::Management::Deployment::implementation winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::PackageCatalogReference> Catalogs(); winrt::Microsoft::Management::Deployment::CompositeSearchBehavior CompositeSearchBehavior(); void CompositeSearchBehavior(winrt::Microsoft::Management::Deployment::CompositeSearchBehavior const& value); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::PackageCatalogReference> m_catalogs{ winrt::single_threaded_vector<Microsoft::Management::Deployment::PackageCatalogReference>() }; winrt::Microsoft::Management::Deployment::CompositeSearchBehavior m_compositeSearchBehavior = winrt::Microsoft::Management::Deployment::CompositeSearchBehavior::RemotePackagesFromAllCatalogs; +#endif }; } + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) namespace winrt::Microsoft::Management::Deployment::factory_implementation { struct CreateCompositePackageCatalogOptions : CreateCompositePackageCatalogOptionsT<CreateCompositePackageCatalogOptions, implementation::CreateCompositePackageCatalogOptions> { }; } +#endif diff --git a/src/Microsoft.Management.Deployment/FindPackagesOptions.h b/src/Microsoft.Management.Deployment/FindPackagesOptions.h @@ -18,17 +18,23 @@ namespace winrt::Microsoft::Management::Deployment::implementation winrt::Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::PackageMatchFilter> Filters(); uint32_t ResultLimit(); void ResultLimit(uint32_t value); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: uint32_t m_resultLimit = 0; Windows::Foundation::Collections::IVector<Microsoft::Management::Deployment::PackageMatchFilter> m_selectors{ winrt::single_threaded_vector<winrt::Microsoft::Management::Deployment::PackageMatchFilter>() }; Windows::Foundation::Collections::IVector<Microsoft::Management::Deployment::PackageMatchFilter> m_filters{ winrt::single_threaded_vector<winrt::Microsoft::Management::Deployment::PackageMatchFilter>() }; +#endif }; } + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) namespace winrt::Microsoft::Management::Deployment::factory_implementation { struct FindPackagesOptions : FindPackagesOptionsT<FindPackagesOptions, implementation::FindPackagesOptions> { }; } +#endif diff --git a/src/Microsoft.Management.Deployment/FindPackagesResult.h b/src/Microsoft.Management.Deployment/FindPackagesResult.h @@ -8,19 +8,24 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct FindPackagesResult : FindPackagesResultT<FindPackagesResult> { FindPackagesResult() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize( winrt::Microsoft::Management::Deployment::FindPackagesResultStatus errorCode, bool wasLimitExceeded, Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::MatchResult> matches); +#endif winrt::Microsoft::Management::Deployment::FindPackagesResultStatus Status(); winrt::Windows::Foundation::Collections::IVectorView<winrt::Microsoft::Management::Deployment::MatchResult> Matches(); bool WasLimitExceeded(); +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: winrt::Microsoft::Management::Deployment::FindPackagesResultStatus m_status = winrt::Microsoft::Management::Deployment::FindPackagesResultStatus::Ok; Windows::Foundation::Collections::IVector<winrt::Microsoft::Management::Deployment::MatchResult> m_matches{ winrt::single_threaded_vector<winrt::Microsoft::Management::Deployment::MatchResult>() }; bool m_wasLimitExceeded = false; +#endif }; } diff --git a/src/Microsoft.Management.Deployment/InstallOptions.h b/src/Microsoft.Management.Deployment/InstallOptions.h @@ -33,6 +33,8 @@ namespace winrt::Microsoft::Management::Deployment::implementation hstring AdditionalPackageCatalogArguments(); void AdditionalPackageCatalogArguments(hstring const& value); winrt::Windows::Foundation::Collections::IVector<winrt::Windows::System::ProcessorArchitecture> AllowedArchitectures(); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: winrt::Microsoft::Management::Deployment::PackageVersionId m_packageVersionId{ nullptr }; std::wstring m_preferredInstallLocation = L""; @@ -45,11 +47,15 @@ namespace winrt::Microsoft::Management::Deployment::implementation std::wstring m_additionalPackageCatalogArguments = L""; Windows::Foundation::Collections::IVector<Windows::System::ProcessorArchitecture> m_allowedArchitectures{ winrt::single_threaded_vector<winrt::Windows::System::ProcessorArchitecture>() }; +#endif }; } + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) namespace winrt::Microsoft::Management::Deployment::factory_implementation { struct InstallOptions : InstallOptionsT<InstallOptions, implementation::InstallOptions> { }; } +#endif diff --git a/src/Microsoft.Management.Deployment/InstallResult.h b/src/Microsoft.Management.Deployment/InstallResult.h @@ -8,20 +8,26 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct InstallResult : InstallResultT<InstallResult> { InstallResult() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize( winrt::Microsoft::Management::Deployment::InstallResultStatus status, winrt::hresult extendedErrorCode, hstring const& correlationData, bool rebootRequired); +#endif hstring CorrelationData(); bool RebootRequired(); winrt::Microsoft::Management::Deployment::InstallResultStatus Status(); winrt::hresult ExtendedErrorCode(); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: std::wstring m_correlationData = L""; bool m_rebootRequired = false; winrt::Microsoft::Management::Deployment::InstallResultStatus m_status = winrt::Microsoft::Management::Deployment::InstallResultStatus::Ok; winrt::hresult m_extendedErrorCode = S_OK; +#endif }; } diff --git a/src/Microsoft.Management.Deployment/MatchResult.h b/src/Microsoft.Management.Deployment/MatchResult.h @@ -12,8 +12,11 @@ namespace winrt::Microsoft::Management::Deployment::implementation winrt::Microsoft::Management::Deployment::CatalogPackage CatalogPackage(); winrt::Microsoft::Management::Deployment::PackageMatchFilter MatchCriteria(); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: Microsoft::Management::Deployment::CatalogPackage m_catalogPackage{ nullptr }; Microsoft::Management::Deployment::PackageMatchFilter m_matchCriteria{ nullptr }; +#endif }; } diff --git a/src/Microsoft.Management.Deployment/Microsoft.Management.Deployment.vcxproj b/src/Microsoft.Management.Deployment/Microsoft.Management.Deployment.vcxproj @@ -14,7 +14,7 @@ <ApplicationTypeRevision>10.0</ApplicationTypeRevision> <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.18362.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion> - <CppWinRTParameters>-lib Microsoft_Management_Deployment</CppWinRTParameters> + <CppWinRTParameters>-library Microsoft_Management_Deployment</CppWinRTParameters> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <ItemGroup Label="ProjectConfigurations"> @@ -85,6 +85,7 @@ <IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);</IncludePath> <OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\$(ProjectName)\</OutDir> <IntDir>$(PlatformTarget)\$(Configuration)\</IntDir> + <TargetName>$(RootNamespace).Server</TargetName> <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors> <RunCodeAnalysis>false</RunCodeAnalysis> <CodeAnalysisRuleSet>..\CodeAnalysis.ruleset</CodeAnalysisRuleSet> diff --git a/src/Microsoft.Management.Deployment/PackageCatalog.h b/src/Microsoft.Management.Deployment/PackageCatalog.h @@ -8,19 +8,24 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct PackageCatalog : PackageCatalogT<PackageCatalog> { PackageCatalog() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize( winrt::Microsoft::Management::Deployment::PackageCatalogInfo info, std::shared_ptr<const ::AppInstaller::Repository::ISource> source, bool isComposite); +#endif bool IsComposite(); winrt::Microsoft::Management::Deployment::PackageCatalogInfo Info(); winrt::Windows::Foundation::IAsyncOperation<winrt::Microsoft::Management::Deployment::FindPackagesResult> FindPackagesAsync(winrt::Microsoft::Management::Deployment::FindPackagesOptions options); winrt::Microsoft::Management::Deployment::FindPackagesResult FindPackages(winrt::Microsoft::Management::Deployment::FindPackagesOptions const& options); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: winrt::Microsoft::Management::Deployment::PackageCatalogInfo m_info{ nullptr }; std::shared_ptr<const ::AppInstaller::Repository::ISource> m_source; bool m_isComposite = false; - +#endif }; } diff --git a/src/Microsoft.Management.Deployment/PackageCatalogInfo.h b/src/Microsoft.Management.Deployment/PackageCatalogInfo.h @@ -8,8 +8,11 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct PackageCatalogInfo : PackageCatalogInfoT<PackageCatalogInfo> { PackageCatalogInfo() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize(const ::AppInstaller::Repository::SourceDetails& sourceDetails); ::AppInstaller::Repository::SourceDetails& GetSourceDetails(); +#endif hstring Id(); hstring Name(); @@ -18,7 +21,10 @@ namespace winrt::Microsoft::Management::Deployment::implementation winrt::Windows::Foundation::DateTime LastUpdateTime(); winrt::Microsoft::Management::Deployment::PackageCatalogOrigin Origin(); winrt::Microsoft::Management::Deployment::PackageCatalogTrustLevel TrustLevel(); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: ::AppInstaller::Repository::SourceDetails m_sourceDetails{}; +#endif }; } diff --git a/src/Microsoft.Management.Deployment/PackageCatalogReference.h b/src/Microsoft.Management.Deployment/PackageCatalogReference.h @@ -8,8 +8,11 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct PackageCatalogReference : PackageCatalogReferenceT<PackageCatalogReference> { PackageCatalogReference() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize(winrt::Microsoft::Management::Deployment::PackageCatalogInfo packageCatalogInfo); void Initialize(winrt::Microsoft::Management::Deployment::CreateCompositePackageCatalogOptions options); +#endif bool IsComposite(); winrt::Microsoft::Management::Deployment::PackageCatalogInfo Info(); @@ -17,8 +20,11 @@ namespace winrt::Microsoft::Management::Deployment::implementation winrt::Microsoft::Management::Deployment::ConnectResult Connect(); hstring AdditionalPackageCatalogArguments(); void AdditionalPackageCatalogArguments(hstring const& value); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: winrt::Microsoft::Management::Deployment::CreateCompositePackageCatalogOptions m_compositePackageCatalogOptions{ nullptr }; winrt::Microsoft::Management::Deployment::PackageCatalogInfo m_info{ nullptr }; +#endif }; } diff --git a/src/Microsoft.Management.Deployment/PackageManager.h b/src/Microsoft.Management.Deployment/PackageManager.h @@ -26,9 +26,12 @@ namespace winrt::Microsoft::Management::Deployment::implementation GetInstallProgress(winrt::Microsoft::Management::Deployment::CatalogPackage package, winrt::Microsoft::Management::Deployment::PackageCatalogInfo catalogInfo); }; } + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) namespace winrt::Microsoft::Management::Deployment::factory_implementation { struct PackageManager : PackageManagerT<PackageManager, implementation::PackageManager> { }; } +#endif diff --git a/src/Microsoft.Management.Deployment/PackageMatchFilter.h b/src/Microsoft.Management.Deployment/PackageMatchFilter.h @@ -13,7 +13,10 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct PackageMatchFilter : PackageMatchFilterT<PackageMatchFilter> { PackageMatchFilter() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize(::AppInstaller::Repository::PackageMatchFilter matchFilter); +#endif winrt::Microsoft::Management::Deployment::PackageFieldMatchOption Option(); void Option(winrt::Microsoft::Management::Deployment::PackageFieldMatchOption const& value); @@ -21,15 +24,21 @@ namespace winrt::Microsoft::Management::Deployment::implementation void Field(winrt::Microsoft::Management::Deployment::PackageMatchField const& value); hstring Value(); void Value(hstring const& value); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: hstring m_value; winrt::Microsoft::Management::Deployment::PackageMatchField m_matchField = winrt::Microsoft::Management::Deployment::PackageMatchField::CatalogDefault; winrt::Microsoft::Management::Deployment::PackageFieldMatchOption m_packageFieldMatchOption = winrt::Microsoft::Management::Deployment::PackageFieldMatchOption::Equals; +#endif }; } + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) namespace winrt::Microsoft::Management::Deployment::factory_implementation { struct PackageMatchFilter : PackageMatchFilterT<PackageMatchFilter, implementation::PackageMatchFilter> { }; } +#endif diff --git a/src/Microsoft.Management.Deployment/PackageVersionId.h b/src/Microsoft.Management.Deployment/PackageVersionId.h @@ -8,12 +8,18 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct PackageVersionId : PackageVersionIdT<PackageVersionId> { PackageVersionId() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize(::AppInstaller::Repository::PackageVersionKey packageVersionKey); +#endif hstring PackageCatalogId(); hstring Version(); hstring Channel(); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: ::AppInstaller::Repository::PackageVersionKey m_packageVersionKey{}; +#endif }; } diff --git a/src/Microsoft.Management.Deployment/PackageVersionInfo.cpp b/src/Microsoft.Management.Deployment/PackageVersionInfo.cpp @@ -112,4 +112,8 @@ namespace winrt::Microsoft::Management::Deployment::implementation return CompareResult::Equal; } } + std::shared_ptr<::AppInstaller::Repository::IPackageVersion> PackageVersionInfo::GetRepositoryPackageVersion() + { + return m_packageVersion; + } } diff --git a/src/Microsoft.Management.Deployment/PackageVersionInfo.h b/src/Microsoft.Management.Deployment/PackageVersionInfo.h @@ -8,7 +8,11 @@ namespace winrt::Microsoft::Management::Deployment::implementation struct PackageVersionInfo : PackageVersionInfoT<PackageVersionInfo> { PackageVersionInfo() = default; + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) void Initialize(std::shared_ptr<::AppInstaller::Repository::IPackageVersion> packageVersion); + std::shared_ptr<::AppInstaller::Repository::IPackageVersion> GetRepositoryPackageVersion(); +#endif hstring GetMetadata(winrt::Microsoft::Management::Deployment::PackageVersionMetadataField const& metadataField); hstring Id(); @@ -18,12 +22,14 @@ namespace winrt::Microsoft::Management::Deployment::implementation winrt::Windows::Foundation::Collections::IVectorView<hstring> PackageFamilyNames(); winrt::Windows::Foundation::Collections::IVectorView<hstring> ProductCodes(); winrt::Microsoft::Management::Deployment::PackageCatalog PackageCatalog(); - std::shared_ptr<::AppInstaller::Repository::IPackageVersion> GetRepositoryPackageVersion() { return m_packageVersion; } winrt::Microsoft::Management::Deployment::CompareResult CompareToVersion(hstring versionString); + +#if !defined(INCLUDE_ONLY_INTERFACE_METHODS) private: winrt::Microsoft::Management::Deployment::PackageCatalog m_packageCatalog{ nullptr }; std::shared_ptr<::AppInstaller::Repository::IPackageVersion> m_packageVersion; Windows::Foundation::Collections::IVector<hstring> m_packageFamilyNames{ nullptr }; Windows::Foundation::Collections::IVector<hstring> m_productCodes{ nullptr }; +#endif }; } diff --git a/src/PackagedTests/Assets/LockScreenLogo.scale-200.png b/src/PackagedTests/Assets/LockScreenLogo.scale-200.png Binary files differ. diff --git a/src/PackagedTests/Assets/SplashScreen.scale-200.png b/src/PackagedTests/Assets/SplashScreen.scale-200.png Binary files differ. diff --git a/src/PackagedTests/Assets/Square150x150Logo.scale-200.png b/src/PackagedTests/Assets/Square150x150Logo.scale-200.png Binary files differ. diff --git a/src/PackagedTests/Assets/Square44x44Logo.scale-200.png b/src/PackagedTests/Assets/Square44x44Logo.scale-200.png Binary files differ. diff --git a/src/PackagedTests/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/PackagedTests/Assets/Square44x44Logo.targetsize-24_altform-unplated.png Binary files differ. diff --git a/src/PackagedTests/Assets/StoreLogo.png b/src/PackagedTests/Assets/StoreLogo.png Binary files differ. diff --git a/src/PackagedTests/Assets/Wide310x150Logo.scale-200.png b/src/PackagedTests/Assets/Wide310x150Logo.scale-200.png Binary files differ. diff --git a/src/PackagedTests/ComInterfaceUnitTest.cs b/src/PackagedTests/ComInterfaceUnitTest.cs @@ -0,0 +1,43 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using Microsoft.Management.Deployment; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace PackagedUnitTests +{ + [TestClass] + public class ComInterfaceUnitTests + { + [TestMethod] + public void OpenPredefinedCatalog() + { + PackageManager packageManager = new PackageManager(); + PackageCatalogReference catalogRef = packageManager.GetPredefinedPackageCatalog(PredefinedPackageCatalog.OpenWindowsCatalog); + Assert.IsTrue(catalogRef.Info.Name.Equals("winget")); + IReadOnlyList<PackageCatalogReference> catalogs = packageManager.GetPackageCatalogs(); + Assert.IsTrue(catalogs.Count > 0); + bool foundDefaultCatalog = false; + for(int i = 0; i < catalogs.Count; i++) + { + if (catalogs[i].Info.Name.Equals("winget")) + { + foundDefaultCatalog = true; + break; + } + } + Assert.IsTrue(foundDefaultCatalog); + } + + [TestMethod] + public void OpenPredefinedStoreCatalog() + { + PackageManager packageManager = new PackageManager(); + PackageCatalogReference catalogRef = packageManager.GetPredefinedPackageCatalog(PredefinedPackageCatalog.MicrosoftStore); + Assert.IsTrue(catalogRef.Info.Name.Equals("msstore")); + } + } +} diff --git a/src/PackagedTests/Package.appxmanifest b/src/PackagedTests/Package.appxmanifest @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<Package + xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" + xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" + xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" + xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" + xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10" + IgnorableNamespaces="uap mp"> + + <Identity Name="d48b2b89-4897-4798-bd51-cf9763e1c9d0" + Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" + Version="1.0.4.0" /> + + <mp:PhoneIdentity PhoneProductId="d48b2b89-4897-4798-bd51-cf9763e1c9d0" PhonePublisherId="00000000-0000-0000-0000-000000000000"/> + + <Properties> + <DisplayName>PackagedUnitTests</DisplayName> + <PublisherDisplayName>Microsoft Corporation</PublisherDisplayName> + <Logo>Assets\StoreLogo.png</Logo> + </Properties> + + <Dependencies> + <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" /> + </Dependencies> + + <Resources> + <Resource Language="x-generate" /> + </Resources> + <Applications> + <Application Id="vstest.executionengine.universal.App" + Executable="$targetnametoken$.exe" + EntryPoint="PackagedUnitTests.App"> + <uap:VisualElements + DisplayName="PackagedUnitTests" + Square150x150Logo="Assets\Square150x150Logo.png" + Square44x44Logo="Assets\Square44x44Logo.png" + Description="PackagedUnitTests" + BackgroundColor="transparent"> + <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/> + <uap:SplashScreen Image="Assets\SplashScreen.png" /> + </uap:VisualElements> + </Application> + </Applications> + <Capabilities> + <Capability Name="internetClientServer" /> + <Capability Name="privateNetworkClientServer" /> + <rescap:Capability Name="runFullTrust" /> + <rescap:Capability Name="packageManagement" /> + </Capabilities> +</Package>+ \ No newline at end of file diff --git a/src/PackagedTests/PackagedTests.csproj b/src/PackagedTests/PackagedTests.csproj @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="Current"> + <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">x86</Platform> + <ProjectGuid>{8A4A39C8-E0EF-42B4-B8D9-A73E1209A568}</ProjectGuid> + <OutputType>AppContainerExe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>PackagedUnitTests</RootNamespace> + <AssemblyName>PackagedUnitTests</AssemblyName> + <DefaultLanguage>en-US</DefaultLanguage> + <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier> + <TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion> + <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion> + <MinimumVisualStudioVersion>14</MinimumVisualStudioVersion> + <EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile> + <FileAlignment>512</FileAlignment> + <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion> + <AppxPackageSigningEnabled>false</AppxPackageSigningEnabled> + <GenerateAppInstallerFile>False</GenerateAppInstallerFile> + <AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision> + <GenerateTestArtifacts>True</GenerateTestArtifacts> + <HoursBetweenUpdateChecks>0</HoursBetweenUpdateChecks> + <NoWarn>;2008</NoWarn> + <ErrorReport>prompt</ErrorReport> + <UseVSHostingProcess>false</UseVSHostingProcess> + <Prefer32Bit>true</Prefer32Bit> + <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants> + <AppxBundle>Always</AppxBundle> + <AppxBundlePlatforms>x64</AppxBundlePlatforms> + </PropertyGroup> + <PropertyGroup Condition="'$(Platform)' == 'x86'"> + <PlatformTarget>x86</PlatformTarget> + </PropertyGroup> + <PropertyGroup Condition="'$(Platform)' == 'x64'"> + <PlatformTarget>x64</PlatformTarget> + </PropertyGroup> + <PropertyGroup Condition="'$(Platform)' == 'ARM'"> + <PlatformTarget>ARM</PlatformTarget> + </PropertyGroup> + <PropertyGroup Condition="'$(Platform)' == 'ARM64'"> + <PlatformTarget>ARM64</PlatformTarget> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)' == 'Debug'"> + <DefineConstants>DEBUG;$(DefineConstants)</DefineConstants> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)' == 'Release'"> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <UseDotNetNativeToolchain>true</UseDotNetNativeToolchain> + </PropertyGroup> + <PropertyGroup> + <OutputPath>$(SolutionDir)$(PlatformTarget)\$(Configuration)\$(ProjectName)\</OutputPath> + <OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\$(ProjectName)\</OutDir> + </PropertyGroup> + <ItemGroup> + <SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="UnitTestApp.xaml.cs"> + <DependentUpon>UnitTestApp.xaml</DependentUpon> + </Compile> + <Compile Include="ComInterfaceUnitTest.cs" /> + </ItemGroup> + <ItemGroup> + <ApplicationDefinition Include="UnitTestApp.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </ApplicationDefinition> + </ItemGroup> + <ItemGroup> + <AppxManifest Include="Package.appxmanifest"> + <SubType>Designer</SubType> + </AppxManifest> + </ItemGroup> + <ItemGroup> + <Content Include="Properties\Default.rd.xml" /> + <Content Include="Assets\LockScreenLogo.scale-200.png" /> + <Content Include="Assets\SplashScreen.scale-200.png" /> + <Content Include="Assets\Square150x150Logo.scale-200.png" /> + <Content Include="Assets\Square44x44Logo.scale-200.png" /> + <Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" /> + <Content Include="Assets\StoreLogo.png" /> + <Content Include="Assets\Wide310x150Logo.scale-200.png" /> + <Content Include="$(SolutionDir)$(PlatformTarget)\$(Configuration)\Microsoft.Management.Deployment.Server.Test\Microsoft.Management.Deployment.Server.Test.dll"> + <Link>%(RecursiveDir)Microsoft.Management.Deployment.dll</Link> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform"> + <Version>6.2.12</Version> + </PackageReference> + <PackageReference Include="Microsoft.NET.Test.Sdk"> + <Version>16.11.0</Version> + </PackageReference> + <PackageReference Include="MSTest.TestAdapter"> + <Version>2.2.5</Version> + </PackageReference> + <PackageReference Include="MSTest.TestFramework"> + <Version>2.2.5</Version> + </PackageReference> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Microsoft.Management.Deployment.Client\Microsoft.Management.Deployment.Client.vcxproj"> + <Project>{4bc1f40b-36c2-4bbb-8306-76e490b13bbd}</Project> + <Name>Microsoft.Management.Deployment.Client</Name> + <Private>False</Private> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <None Include="Test.runsettings"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + </ItemGroup> + <PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' "> + <VisualStudioVersion>14.0</VisualStudioVersion> + </PropertyGroup> + <Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project>+ \ No newline at end of file diff --git a/src/PackagedTests/Properties/AssemblyInfo.cs b/src/PackagedTests/Properties/AssemblyInfo.cs @@ -0,0 +1,18 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("PackagedUnitTests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("PackagedUnitTests")] +[assembly: AssemblyCopyright("Copyright © HP Inc. 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: AssemblyMetadata("TargetPlatform","UAP")] + +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ComVisible(false)]+ \ No newline at end of file diff --git a/src/PackagedTests/Properties/Default.rd.xml b/src/PackagedTests/Properties/Default.rd.xml @@ -0,0 +1,29 @@ +<!-- + This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most + developers. However, you can modify these parameters to modify the behavior of the .NET Native + optimizer. + + Runtime Directives are documented at https://go.microsoft.com/fwlink/?LinkID=391919 + + To fully enable reflection for App1.MyClass and all of its public/private members + <Type Name="App1.MyClass" Dynamic="Required All"/> + + To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32 + <TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" /> + + Using the Namespace directive to apply reflection policy to all the types in a particular namespace + <Namespace Name="DataClasses.ViewModels" Serialize="All" /> +--> + +<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata"> + <Application> + <!-- + An Assembly element with Name="*Application*" applies to all assemblies in + the application package. The asterisks are not wildcards. + --> + <Assembly Name="*Application*" Dynamic="Required All" /> + <!-- Add your application specific runtime directives here. --> + + + </Application> +</Directives>+ \ No newline at end of file diff --git a/src/PackagedTests/Test.runsettings b/src/PackagedTests/Test.runsettings @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> + +<RunSettings> + <!-- Configurations that affect the Test Framework --> + <RunConfiguration> + <!-- Value that specifies the exit code when no tests are discovered --> + <TreatNoTestsAsError>true</TreatNoTestsAsError> + </RunConfiguration> + + <!-- Configuration for loggers --> + <LoggerRunSettings> + <Loggers> + <Logger friendlyName="console" enabled="True"> + <Configuration> + <Verbosity>quiet</Verbosity> + </Configuration> + </Logger> + <Logger friendlyName="trx" enabled="True"> + <Configuration> + <LogFileName>PackagedTestsResults.trx</LogFileName> + </Configuration> + </Logger> + <Logger friendlyName="html" enabled="True"> + <Configuration> + <LogFileName>PackagedTestsResults.html</LogFileName> + </Configuration> + </Logger> + </Loggers> + </LoggerRunSettings> + +</RunSettings>+ \ No newline at end of file diff --git a/src/PackagedTests/UnitTestApp.xaml b/src/PackagedTests/UnitTestApp.xaml @@ -0,0 +1,7 @@ +<Application + x:Class="PackagedUnitTests.App" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="using:PackagedUnitTests"> + +</Application> diff --git a/src/PackagedTests/UnitTestApp.xaml.cs b/src/PackagedTests/UnitTestApp.xaml.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +namespace PackagedUnitTests +{ + /// <summary> + /// Provides application-specific behavior to supplement the default Application class. + /// </summary> + sealed partial class App : Application + { + /// <summary> + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// </summary> + public App() + { + this.InitializeComponent(); + this.Suspending += OnSuspending; + } + + /// <summary> + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// </summary> + /// <param name="e">Details about the launch request and process.</param> + protected override void OnLaunched(LaunchActivatedEventArgs e) + { + +#if DEBUG + if (System.Diagnostics.Debugger.IsAttached) + { + this.DebugSettings.EnableFrameRateCounter = true; + } +#endif + + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI(); + + // Ensure the current window is active + Window.Current.Activate(); + + Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(e.Arguments); + } + + /// <summary> + /// Invoked when Navigation to a certain page fails + /// </summary> + /// <param name="sender">The Frame which failed navigation</param> + /// <param name="e">Details about the navigation failure</param> + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// <summary> + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// </summary> + /// <param name="sender">The source of the suspend request.</param> + /// <param name="e">Details about the suspend request.</param> + private void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + } +} diff --git a/src/WinGetServer/WinGetServer.vcxproj b/src/WinGetServer/WinGetServer.vcxproj @@ -1,176 +1,176 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props')" /> - <PropertyGroup Label="Globals"> - <CppWinRTOptimized>true</CppWinRTOptimized> - <CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge> - <CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata> - <MinimalCoreWin>true</MinimalCoreWin> - <VCProjectVersion>15.0</VCProjectVersion> - <ProjectGuid>{2b00d362-ac92-41f3-a8d2-5b1599bdca01}</ProjectGuid> - <Keyword>Win32Proj</Keyword> - <RootNamespace>WinGetServer</RootNamespace> - <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.18362.0</WindowsTargetPlatformVersion> - <WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion> - <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> - <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> - <ProjectName>WinGetServer</ProjectName> - <TargetName>WindowsPackageManagerServer</TargetName> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|ARM"> - <Configuration>Debug</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|ARM64"> - <Configuration>Debug</Configuration> - <Platform>ARM64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|x64"> - <Configuration>Debug</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|ARM"> - <Configuration>Release</Configuration> - <Platform>ARM</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|ARM64"> - <Configuration>Release</Configuration> - <Platform>ARM64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|x64"> - <Configuration>Release</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - </ItemGroup> - <PropertyGroup Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <PlatformToolset>v140</PlatformToolset> - <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> - <PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> - <UseDebugLibraries>true</UseDebugLibraries> - <LinkIncremental>true</LinkIncremental> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> - <UseDebugLibraries>false</UseDebugLibraries> - <WholeProgramOptimization>true</WholeProgramOptimization> - <LinkIncremental>false</LinkIncremental> - <SpectreMitigation>Spectre</SpectreMitigation> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> - <ImportGroup Label="ExtensionSettings"> - </ImportGroup> - <ImportGroup Label="Shared"> - </ImportGroup> - <ImportGroup Label="PropertySheets"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets"> - <Import Project="PropertySheet.props" /> - </ImportGroup> - <PropertyGroup Label="UserMacros" /> - <PropertyGroup> - <OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\$(ProjectName)\</OutDir> - <IntDir>$(PlatformTarget)\$(Configuration)\</IntDir> - <LibraryPath>$(OutDir)..\Microsoft.Management.Deployment;$(OutDir)..\AppInstallerCLICore;$(OutDir)..\JsonCppLib;$(OutDir)..\AppInstallerRepositoryCore;$(OutDir)..\YamlCppLib;$(OutDir)..\AppInstallerCommonCore;$(OutDir)..\cpprestsdk;$(LibraryPath)</LibraryPath> - <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors> - <RunCodeAnalysis>false</RunCodeAnalysis> - <CodeAnalysisRuleSet>..\CodeAnalysis.ruleset</CodeAnalysisRuleSet> - </PropertyGroup> - <ItemDefinitionGroup> - <ClCompile> - <PrecompiledHeader>NotUsing</PrecompiledHeader> - <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> - <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> - <PreprocessorDefinitions>_CONSOLE;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <WarningLevel>Level4</WarningLevel> - <AdditionalOptions>%(AdditionalOptions) /permissive- /bigobj</AdditionalOptions> - <TreatWarningAsError>true</TreatWarningAsError> - <SDLCheck>true</SDLCheck> - <EnablePREfast>true</EnablePREfast> - <AdditionalIncludeDirectories>$(ProjectDir)..\AppInstallerCLICore;$(ProjectDir)..\AppInstallerRepositoryCore;$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <SubSystem>Windows</SubSystem> - <GenerateWindowsMetadata>false</GenerateWindowsMetadata> - <AdditionalLibraryDirectories>$(OutDir)..\Microsoft.Management.Deployment;$(OutDir)..\AppInstallerCLICore;$(OutDir)..\JsonCppLib;$(OutDir)..\AppInstallerRepositoryCore;$(OutDir)..\YamlCppLib;$(OutDir)..\AppInstallerCommonCore;$(OutDir)..\cpprestsdk;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>Microsoft.Management.Deployment.lib;AppInstallerCLICore.lib;AppInstallerCommonCore.lib;AppInstallerRepositoryCore.lib;JsonCppLib.lib;YamlCppLib.lib;cpprestsdk.lib;wininet.lib;shell32.lib;winsqlite3.lib;shlwapi.lib;icuuc.lib;icuin.lib;urlmon.lib;Advapi32.lib;winhttp.lib;onecoreuap.lib;msi.lib;%(AdditionalDependencies)</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> - <ClCompile> - <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> - </ClCompile> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> - <ClCompile> - <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> - </ClCompile> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'"> - <ClCompile> - <Optimization>MaxSpeed</Optimization> - <FunctionLevelLinking>true</FunctionLevelLinking> - <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> - </ClCompile> - <Link> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <OptimizeReferences>true</OptimizeReferences> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClInclude Include="resource.h" /> - <ClCompile Include="WinMain.cpp" /> - <ResourceCompile Include="WinGetServer.rc" /> - <Manifest Include="WinGetServer.exe.manifest" /> - <None Include="packages.config" /> - <None Include="PropertySheet.props" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\AppInstallerCommonCore\AppInstallerCommonCore.vcxproj"> - <Project>{5890d6ed-7c3b-40f3-b436-b54f640d9e65}</Project> - </ProjectReference> - <ProjectReference Include="..\AppInstallerRepositoryCore\AppInstallerRepositoryCore.vcxproj"> - <Project>{5eb88068-5fb9-4e69-89b2-72dbc5e068f9}</Project> - </ProjectReference> - <ProjectReference Include="..\cpprestsdk\cpprestsdk.vcxproj"> - <Project>{866c3f06-636f-4be8-bc24-5f86ecc606a1}</Project> - </ProjectReference> - <ProjectReference Include="..\JsonCppLib\JsonCppLib.vcxproj"> - <Project>{82b39fda-e86b-4713-a873-9d56de00247a}</Project> - </ProjectReference> - <ProjectReference Include="..\YamlCppLib\YamlCppLib.vcxproj"> - <Project>{8bb94bb8-374f-4294-bca1-c7811514a6b7}</Project> - </ProjectReference> - <ProjectReference Include="..\Microsoft.Management.Deployment\Microsoft.Management.Deployment.vcxproj"> - <Project>{1cc41a9a-ae66-459d-9210-1e572dd7be69}</Project> - </ProjectReference> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - <Import Project="$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" /> - <Import Project="$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets')" /> - </ImportGroup> - <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> - <PropertyGroup> - <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> - </PropertyGroup> - <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" /> - <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props'))" /> - <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets'))" /> - </Target> +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props')" /> + <PropertyGroup Label="Globals"> + <CppWinRTOptimized>true</CppWinRTOptimized> + <CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge> + <CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata> + <MinimalCoreWin>true</MinimalCoreWin> + <VCProjectVersion>15.0</VCProjectVersion> + <ProjectGuid>{2b00d362-ac92-41f3-a8d2-5b1599bdca01}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>WinGetServer</RootNamespace> + <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.18362.0</WindowsTargetPlatformVersion> + <WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion> + <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> + <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> + <ProjectName>WinGetServer</ProjectName> + <TargetName>WindowsPackageManagerServer</TargetName> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|ARM"> + <Configuration>Debug</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|ARM64"> + <Configuration>Debug</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM"> + <Configuration>Release</Configuration> + <Platform>ARM</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|ARM64"> + <Configuration>Release</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <PlatformToolset>v140</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset> + <PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> + <UseDebugLibraries>true</UseDebugLibraries> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <LinkIncremental>false</LinkIncremental> + <SpectreMitigation>Spectre</SpectreMitigation> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets"> + <Import Project="PropertySheet.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <OutDir>$(SolutionDir)$(PlatformTarget)\$(Configuration)\$(ProjectName)\</OutDir> + <IntDir>$(PlatformTarget)\$(Configuration)\</IntDir> + <LibraryPath>$(OutDir)..\Microsoft.Management.Deployment;$(OutDir)..\AppInstallerCLICore;$(OutDir)..\JsonCppLib;$(OutDir)..\AppInstallerRepositoryCore;$(OutDir)..\YamlCppLib;$(OutDir)..\AppInstallerCommonCore;$(OutDir)..\cpprestsdk;$(LibraryPath)</LibraryPath> + <CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors> + <RunCodeAnalysis>false</RunCodeAnalysis> + <CodeAnalysisRuleSet>..\CodeAnalysis.ruleset</CodeAnalysisRuleSet> + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile> + <PreprocessorDefinitions>_CONSOLE;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <WarningLevel>Level4</WarningLevel> + <AdditionalOptions>%(AdditionalOptions) /permissive- /bigobj</AdditionalOptions> + <TreatWarningAsError>true</TreatWarningAsError> + <SDLCheck>true</SDLCheck> + <EnablePREfast>true</EnablePREfast> + <AdditionalIncludeDirectories>$(ProjectDir)..\AppInstallerCLICore;$(ProjectDir)..\AppInstallerRepositoryCore;$(ProjectDir)..\AppInstallerRepositoryCore\Public;$(ProjectDir)..\AppInstallerCommonCore\Public;$(ProjectDir)..\JsonCppLib\json;$(ProjectDir)..\JsonCppLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateWindowsMetadata>false</GenerateWindowsMetadata> + <AdditionalLibraryDirectories>$(OutDir)..\Microsoft.Management.Deployment;$(OutDir)..\AppInstallerCLICore;$(OutDir)..\JsonCppLib;$(OutDir)..\AppInstallerRepositoryCore;$(OutDir)..\YamlCppLib;$(OutDir)..\AppInstallerCommonCore;$(OutDir)..\cpprestsdk;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>Microsoft.Management.Deployment.Server.lib;AppInstallerCLICore.lib;AppInstallerCommonCore.lib;AppInstallerRepositoryCore.lib;JsonCppLib.lib;YamlCppLib.lib;cpprestsdk.lib;wininet.lib;shell32.lib;winsqlite3.lib;shlwapi.lib;icuuc.lib;icuin.lib;urlmon.lib;Advapi32.lib;winhttp.lib;onecoreuap.lib;msi.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> + <ClCompile> + <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'"> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="resource.h" /> + <ClCompile Include="WinMain.cpp" /> + <ResourceCompile Include="WinGetServer.rc" /> + <Manifest Include="WinGetServer.exe.manifest" /> + <None Include="packages.config" /> + <None Include="PropertySheet.props" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\AppInstallerCommonCore\AppInstallerCommonCore.vcxproj"> + <Project>{5890d6ed-7c3b-40f3-b436-b54f640d9e65}</Project> + </ProjectReference> + <ProjectReference Include="..\AppInstallerRepositoryCore\AppInstallerRepositoryCore.vcxproj"> + <Project>{5eb88068-5fb9-4e69-89b2-72dbc5e068f9}</Project> + </ProjectReference> + <ProjectReference Include="..\cpprestsdk\cpprestsdk.vcxproj"> + <Project>{866c3f06-636f-4be8-bc24-5f86ecc606a1}</Project> + </ProjectReference> + <ProjectReference Include="..\JsonCppLib\JsonCppLib.vcxproj"> + <Project>{82b39fda-e86b-4713-a873-9d56de00247a}</Project> + </ProjectReference> + <ProjectReference Include="..\YamlCppLib\YamlCppLib.vcxproj"> + <Project>{8bb94bb8-374f-4294-bca1-c7811514a6b7}</Project> + </ProjectReference> + <ProjectReference Include="..\Microsoft.Management.Deployment\Microsoft.Management.Deployment.vcxproj"> + <Project>{1cc41a9a-ae66-459d-9210-1e572dd7be69}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + <Import Project="$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" /> + <Import Project="$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets')" /> + </ImportGroup> + <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> + <PropertyGroup> + <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> + </PropertyGroup> + <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.ImplementationLibrary.1.0.210204.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" /> + <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.props'))" /> + <Error Condition="!Exists('$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\packages\Microsoft.Windows.CppWinRT.2.0.210505.3\build\native\Microsoft.Windows.CppWinRT.targets'))" /> + </Target> </Project> \ No newline at end of file