From 852eb19ad49f6ebeac4127637fc7aba3ca7b946c Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Thu, 19 Aug 2021 12:00:38 -0700 Subject: [PATCH 01/19] Moved DynamicDependency project into a subdir so I can collapse the multiple DynDep projects under 1 parent (simplifies adding more, under the dir instead of scattered across the froot) --- WindowsAppSDK.sln | 9 ++++++--- dev/DynamicDependency/{ => API}/DataStore.cpp | 0 dev/DynamicDependency/{ => API}/DataStore.h | 0 .../{ => API}/DynamicDependency.vcxitems | 2 +- .../{ => API}/DynamicDependency.vcxitems.filters | 0 dev/DynamicDependency/{ => API}/M.AM.Converters.h | 0 .../{ => API}/M.AM.DD.AddPackageDependencyOptions.cpp | 0 .../{ => API}/M.AM.DD.AddPackageDependencyOptions.h | 0 .../{ => API}/M.AM.DD.CreatePackageDependencyOptions.cpp | 0 .../{ => API}/M.AM.DD.CreatePackageDependencyOptions.h | 0 .../{ => API}/M.AM.DD.PackageDependency.cpp | 0 .../{ => API}/M.AM.DD.PackageDependency.h | 0 .../{ => API}/M.AM.DD.PackageDependencyContext.cpp | 0 .../{ => API}/M.AM.DD.PackageDependencyContext.h | 0 .../{ => API}/M.AM.DD.PackageDependencyRank.cpp | 0 .../{ => API}/M.AM.DD.PackageDependencyRank.h | 0 .../{ => API}/M.AM.DynamicDependency.idl | 0 dev/DynamicDependency/{ => API}/MddCore.Architecture.h | 0 .../{ => API}/MddDetourPackageGraph.cpp | 0 dev/DynamicDependency/{ => API}/MddDetourPackageGraph.h | 0 .../{ => API}/MddLifetimeManagement.cpp | 0 dev/DynamicDependency/{ => API}/MddLifetimeManagement.h | 0 .../{ => API}/MddLifetimeManagementTest.h | 0 dev/DynamicDependency/{ => API}/MddWinRT.cpp | 0 dev/DynamicDependency/{ => API}/MddWinRT.h | 0 .../{ => API}/MsixDynamicDependency.cpp | 0 dev/DynamicDependency/{ => API}/MsixDynamicDependency.h | 0 dev/DynamicDependency/{ => API}/PackageDependency.cpp | 0 dev/DynamicDependency/{ => API}/PackageDependency.h | 0 .../{ => API}/PackageDependencyManager.cpp | 0 .../{ => API}/PackageDependencyManager.h | 0 dev/DynamicDependency/{ => API}/PackageGraph.cpp | 0 dev/DynamicDependency/{ => API}/PackageGraph.h | 0 dev/DynamicDependency/{ => API}/PackageGraphManager.cpp | 0 dev/DynamicDependency/{ => API}/PackageGraphManager.h | 0 dev/DynamicDependency/{ => API}/PackageGraphNode.cpp | 0 dev/DynamicDependency/{ => API}/PackageGraphNode.h | 0 dev/DynamicDependency/{ => API}/PackageId.h | 0 dev/DynamicDependency/{ => API}/PackageInfo.h | 0 dev/DynamicDependency/{ => API}/WinRTInprocModule.h | 0 dev/DynamicDependency/{ => API}/WinRTModuleManager.cpp | 0 dev/DynamicDependency/{ => API}/WinRTModuleManager.h | 0 dev/DynamicDependency/{ => API}/WinRTPackage.cpp | 0 dev/DynamicDependency/{ => API}/WinRTPackage.h | 0 .../{ => API}/appmodel_msixdynamicdependency.h | 0 dev/DynamicDependency/{ => API}/pch.h | 0 dev/DynamicDependency/{ => API}/utf8.h | 0 .../{ => API}/wil_msixdynamicdependency.h | 0 .../{ => API}/winrt_msixdynamicdepednency.h | 0 dev/DynamicDependency/{ => API}/winrt_namespaces.h | 0 dev/UndockedRegFreeWinRT/catalog.cpp | 2 +- dev/WindowsAppSDK_DLL/WindowsAppSDK_DLL.vcxproj | 4 ++-- 52 files changed, 10 insertions(+), 7 deletions(-) rename dev/DynamicDependency/{ => API}/DataStore.cpp (100%) rename dev/DynamicDependency/{ => API}/DataStore.h (100%) rename dev/DynamicDependency/{ => API}/DynamicDependency.vcxitems (97%) rename dev/DynamicDependency/{ => API}/DynamicDependency.vcxitems.filters (100%) rename dev/DynamicDependency/{ => API}/M.AM.Converters.h (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.AddPackageDependencyOptions.cpp (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.AddPackageDependencyOptions.h (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.CreatePackageDependencyOptions.cpp (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.CreatePackageDependencyOptions.h (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.PackageDependency.cpp (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.PackageDependency.h (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.PackageDependencyContext.cpp (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.PackageDependencyContext.h (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.PackageDependencyRank.cpp (100%) rename dev/DynamicDependency/{ => API}/M.AM.DD.PackageDependencyRank.h (100%) rename dev/DynamicDependency/{ => API}/M.AM.DynamicDependency.idl (100%) rename dev/DynamicDependency/{ => API}/MddCore.Architecture.h (100%) rename dev/DynamicDependency/{ => API}/MddDetourPackageGraph.cpp (100%) rename dev/DynamicDependency/{ => API}/MddDetourPackageGraph.h (100%) rename dev/DynamicDependency/{ => API}/MddLifetimeManagement.cpp (100%) rename dev/DynamicDependency/{ => API}/MddLifetimeManagement.h (100%) rename dev/DynamicDependency/{ => API}/MddLifetimeManagementTest.h (100%) rename dev/DynamicDependency/{ => API}/MddWinRT.cpp (100%) rename dev/DynamicDependency/{ => API}/MddWinRT.h (100%) rename dev/DynamicDependency/{ => API}/MsixDynamicDependency.cpp (100%) rename dev/DynamicDependency/{ => API}/MsixDynamicDependency.h (100%) rename dev/DynamicDependency/{ => API}/PackageDependency.cpp (100%) rename dev/DynamicDependency/{ => API}/PackageDependency.h (100%) rename dev/DynamicDependency/{ => API}/PackageDependencyManager.cpp (100%) rename dev/DynamicDependency/{ => API}/PackageDependencyManager.h (100%) rename dev/DynamicDependency/{ => API}/PackageGraph.cpp (100%) rename dev/DynamicDependency/{ => API}/PackageGraph.h (100%) rename dev/DynamicDependency/{ => API}/PackageGraphManager.cpp (100%) rename dev/DynamicDependency/{ => API}/PackageGraphManager.h (100%) rename dev/DynamicDependency/{ => API}/PackageGraphNode.cpp (100%) rename dev/DynamicDependency/{ => API}/PackageGraphNode.h (100%) rename dev/DynamicDependency/{ => API}/PackageId.h (100%) rename dev/DynamicDependency/{ => API}/PackageInfo.h (100%) rename dev/DynamicDependency/{ => API}/WinRTInprocModule.h (100%) rename dev/DynamicDependency/{ => API}/WinRTModuleManager.cpp (100%) rename dev/DynamicDependency/{ => API}/WinRTModuleManager.h (100%) rename dev/DynamicDependency/{ => API}/WinRTPackage.cpp (100%) rename dev/DynamicDependency/{ => API}/WinRTPackage.h (100%) rename dev/DynamicDependency/{ => API}/appmodel_msixdynamicdependency.h (100%) rename dev/DynamicDependency/{ => API}/pch.h (100%) rename dev/DynamicDependency/{ => API}/utf8.h (100%) rename dev/DynamicDependency/{ => API}/wil_msixdynamicdependency.h (100%) rename dev/DynamicDependency/{ => API}/winrt_msixdynamicdepednency.h (100%) rename dev/DynamicDependency/{ => API}/winrt_namespaces.h (100%) diff --git a/WindowsAppSDK.sln b/WindowsAppSDK.sln index d9f617b4db..df281a1fe8 100644 --- a/WindowsAppSDK.sln +++ b/WindowsAppSDK.sln @@ -34,7 +34,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AppLifecycleTestApp", "test EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DynamicDependency", "DynamicDependency", "{6CD01EF6-D4A4-4801-ADCF-344CF87FF942}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DynamicDependency", "dev\DynamicDependency\DynamicDependency.vcxitems", "{BF055A59-0919-4E34-9B76-DD055495CC5A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "API", "API", "{6F6B0096-819C-4C12-885F-A20A742F516F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DynamicDependency", "dev\DynamicDependency\API\DynamicDependency.vcxitems", "{BF055A59-0919-4E34-9B76-DD055495CC5A}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DynamicDependency", "DynamicDependency", "{17B1F036-8FC3-49E6-9464-0C1F96CEAEB9}" EndProject @@ -209,7 +211,7 @@ Global dev\PowerNotifications\PowerNotifications.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\UndockedRegFreeWinRT\UndockedRegFreeWinRT.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\PowerNotifications\PowerNotifications.vcxitems*{b75c1b22-553c-40e4-b38e-6ab4d01fdb9d}*SharedItemsImports = 9 - dev\DynamicDependency\DynamicDependency.vcxitems*{bf055a59-0919-4e34-9b76-dd055495cc5a}*SharedItemsImports = 9 + dev\DynamicDependency\API\DynamicDependency.vcxitems*{bf055a59-0919-4e34-9b76-dd055495cc5a}*SharedItemsImports = 9 test\inc\inc.vcxitems*{c62688a1-16a0-4729-b6ed-842f4faa29f3}*SharedItemsImports = 4 dev\ChangeTracker\ChangeTracker.vcxitems*{e15c3465-9d45-495d-92ce-b91ef45e8623}*SharedItemsImports = 9 dev\AppLifecycle\AppLifecycle.vcxitems*{e3a522a3-6635-4a42-bded-1af46a15f63c}*SharedItemsImports = 9 @@ -696,7 +698,8 @@ Global {B567FE2E-3A03-48D0-B2B5-760CDEC35891} = {8630F7AA-2969-4DC9-8700-9B468C1DC21D} {7C502995-59C3-483B-86BA-815985353633} = {AC5FFC80-92FE-4933-BED2-EC5519AC4440} {6CD01EF6-D4A4-4801-ADCF-344CF87FF942} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A} - {BF055A59-0919-4E34-9B76-DD055495CC5A} = {6CD01EF6-D4A4-4801-ADCF-344CF87FF942} + {6F6B0096-819C-4C12-885F-A20A742F516F} = {6CD01EF6-D4A4-4801-ADCF-344CF87FF942} + {BF055A59-0919-4E34-9B76-DD055495CC5A} = {6F6B0096-819C-4C12-885F-A20A742F516F} {17B1F036-8FC3-49E6-9464-0C1F96CEAEB9} = {8630F7AA-2969-4DC9-8700-9B468C1DC21D} {6BAC3B29-3A6B-4B3F-A9AB-A316AA4E48ED} = {17B1F036-8FC3-49E6-9464-0C1F96CEAEB9} {F76B776E-86F5-48C5-8FC7-D2795ECC9746} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A} diff --git a/dev/DynamicDependency/DataStore.cpp b/dev/DynamicDependency/API/DataStore.cpp similarity index 100% rename from dev/DynamicDependency/DataStore.cpp rename to dev/DynamicDependency/API/DataStore.cpp diff --git a/dev/DynamicDependency/DataStore.h b/dev/DynamicDependency/API/DataStore.h similarity index 100% rename from dev/DynamicDependency/DataStore.h rename to dev/DynamicDependency/API/DataStore.h diff --git a/dev/DynamicDependency/DynamicDependency.vcxitems b/dev/DynamicDependency/API/DynamicDependency.vcxitems similarity index 97% rename from dev/DynamicDependency/DynamicDependency.vcxitems rename to dev/DynamicDependency/API/DynamicDependency.vcxitems index 5294236102..500ce3bf41 100644 --- a/dev/DynamicDependency/DynamicDependency.vcxitems +++ b/dev/DynamicDependency/API/DynamicDependency.vcxitems @@ -70,7 +70,7 @@ - + diff --git a/dev/DynamicDependency/DynamicDependency.vcxitems.filters b/dev/DynamicDependency/API/DynamicDependency.vcxitems.filters similarity index 100% rename from dev/DynamicDependency/DynamicDependency.vcxitems.filters rename to dev/DynamicDependency/API/DynamicDependency.vcxitems.filters diff --git a/dev/DynamicDependency/M.AM.Converters.h b/dev/DynamicDependency/API/M.AM.Converters.h similarity index 100% rename from dev/DynamicDependency/M.AM.Converters.h rename to dev/DynamicDependency/API/M.AM.Converters.h diff --git a/dev/DynamicDependency/M.AM.DD.AddPackageDependencyOptions.cpp b/dev/DynamicDependency/API/M.AM.DD.AddPackageDependencyOptions.cpp similarity index 100% rename from dev/DynamicDependency/M.AM.DD.AddPackageDependencyOptions.cpp rename to dev/DynamicDependency/API/M.AM.DD.AddPackageDependencyOptions.cpp diff --git a/dev/DynamicDependency/M.AM.DD.AddPackageDependencyOptions.h b/dev/DynamicDependency/API/M.AM.DD.AddPackageDependencyOptions.h similarity index 100% rename from dev/DynamicDependency/M.AM.DD.AddPackageDependencyOptions.h rename to dev/DynamicDependency/API/M.AM.DD.AddPackageDependencyOptions.h diff --git a/dev/DynamicDependency/M.AM.DD.CreatePackageDependencyOptions.cpp b/dev/DynamicDependency/API/M.AM.DD.CreatePackageDependencyOptions.cpp similarity index 100% rename from dev/DynamicDependency/M.AM.DD.CreatePackageDependencyOptions.cpp rename to dev/DynamicDependency/API/M.AM.DD.CreatePackageDependencyOptions.cpp diff --git a/dev/DynamicDependency/M.AM.DD.CreatePackageDependencyOptions.h b/dev/DynamicDependency/API/M.AM.DD.CreatePackageDependencyOptions.h similarity index 100% rename from dev/DynamicDependency/M.AM.DD.CreatePackageDependencyOptions.h rename to dev/DynamicDependency/API/M.AM.DD.CreatePackageDependencyOptions.h diff --git a/dev/DynamicDependency/M.AM.DD.PackageDependency.cpp b/dev/DynamicDependency/API/M.AM.DD.PackageDependency.cpp similarity index 100% rename from dev/DynamicDependency/M.AM.DD.PackageDependency.cpp rename to dev/DynamicDependency/API/M.AM.DD.PackageDependency.cpp diff --git a/dev/DynamicDependency/M.AM.DD.PackageDependency.h b/dev/DynamicDependency/API/M.AM.DD.PackageDependency.h similarity index 100% rename from dev/DynamicDependency/M.AM.DD.PackageDependency.h rename to dev/DynamicDependency/API/M.AM.DD.PackageDependency.h diff --git a/dev/DynamicDependency/M.AM.DD.PackageDependencyContext.cpp b/dev/DynamicDependency/API/M.AM.DD.PackageDependencyContext.cpp similarity index 100% rename from dev/DynamicDependency/M.AM.DD.PackageDependencyContext.cpp rename to dev/DynamicDependency/API/M.AM.DD.PackageDependencyContext.cpp diff --git a/dev/DynamicDependency/M.AM.DD.PackageDependencyContext.h b/dev/DynamicDependency/API/M.AM.DD.PackageDependencyContext.h similarity index 100% rename from dev/DynamicDependency/M.AM.DD.PackageDependencyContext.h rename to dev/DynamicDependency/API/M.AM.DD.PackageDependencyContext.h diff --git a/dev/DynamicDependency/M.AM.DD.PackageDependencyRank.cpp b/dev/DynamicDependency/API/M.AM.DD.PackageDependencyRank.cpp similarity index 100% rename from dev/DynamicDependency/M.AM.DD.PackageDependencyRank.cpp rename to dev/DynamicDependency/API/M.AM.DD.PackageDependencyRank.cpp diff --git a/dev/DynamicDependency/M.AM.DD.PackageDependencyRank.h b/dev/DynamicDependency/API/M.AM.DD.PackageDependencyRank.h similarity index 100% rename from dev/DynamicDependency/M.AM.DD.PackageDependencyRank.h rename to dev/DynamicDependency/API/M.AM.DD.PackageDependencyRank.h diff --git a/dev/DynamicDependency/M.AM.DynamicDependency.idl b/dev/DynamicDependency/API/M.AM.DynamicDependency.idl similarity index 100% rename from dev/DynamicDependency/M.AM.DynamicDependency.idl rename to dev/DynamicDependency/API/M.AM.DynamicDependency.idl diff --git a/dev/DynamicDependency/MddCore.Architecture.h b/dev/DynamicDependency/API/MddCore.Architecture.h similarity index 100% rename from dev/DynamicDependency/MddCore.Architecture.h rename to dev/DynamicDependency/API/MddCore.Architecture.h diff --git a/dev/DynamicDependency/MddDetourPackageGraph.cpp b/dev/DynamicDependency/API/MddDetourPackageGraph.cpp similarity index 100% rename from dev/DynamicDependency/MddDetourPackageGraph.cpp rename to dev/DynamicDependency/API/MddDetourPackageGraph.cpp diff --git a/dev/DynamicDependency/MddDetourPackageGraph.h b/dev/DynamicDependency/API/MddDetourPackageGraph.h similarity index 100% rename from dev/DynamicDependency/MddDetourPackageGraph.h rename to dev/DynamicDependency/API/MddDetourPackageGraph.h diff --git a/dev/DynamicDependency/MddLifetimeManagement.cpp b/dev/DynamicDependency/API/MddLifetimeManagement.cpp similarity index 100% rename from dev/DynamicDependency/MddLifetimeManagement.cpp rename to dev/DynamicDependency/API/MddLifetimeManagement.cpp diff --git a/dev/DynamicDependency/MddLifetimeManagement.h b/dev/DynamicDependency/API/MddLifetimeManagement.h similarity index 100% rename from dev/DynamicDependency/MddLifetimeManagement.h rename to dev/DynamicDependency/API/MddLifetimeManagement.h diff --git a/dev/DynamicDependency/MddLifetimeManagementTest.h b/dev/DynamicDependency/API/MddLifetimeManagementTest.h similarity index 100% rename from dev/DynamicDependency/MddLifetimeManagementTest.h rename to dev/DynamicDependency/API/MddLifetimeManagementTest.h diff --git a/dev/DynamicDependency/MddWinRT.cpp b/dev/DynamicDependency/API/MddWinRT.cpp similarity index 100% rename from dev/DynamicDependency/MddWinRT.cpp rename to dev/DynamicDependency/API/MddWinRT.cpp diff --git a/dev/DynamicDependency/MddWinRT.h b/dev/DynamicDependency/API/MddWinRT.h similarity index 100% rename from dev/DynamicDependency/MddWinRT.h rename to dev/DynamicDependency/API/MddWinRT.h diff --git a/dev/DynamicDependency/MsixDynamicDependency.cpp b/dev/DynamicDependency/API/MsixDynamicDependency.cpp similarity index 100% rename from dev/DynamicDependency/MsixDynamicDependency.cpp rename to dev/DynamicDependency/API/MsixDynamicDependency.cpp diff --git a/dev/DynamicDependency/MsixDynamicDependency.h b/dev/DynamicDependency/API/MsixDynamicDependency.h similarity index 100% rename from dev/DynamicDependency/MsixDynamicDependency.h rename to dev/DynamicDependency/API/MsixDynamicDependency.h diff --git a/dev/DynamicDependency/PackageDependency.cpp b/dev/DynamicDependency/API/PackageDependency.cpp similarity index 100% rename from dev/DynamicDependency/PackageDependency.cpp rename to dev/DynamicDependency/API/PackageDependency.cpp diff --git a/dev/DynamicDependency/PackageDependency.h b/dev/DynamicDependency/API/PackageDependency.h similarity index 100% rename from dev/DynamicDependency/PackageDependency.h rename to dev/DynamicDependency/API/PackageDependency.h diff --git a/dev/DynamicDependency/PackageDependencyManager.cpp b/dev/DynamicDependency/API/PackageDependencyManager.cpp similarity index 100% rename from dev/DynamicDependency/PackageDependencyManager.cpp rename to dev/DynamicDependency/API/PackageDependencyManager.cpp diff --git a/dev/DynamicDependency/PackageDependencyManager.h b/dev/DynamicDependency/API/PackageDependencyManager.h similarity index 100% rename from dev/DynamicDependency/PackageDependencyManager.h rename to dev/DynamicDependency/API/PackageDependencyManager.h diff --git a/dev/DynamicDependency/PackageGraph.cpp b/dev/DynamicDependency/API/PackageGraph.cpp similarity index 100% rename from dev/DynamicDependency/PackageGraph.cpp rename to dev/DynamicDependency/API/PackageGraph.cpp diff --git a/dev/DynamicDependency/PackageGraph.h b/dev/DynamicDependency/API/PackageGraph.h similarity index 100% rename from dev/DynamicDependency/PackageGraph.h rename to dev/DynamicDependency/API/PackageGraph.h diff --git a/dev/DynamicDependency/PackageGraphManager.cpp b/dev/DynamicDependency/API/PackageGraphManager.cpp similarity index 100% rename from dev/DynamicDependency/PackageGraphManager.cpp rename to dev/DynamicDependency/API/PackageGraphManager.cpp diff --git a/dev/DynamicDependency/PackageGraphManager.h b/dev/DynamicDependency/API/PackageGraphManager.h similarity index 100% rename from dev/DynamicDependency/PackageGraphManager.h rename to dev/DynamicDependency/API/PackageGraphManager.h diff --git a/dev/DynamicDependency/PackageGraphNode.cpp b/dev/DynamicDependency/API/PackageGraphNode.cpp similarity index 100% rename from dev/DynamicDependency/PackageGraphNode.cpp rename to dev/DynamicDependency/API/PackageGraphNode.cpp diff --git a/dev/DynamicDependency/PackageGraphNode.h b/dev/DynamicDependency/API/PackageGraphNode.h similarity index 100% rename from dev/DynamicDependency/PackageGraphNode.h rename to dev/DynamicDependency/API/PackageGraphNode.h diff --git a/dev/DynamicDependency/PackageId.h b/dev/DynamicDependency/API/PackageId.h similarity index 100% rename from dev/DynamicDependency/PackageId.h rename to dev/DynamicDependency/API/PackageId.h diff --git a/dev/DynamicDependency/PackageInfo.h b/dev/DynamicDependency/API/PackageInfo.h similarity index 100% rename from dev/DynamicDependency/PackageInfo.h rename to dev/DynamicDependency/API/PackageInfo.h diff --git a/dev/DynamicDependency/WinRTInprocModule.h b/dev/DynamicDependency/API/WinRTInprocModule.h similarity index 100% rename from dev/DynamicDependency/WinRTInprocModule.h rename to dev/DynamicDependency/API/WinRTInprocModule.h diff --git a/dev/DynamicDependency/WinRTModuleManager.cpp b/dev/DynamicDependency/API/WinRTModuleManager.cpp similarity index 100% rename from dev/DynamicDependency/WinRTModuleManager.cpp rename to dev/DynamicDependency/API/WinRTModuleManager.cpp diff --git a/dev/DynamicDependency/WinRTModuleManager.h b/dev/DynamicDependency/API/WinRTModuleManager.h similarity index 100% rename from dev/DynamicDependency/WinRTModuleManager.h rename to dev/DynamicDependency/API/WinRTModuleManager.h diff --git a/dev/DynamicDependency/WinRTPackage.cpp b/dev/DynamicDependency/API/WinRTPackage.cpp similarity index 100% rename from dev/DynamicDependency/WinRTPackage.cpp rename to dev/DynamicDependency/API/WinRTPackage.cpp diff --git a/dev/DynamicDependency/WinRTPackage.h b/dev/DynamicDependency/API/WinRTPackage.h similarity index 100% rename from dev/DynamicDependency/WinRTPackage.h rename to dev/DynamicDependency/API/WinRTPackage.h diff --git a/dev/DynamicDependency/appmodel_msixdynamicdependency.h b/dev/DynamicDependency/API/appmodel_msixdynamicdependency.h similarity index 100% rename from dev/DynamicDependency/appmodel_msixdynamicdependency.h rename to dev/DynamicDependency/API/appmodel_msixdynamicdependency.h diff --git a/dev/DynamicDependency/pch.h b/dev/DynamicDependency/API/pch.h similarity index 100% rename from dev/DynamicDependency/pch.h rename to dev/DynamicDependency/API/pch.h diff --git a/dev/DynamicDependency/utf8.h b/dev/DynamicDependency/API/utf8.h similarity index 100% rename from dev/DynamicDependency/utf8.h rename to dev/DynamicDependency/API/utf8.h diff --git a/dev/DynamicDependency/wil_msixdynamicdependency.h b/dev/DynamicDependency/API/wil_msixdynamicdependency.h similarity index 100% rename from dev/DynamicDependency/wil_msixdynamicdependency.h rename to dev/DynamicDependency/API/wil_msixdynamicdependency.h diff --git a/dev/DynamicDependency/winrt_msixdynamicdepednency.h b/dev/DynamicDependency/API/winrt_msixdynamicdepednency.h similarity index 100% rename from dev/DynamicDependency/winrt_msixdynamicdepednency.h rename to dev/DynamicDependency/API/winrt_msixdynamicdepednency.h diff --git a/dev/DynamicDependency/winrt_namespaces.h b/dev/DynamicDependency/API/winrt_namespaces.h similarity index 100% rename from dev/DynamicDependency/winrt_namespaces.h rename to dev/DynamicDependency/API/winrt_namespaces.h diff --git a/dev/UndockedRegFreeWinRT/catalog.cpp b/dev/UndockedRegFreeWinRT/catalog.cpp index 18479f5654..7b6991fbf4 100644 --- a/dev/UndockedRegFreeWinRT/catalog.cpp +++ b/dev/UndockedRegFreeWinRT/catalog.cpp @@ -11,7 +11,7 @@ #include -#include <../DynamicDependency/MddWinRT.h> +#include <../DynamicDependency/API/MddWinRT.h> using namespace std; using namespace Microsoft::WRL; diff --git a/dev/WindowsAppSDK_DLL/WindowsAppSDK_DLL.vcxproj b/dev/WindowsAppSDK_DLL/WindowsAppSDK_DLL.vcxproj index f382ce34f3..68a21d1afd 100644 --- a/dev/WindowsAppSDK_DLL/WindowsAppSDK_DLL.vcxproj +++ b/dev/WindowsAppSDK_DLL/WindowsAppSDK_DLL.vcxproj @@ -108,7 +108,7 @@ - + @@ -396,4 +396,4 @@ - \ No newline at end of file + From ed16f3086a329a5afe345e7cfdde498005a94dfc Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Thu, 19 Aug 2021 23:02:49 -0700 Subject: [PATCH 02/19] Added 'GenerationId'. Added Bootstrap C# API --- .../DynamicDependencies.md | 246 +++++++++++++++++- 1 file changed, 245 insertions(+), 1 deletion(-) diff --git a/specs/dynamicdependencies/DynamicDependencies.md b/specs/dynamicdependencies/DynamicDependencies.md index 56ba261c6d..b03ff85642 100644 --- a/specs/dynamicdependencies/DynamicDependencies.md +++ b/specs/dynamicdependencies/DynamicDependencies.md @@ -1250,6 +1250,9 @@ STDAPI MddGetResolvedPackageFullNameForPackageDependency( STDAPI MddGetIdForPackageDependencyContext( _In_ MDD_PACKAGEDEPENDENCY_CONTEXT packageDependencyContext, _Outptr_result_maybenull_ PWSTR* packageDependencyId); + +/// Return the package graph's current generation id. +STDAPI_(UINT32) MddGetGenerationId() noexcept; ``` ### 6.1.2. MddBootstrap.h @@ -1257,7 +1260,7 @@ STDAPI MddGetIdForPackageDependencyContext( This header contains the Bootstrap API ```c++ -/// Iniitalize the calling process to use Windows App SDK's framework package. +/// Initialize the calling process to use Windows App SDK's framework package. /// /// Find a Windows App SDK framework package meeting the criteria and make it available /// for use by the current process. If multiple packages meet the criteria the best @@ -1289,6 +1292,231 @@ This header contains the Lifetime Management API STDAPI MddLifetimeManagementGC() noexcept; ``` +### 6.1.4. Microsoft.Windows.ApplicationModel.DynamicDependency (C#) + +This C# assembly contains the Bootstrap API for C# + +```c# +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +using System.Runtime.InteropServices; + +namespace Microsoft.Windows.ApplicationModel.DynamicDependency +{ + // The version of an MSIX package. This is logically `Major.Minor.Build.Revision` and can be expressed as... + // * individual `ushort` values (uint16) + // * an unsigned `ulong` value (uint64) + // * a dot-string notation ("major.minor.build.revision") + public struct PackageVersion + { + public ushort Major; + public ushort Minor; + public ushort Build; + public ushort Revision; + + // Create an instance with the value `major.0.0.0`. + public PackageVersion(ushort major) : + this(major, 0, 0, 0) + { + } + + // Create an instance with the value `major.minor.0.0`. + public PackageVersion(ushort major, ushort minor) : + this(major, minor, 0, 0) + { + } + + // Create an instance with the value `major.minor.build.0`. + public PackageVersion(ushort major, ushort minor, ushort build) : + this(major, minor, build, 0) + { + } + + // Create an instance with the value `major.minor.build.revision`. + public PackageVersion(ushort major, ushort minor, ushort build, ushort revision) + { + Major = major; + Minor = minor; + Build = build; + Revision = revision; + } + + // Create an instance from a version as a uint64. + public PackageVersion(ulong version) : + this((ushort)(version >> 48), (ushort)(version >> 32), (ushort)(version >> 16), (ushort)version) + { + } + + // Return the version as a uint64. + public ulong ToVersion() + { + return (((ulong)Major) << 48) | (((ulong)Minor) << 32) | (((ulong)Build) << 16) | ((ulong)Revision); + } + + // Return the string as a formatted value "major.minor.build.revision". + public override string ToString() + { + return $"{Major}.{Minor}.{Build}.{Revision}"; + } + }; + + // The Windows App SDK bootstrap initialization API. This class throws exceptions on error. + // + // @see Bootstrap_NoThrow + public class Bootstrap + { + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// This is equivalent to `Initialize(majorMinorVersion, null, new PackageVersion())`. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @see Initialize(uint, string) + /// @see Initialize(uint, string, PackageVersion) + /// @see Shutdown() + public static void Initialize(uint majorMinorVersion) + { + Initialize(majorMinorVersion, null); + } + + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// This is equivalent to `Initialize(majorMinorVersion, versionTag, new PackageVersion())`. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @param versionTag version tag (if any), e.g. "preview1". + /// @see Initialize(uint) + /// @see Initialize(uint, string, PackageVersion) + /// @see Shutdown() + public static void Initialize(uint majorMinorVersion, string versionTag) + { + Initialize(majorMinorVersion, versionTag, new PackageVersion()); + } + + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @param versionTag version tag (if any), e.g. "preview1". + /// @param minVersion the minimum version to use + /// @see Initialize(uint) + /// @see Initialize(uint, string) + /// @see Shutdown() + public static void Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) + { + MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + } + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] + private static extern void MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); + + /// Undo the changes made by Initialize(). + /// + /// @warning Packages made available via `Initialize()` and + /// the Dynamic Dependencies API should not be used after this call. + /// @see Initialize(uint) + /// @see Initialize(uint, string) + /// @see Initialize(uint, string, PackageVersion) + public static void Shutdown() + { + MddBootstrapShutdown(); + } + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll")] + private static extern void MddBootstrapShutdown(); + } + + // The Windows App SDK bootstrap initialization API. This class returns error as an HRESULT + // (>=0 on success, <0 on error). + // + // @see Bootstrap + public class Bootstrap_NoThrow + { + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// This is equivalent to `Initialize(majorMinorVersion, null, new PackageVersion())`. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @see Initialize(uint, string) + /// @see Initialize(uint, string, PackageVersion) + /// @see Shutdown() + public static int Initialize(uint majorMinorVersion) + { + return Initialize(majorMinorVersion, null); + } + + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// This is equivalent to `Initialize(majorMinorVersion, versionTag, new PackageVersion())`. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @param versionTag version tag (if any), e.g. "preview1". + /// @see Initialize(uint) + /// @see Initialize(uint, string, PackageVersion) + /// @see Shutdown() + public static int Initialize(uint majorMinorVersion, string versionTag) + { + var minVersion = new PackageVersion(); + return Initialize(majorMinorVersion, versionTag, minVersion); + } + + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @param versionTag version tag (if any), e.g. "preview1". + /// @param minVersion the minimum version to use + /// @see Initialize(uint) + /// @see Initialize(uint, string) + /// @see Shutdown() + public static int Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) + { + return MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + } + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] + private static extern int MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); + + /// Undo the changes made by Initialize(). + /// + /// @warning Packages made available via `Initialize()` and + /// the Dynamic Dependencies API should not be used after this call. + /// @see Initialize(uint) + /// @see Initialize(uint, string) + /// @see Initialize(uint, string, PackageVersion) + public static void Shutdown() + { + MddBootstrapShutdown(); + } + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll")] + private static extern void MddBootstrapShutdown(); + } +} +``` + ## 6.2. WinRT API ```c# (but really MIDL3) @@ -1511,6 +1739,10 @@ runtimeclass PackageDependency /// /// Calls to Add() can be balanced by a PackageDependencyContext.Remove() /// to remove the entry from the package graph. + /// + /// Successful calls change the package graph's current generation id. + /// + /// @see GenerationId PackageDependencyContext Add(); /// Resolve a previously pinned PackageDependency to a specific package and @@ -1546,7 +1778,14 @@ runtimeclass PackageDependency /// /// Calls to Add() can be balanced by a PackageDependencyContext.Remove() (or object destruction) /// to remove the entry from the package graph. + /// + /// Successful calls change the package graph's current generation id. + /// + /// @see GenerationId PackageDependencyContext Add(AddPackageDependencyOptions options); + + /// Return the package graph's current generation id. + static UInt32 GenerationId{ get; }; } /// A unique identifier for a resolved package dependency @@ -1576,6 +1815,11 @@ runtimeclass PackageDependencyContext /// Returns the package full name of the resolved package for this context String PackageFullName { get; } + /// Remove from the package graph a package dependency previously added via PackageDependency.Add(). + /// + /// Successful calls change the package graph's current generation id. + /// + /// @see PackageDependency.GenerationId void Remove(); } } From 61f3dae89504bacad53d8a1073d477a4ba280cb3 Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Thu, 19 Aug 2021 23:14:56 -0700 Subject: [PATCH 03/19] Added Bootstrap API samples --- .../DynamicDependencies.md | 2 + specs/dynamicdependencies/sample-b.1.md | 107 ++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 specs/dynamicdependencies/sample-b.1.md diff --git a/specs/dynamicdependencies/DynamicDependencies.md b/specs/dynamicdependencies/DynamicDependencies.md index b03ff85642..c714e3594e 100644 --- a/specs/dynamicdependencies/DynamicDependencies.md +++ b/specs/dynamicdependencies/DynamicDependencies.md @@ -51,6 +51,7 @@ to use packaged content. - [6.1.1. MsixDynamicDependency.h](#611-msixdynamicdependencyh) - [6.1.2. MddBootstrap.h](#612-mddbootstraph) - [6.1.3. MddLifetimeManagement.h](#613-mddlifetimemanagementh) + - [6.1.4. Microsoft.Windows.ApplicationModel.DynamicDependency (C#)](#614-microsoftwindowsapplicationmodeldynamicdependency-c) - [6.2. WinRT API](#62-winrt-api) - [7. Static Package Dependency Resolution Algorithm](#7-static-package-dependency-resolution-algorithm) - [7.1. Frequently Asked Questions (FAQ)](#71-frequently-asked-questions-faq) @@ -794,6 +795,7 @@ Samples illustrating the DynamicDependency APIs - [Sample 6](sample-6.md) - LolzKitten Installer / Uninstaller defining a 32bit PackageDependency [\[Win32\]](sample-6.md#win32) [\[WinRT\]](sample-6.md#winrt) - [Sample 7](sample-7.md) - LolzKitten app ordering Packages in PackageGraph [\[Win32\]](sample-7.md#win32) [\[WinRT\]](sample-7.md#winrt) - [Sample 8](sample-8.md) - LolzKitten app ordering Packages in PackageGraph with prepend [\[Win32\]](sample-8.md#win32) [\[WinRT\]](sample-8.md#winrt) +- [Sample B.1](sample-b.1.md) - HelloWorld console app using the Boostrap API [\[Win32\]](sample-b.1.md#win32) [\[C#\]](sample-b.1.md#cs) [\[C# (no throw)\]](sample-b.1.md#cs_nothrow) # 5. Remarks diff --git a/specs/dynamicdependencies/sample-b.1.md b/specs/dynamicdependencies/sample-b.1.md new file mode 100644 index 0000000000..d9304f949f --- /dev/null +++ b/specs/dynamicdependencies/sample-b.1.md @@ -0,0 +1,107 @@ +# Sample B.1 - HelloWorld console app using the Boostrap API + +At runtime, HelloWorld wants to use the Windows App SDK Framework 1.0-preview1 package, so it calls the Bootstrap API. + +## Win32 + +```c++ +#include + +#include + +int main() +{ + // Initialize access to Windows App SDK + const UINT32 c_majorMinorVersion{ 0x00010000 }; + PCWSTR c_versionTag{ L"preview1" }; + const PACKAGE_VERSION c_minVersion{}; + wprintf(L"MddBootstrapInitialize(0x%08X, \"%s\", %hu.%hu.%hu.%hu)...\n", + c_majorMinorVersion, c_versionTag, c_minVersion.Major, c_minVersion.Minor, c_minVersion.Build, c_minVersion.Revision); + HRESULT hr{ MddBootstrapInitialize(c_majorMinorVersion, c_versionTag, c_minVersion) }; + if (FAILED(hr)) + { + wprintf(L"Error 0x%X in MddBootstrapInitialize(0x%08X, \"%s\", %hu.%hu.%hu.%hu)\n", + hr, c_majorMinorVersion, c_versionTag, + c_minVersion.Major, c_minVersion.Minor, c_minVersion.Build, c_minVersion.Revision); + return hr; + } + + // Do interesting stuff... + std::cout << "Hello World!\n"; + + // Cleanup + MddBootstrapShutdown(); + return 0; +} +``` + +## C# (Throw Exception on Error) + +```c# +using System; +using Microsoft.Windows.ApplicationModel.DynamicDependency; + +namespace HelloWorldCS +{ + class Program + { + static void Main(string[] args) + { + // Initialize access to Windows App SDK + uint majorMinorVersion = 0x00010000; + string versionTag = "preview1"; + var minVersion = new PackageVersion(); + try + { + Console.WriteLine($"Bootstrap.Initialize({majorMinorVersion:X08}, \"{versionTag}\", {minVersion.Major}.{minVersion.Minor}.{minVersion.Build}.{minVersion.Revision})..."); + Bootstrap.Initialize(majorMinorVersion, versionTag, minVersion); + } + catch (Exception e) + { + Console.WriteLine(e.Message); + Environment.Exit(e.HResult); + } + + // Do interesting stuff... + Console.WriteLine("Hello World!"); + + // Cleanup + Bootstrap.Shutdown(); + } + } +} +``` + +## C# (Return HRESULT on Error) + +```c# +using System; +using Microsoft.Windows.ApplicationModel.DynamicDependency; + +namespace HelloWorldCS_NoThrow +{ + class Program + { + static void Main(string[] args) + { + // Initialize access to Windows App SDK + uint majorMinorVersion = 0x00010000; + string versionTag = "preview1"; + var minVersion = new PackageVersion(); + Console.WriteLine($"Bootstrap_NoThrow.Initialize({majorMinorVersion:X08}, \"{versionTag}\", {minVersion.Major}.{minVersion.Minor}.{minVersion.Build}.{minVersion.Revision})..."); + int hr = Bootstrap_NoThrow.Initialize(majorMinorVersion, versionTag, minVersion); + if (hr < 0) + { + Console.WriteLine($"Error 0x{hr:X08} in Bootstrap_NoThrow.Initialize(0x{majorMinorVersion:X08}, \"{versionTag}\", {minVersion.Major}.{minVersion.Minor}.{minVersion.Build}.{minVersion.Revision})"); + Environment.Exit(hr); + } + + // Do interesting stuff... + Console.WriteLine("Hello World!"); + + // Cleanup + Bootstrap_NoThrow.Shutdown(); + } + } +} +``` From def7f83da4f048f9f1c511f23461b87723b335c5 Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Thu, 19 Aug 2021 23:15:41 -0700 Subject: [PATCH 04/19] Fixed return type/calling convention of MddGetGenerationId() --- dev/DynamicDependency/API/MsixDynamicDependency.cpp | 2 +- dev/DynamicDependency/API/MsixDynamicDependency.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/DynamicDependency/API/MsixDynamicDependency.cpp b/dev/DynamicDependency/API/MsixDynamicDependency.cpp index aa33706ef6..766771dd07 100644 --- a/dev/DynamicDependency/API/MsixDynamicDependency.cpp +++ b/dev/DynamicDependency/API/MsixDynamicDependency.cpp @@ -136,7 +136,7 @@ STDAPI MddGetIdForPackageDependencyContext( } CATCH_RETURN(); -UINT32 MddGetGenerationId() noexcept +STDAPI_(UINT32) MddGetGenerationId() noexcept { if (!::Microsoft::Windows::ApplicationModel::DynamicDependency::Feature_GenerationId::IsEnabled()) { diff --git a/dev/DynamicDependency/API/MsixDynamicDependency.h b/dev/DynamicDependency/API/MsixDynamicDependency.h index c61c53fadb..6dac5d8859 100644 --- a/dev/DynamicDependency/API/MsixDynamicDependency.h +++ b/dev/DynamicDependency/API/MsixDynamicDependency.h @@ -191,7 +191,7 @@ STDAPI MddGetIdForPackageDependencyContext( #if defined(WINDOWSAPPSDK_MICROSOFT_WINDOWS_APPLICATIONMODEL_DYNAMICDEPENDENCY_FEATURE_GENERATIONID_ENABLED) && (WINDOWSAPPSDK_MICROSOFT_WINDOWS_APPLICATIONMODEL_DYNAMICDEPENDENCY_FEATURE_GENERATIONID_ENABLED == 1) /// Return the package graph's current generation id. -UINT32 MddGetGenerationId() noexcept; +STDAPI_(UINT32) MddGetGenerationId() noexcept; #endif #endif // MSIXDYNAMICDEPENDENCY_H From edc4effda83ac9a83b232fed39c39506bdd74976 Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Thu, 19 Aug 2021 23:16:04 -0700 Subject: [PATCH 05/19] Added C# API for Bootstrap API --- WindowsAppSDK.sln | 31 ++- .../Bootstrap.cs | 218 ++++++++++++++++++ ...crosoft.WindowsAppSDK.Bootstrap.Net.csproj | 30 +++ 3 files changed, 276 insertions(+), 3 deletions(-) create mode 100644 dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs create mode 100644 dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj diff --git a/WindowsAppSDK.sln b/WindowsAppSDK.sln index df281a1fe8..355b3000da 100644 --- a/WindowsAppSDK.sln +++ b/WindowsAppSDK.sln @@ -193,6 +193,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ChangeTracker", "dev\Change EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EnvironmentManagerTests", "test\EnvironmentManagerTests\EnvironmentManagerTests.vcxproj", "{2CD5CD9B-CF45-4FA7-9769-EE4E02426BF0}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bootstrap", "Bootstrap", "{8746775A-899E-49DD-A46C-2FE0899FFFEA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CS", "CS", "{536FA8DA-51E2-40A3-8A97-A90FFA75AA18}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.WindowsAppSDK.Bootstrap.Net", "dev\Bootstrap\CS\Microsoft.WindowsAppSDK.Bootstrap.Net\Microsoft.WindowsAppSDK.Bootstrap.Net.csproj", "{D6574FD6-8D13-4412-9FCB-308D44063CDA}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution test\inc\inc.vcxitems*{0a5fee93-48b7-40ec-bb9a-b27d11060da9}*SharedItemsImports = 4 @@ -206,7 +212,7 @@ Global test\inc\inc.vcxitems*{b567fe2e-3a03-48d0-b2b5-760cdec35891}*SharedItemsImports = 9 dev\ChangeTracker\ChangeTracker.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\Common\Common.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 - dev\DynamicDependency\DynamicDependency.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 + dev\DynamicDependency\API\DynamicDependency.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\Microsoft.Process.Environment\Microsoft.Process.Environment.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\PowerNotifications\PowerNotifications.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\UndockedRegFreeWinRT\UndockedRegFreeWinRT.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 @@ -635,8 +641,8 @@ Global {CBD95746-61CE-4F31-B6CC-C5ABF1766180}.Release|x86.ActiveCfg = Release|Win32 {CBD95746-61CE-4F31-B6CC-C5ABF1766180}.Release|x86.Build.0 = Release|Win32 {47D8D21D-F022-4D58-8DB2-8B467756E08C}.Debug|Any CPU.ActiveCfg = Debug|x86 - {47D8D21D-F022-4D58-8DB2-8B467756E08C}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {47D8D21D-F022-4D58-8DB2-8B467756E08C}.Debug|ARM64.Build.0 = Debug|ARM64 + {47D8D21D-F022-4D58-8DB2-8B467756E08C}.Debug|ARM64.ActiveCfg = Debug|arm64 + {47D8D21D-F022-4D58-8DB2-8B467756E08C}.Debug|ARM64.Build.0 = Debug|arm64 {47D8D21D-F022-4D58-8DB2-8B467756E08C}.Debug|x64.ActiveCfg = Debug|x64 {47D8D21D-F022-4D58-8DB2-8B467756E08C}.Debug|x64.Build.0 = Debug|x64 {47D8D21D-F022-4D58-8DB2-8B467756E08C}.Debug|x86.ActiveCfg = Debug|x86 @@ -686,6 +692,22 @@ Global {2CD5CD9B-CF45-4FA7-9769-EE4E02426BF0}.Release|x64.Build.0 = Release|x64 {2CD5CD9B-CF45-4FA7-9769-EE4E02426BF0}.Release|x86.ActiveCfg = Release|Win32 {2CD5CD9B-CF45-4FA7-9769-EE4E02426BF0}.Release|x86.Build.0 = Release|Win32 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Debug|ARM64.ActiveCfg = Debug|arm64 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Debug|ARM64.Build.0 = Debug|arm64 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Debug|x64.ActiveCfg = Debug|x64 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Debug|x64.Build.0 = Debug|x64 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Debug|x86.ActiveCfg = Debug|x86 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Debug|x86.Build.0 = Debug|x86 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Release|Any CPU.Build.0 = Release|Any CPU + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Release|ARM64.ActiveCfg = Release|arm64 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Release|ARM64.Build.0 = Release|arm64 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Release|x64.ActiveCfg = Release|x64 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Release|x64.Build.0 = Release|x64 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Release|x86.ActiveCfg = Release|x86 + {D6574FD6-8D13-4412-9FCB-308D44063CDA}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -749,6 +771,9 @@ Global {034E840E-2165-4167-B560-50AF6B4A52DC} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A} {E15C3465-9D45-495D-92CE-B91EF45E8623} = {034E840E-2165-4167-B560-50AF6B4A52DC} {2CD5CD9B-CF45-4FA7-9769-EE4E02426BF0} = {8630F7AA-2969-4DC9-8700-9B468C1DC21D} + {8746775A-899E-49DD-A46C-2FE0899FFFEA} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A} + {536FA8DA-51E2-40A3-8A97-A90FFA75AA18} = {8746775A-899E-49DD-A46C-2FE0899FFFEA} + {D6574FD6-8D13-4412-9FCB-308D44063CDA} = {536FA8DA-51E2-40A3-8A97-A90FFA75AA18} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4B3D7591-CFEC-4762-9A07-ABE99938FB77} diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs new file mode 100644 index 0000000000..6da84d4977 --- /dev/null +++ b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs @@ -0,0 +1,218 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +using System.Runtime.InteropServices; + +namespace Microsoft.Windows.ApplicationModel.DynamicDependency +{ + // The version of an MSIX package. This is logically `Major.Minor.Build.Revision` and can be expressed as... + // * individual `ushort` values (uint16) + // * an unsigned `ulong` value (uint64) + // * a dot-string notation ("major.minor.build.revision") + public struct PackageVersion + { + public ushort Major; + public ushort Minor; + public ushort Build; + public ushort Revision; + + // Create an instance with the value `major.0.0.0`. + public PackageVersion(ushort major) : + this(major, 0, 0, 0) + { + } + + // Create an instance with the value `major.minor.0.0`. + public PackageVersion(ushort major, ushort minor) : + this(major, minor, 0, 0) + { + } + + // Create an instance with the value `major.minor.build.0`. + public PackageVersion(ushort major, ushort minor, ushort build) : + this(major, minor, build, 0) + { + } + + // Create an instance with the value `major.minor.build.revision`. + public PackageVersion(ushort major, ushort minor, ushort build, ushort revision) + { + Major = major; + Minor = minor; + Build = build; + Revision = revision; + } + + // Create an instance from a version as a uint64. + public PackageVersion(ulong version) : + this((ushort)(version >> 48), (ushort)(version >> 32), (ushort)(version >> 16), (ushort)version) + { + } + + // Return the version as a uint64. + public ulong ToVersion() + { + return (((ulong)Major) << 48) | (((ulong)Minor) << 32) | (((ulong)Build) << 16) | ((ulong)Revision); + } + + // Return the string as a formatted value "major.minor.build.revision". + public override string ToString() + { + return $"{Major}.{Minor}.{Build}.{Revision}"; + } + }; + + // The Windows App SDK bootstrap initialization API. This class throws exceptions on error. + // + // @see Bootstrap_NoThrow + public class Bootstrap + { + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// This is equivalent to `Initialize(majorMinorVersion, null, new PackageVersion())`. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @see Initialize(uint, string) + /// @see Initialize(uint, string, PackageVersion) + /// @see Shutdown() + public static void Initialize(uint majorMinorVersion) + { + Initialize(majorMinorVersion, null); + } + + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// This is equivalent to `Initialize(majorMinorVersion, versionTag, new PackageVersion())`. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @param versionTag version tag (if any), e.g. "preview1". + /// @see Initialize(uint) + /// @see Initialize(uint, string, PackageVersion) + /// @see Shutdown() + public static void Initialize(uint majorMinorVersion, string versionTag) + { + Initialize(majorMinorVersion, versionTag, new PackageVersion()); + } + + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @param versionTag version tag (if any), e.g. "preview1". + /// @param minVersion the minimum version to use + /// @see Initialize(uint) + /// @see Initialize(uint, string) + /// @see Shutdown() + public static void Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) + { + MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + } + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] + private static extern void MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); + + /// Undo the changes made by Initialize(). + /// + /// @warning Packages made available via `Initialize()` and + /// the Dynamic Dependencies API should not be used after this call. + /// @see Initialize(uint) + /// @see Initialize(uint, string) + /// @see Initialize(uint, string, PackageVersion) + public static void Shutdown() + { + MddBootstrapShutdown(); + } + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll")] + private static extern void MddBootstrapShutdown(); + } + + // The Windows App SDK bootstrap initialization API. This class returns error as an HRESULT + // (>=0 on success, <0 on error). + // + // @see Bootstrap + public class Bootstrap_NoThrow + { + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// This is equivalent to `Initialize(majorMinorVersion, null, new PackageVersion())`. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @see Initialize(uint, string) + /// @see Initialize(uint, string, PackageVersion) + /// @see Shutdown() + public static int Initialize(uint majorMinorVersion) + { + return Initialize(majorMinorVersion, null); + } + + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// This is equivalent to `Initialize(majorMinorVersion, versionTag, new PackageVersion())`. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @param versionTag version tag (if any), e.g. "preview1". + /// @see Initialize(uint) + /// @see Initialize(uint, string, PackageVersion) + /// @see Shutdown() + public static int Initialize(uint majorMinorVersion, string versionTag) + { + var minVersion = new PackageVersion(); + return Initialize(majorMinorVersion, versionTag, minVersion); + } + + /// Initialize the calling process to use Windows App SDK's framework package. + /// + /// Find a Windows App SDK framework package meeting the criteria and make it available + /// for use by the current process. If multiple packages meet the criteria the best + /// candidate is selected. + /// + /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). + /// @param versionTag version tag (if any), e.g. "preview1". + /// @param minVersion the minimum version to use + /// @see Initialize(uint) + /// @see Initialize(uint, string) + /// @see Shutdown() + public static int Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) + { + return MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + } + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] + private static extern int MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); + + /// Undo the changes made by Initialize(). + /// + /// @warning Packages made available via `Initialize()` and + /// the Dynamic Dependencies API should not be used after this call. + /// @see Initialize(uint) + /// @see Initialize(uint, string) + /// @see Initialize(uint, string, PackageVersion) + public static void Shutdown() + { + MddBootstrapShutdown(); + } + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll")] + private static extern void MddBootstrapShutdown(); + } +} diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj new file mode 100644 index 0000000000..964fb00263 --- /dev/null +++ b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj @@ -0,0 +1,30 @@ + + + + net5.0 + net5.0-windows10.0.19041.0 + 10.0.17763.0 + x86;x64;arm64 + + + + AnyCPU + false + + + + AnyCPU + false + + + + AnyCPU + false + + + + AnyCPU + false + + + From 5eec7053fcf407b521494d63f78e38e54444de52 Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Fri, 20 Aug 2021 11:20:58 -0700 Subject: [PATCH 06/19] Incorporated feedback --- .../CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs | 4 ++-- nuget.config | 1 + specs/dynamicdependencies/sample-b.1.md | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs index 6da84d4977..ba2566e3bf 100644 --- a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs +++ b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs @@ -134,7 +134,7 @@ public static void Shutdown() MddBootstrapShutdown(); } - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll")] + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll"), ExactSpelling = true] private static extern void MddBootstrapShutdown(); } @@ -212,7 +212,7 @@ public static void Shutdown() MddBootstrapShutdown(); } - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll")] + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll"), ExactSpelling = true] private static extern void MddBootstrapShutdown(); } } diff --git a/nuget.config b/nuget.config index cf2af8856c..f4b47eb1b8 100644 --- a/nuget.config +++ b/nuget.config @@ -4,6 +4,7 @@ + diff --git a/specs/dynamicdependencies/sample-b.1.md b/specs/dynamicdependencies/sample-b.1.md index d9304f949f..646e7ad812 100644 --- a/specs/dynamicdependencies/sample-b.1.md +++ b/specs/dynamicdependencies/sample-b.1.md @@ -18,7 +18,7 @@ int main() wprintf(L"MddBootstrapInitialize(0x%08X, \"%s\", %hu.%hu.%hu.%hu)...\n", c_majorMinorVersion, c_versionTag, c_minVersion.Major, c_minVersion.Minor, c_minVersion.Build, c_minVersion.Revision); HRESULT hr{ MddBootstrapInitialize(c_majorMinorVersion, c_versionTag, c_minVersion) }; - if (FAILED(hr)) + if (FAILED(hr)) { wprintf(L"Error 0x%X in MddBootstrapInitialize(0x%08X, \"%s\", %hu.%hu.%hu.%hu)\n", hr, c_majorMinorVersion, c_versionTag, From cecaf04c2be8cc96e99d6efe86b05a27b8e8f30a Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Fri, 20 Aug 2021 11:33:19 -0700 Subject: [PATCH 07/19] Removed redundant AnyCPU setting (it's the default if unspecified) --- .../Microsoft.WindowsAppSDK.Bootstrap.Net.csproj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj index 964fb00263..539b132d5f 100644 --- a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj +++ b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj @@ -8,22 +8,18 @@ - AnyCPU false - AnyCPU false - AnyCPU false - AnyCPU false From 7042adce912852c10dbf8a86f23815fdfbfaf6ce Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Fri, 20 Aug 2021 12:19:43 -0700 Subject: [PATCH 08/19] Incorporated feedback --- .../Bootstrap.cs | 32 +++++++++---------- .../DynamicDependencies.md | 32 +++++++++---------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs index ba2566e3bf..4da00ee572 100644 --- a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs +++ b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs @@ -62,6 +62,18 @@ public override string ToString() } }; + internal static class NativeMethods + { + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", EntryPoint = "MddBootstralInitialize", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] + internal static extern void MddBootstrapInitialize_Throw(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] + internal static extern int MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", ExactSpelling = true)] + internal static extern void MddBootstrapShutdown(); + } + // The Windows App SDK bootstrap initialization API. This class throws exceptions on error. // // @see Bootstrap_NoThrow @@ -116,12 +128,9 @@ public static void Initialize(uint majorMinorVersion, string versionTag) /// @see Shutdown() public static void Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) { - MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + NativeMethods.MddBootstrapInitialize_Throw(majorMinorVersion, versionTag, minVersion); } - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] - private static extern void MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); - /// Undo the changes made by Initialize(). /// /// @warning Packages made available via `Initialize()` and @@ -131,11 +140,8 @@ public static void Initialize(uint majorMinorVersion, string versionTag, Package /// @see Initialize(uint, string, PackageVersion) public static void Shutdown() { - MddBootstrapShutdown(); + NativeMethods.MddBootstrapShutdown(); } - - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll"), ExactSpelling = true] - private static extern void MddBootstrapShutdown(); } // The Windows App SDK bootstrap initialization API. This class returns error as an HRESULT @@ -194,12 +200,9 @@ public static int Initialize(uint majorMinorVersion, string versionTag) /// @see Shutdown() public static int Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) { - return MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + return NativeMethods.MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); } - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] - private static extern int MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); - /// Undo the changes made by Initialize(). /// /// @warning Packages made available via `Initialize()` and @@ -209,10 +212,7 @@ public static int Initialize(uint majorMinorVersion, string versionTag, PackageV /// @see Initialize(uint, string, PackageVersion) public static void Shutdown() { - MddBootstrapShutdown(); + NativeMethods.MddBootstrapShutdown(); } - - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll"), ExactSpelling = true] - private static extern void MddBootstrapShutdown(); } } diff --git a/specs/dynamicdependencies/DynamicDependencies.md b/specs/dynamicdependencies/DynamicDependencies.md index c714e3594e..88a3761eb6 100644 --- a/specs/dynamicdependencies/DynamicDependencies.md +++ b/specs/dynamicdependencies/DynamicDependencies.md @@ -1363,6 +1363,18 @@ namespace Microsoft.Windows.ApplicationModel.DynamicDependency } }; + internal static class NativeMethods + { + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", EntryPoint = "MddBootstralInitialize", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] + internal static extern void MddBootstrapInitialize_Throw(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] + internal static extern int MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); + + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", ExactSpelling = true)] + internal static extern void MddBootstrapShutdown(); + } + // The Windows App SDK bootstrap initialization API. This class throws exceptions on error. // // @see Bootstrap_NoThrow @@ -1417,12 +1429,9 @@ namespace Microsoft.Windows.ApplicationModel.DynamicDependency /// @see Shutdown() public static void Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) { - MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + NativeMethods.MddBootstrapInitialize_Throw(majorMinorVersion, versionTag, minVersion); } - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] - private static extern void MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); - /// Undo the changes made by Initialize(). /// /// @warning Packages made available via `Initialize()` and @@ -1432,11 +1441,8 @@ namespace Microsoft.Windows.ApplicationModel.DynamicDependency /// @see Initialize(uint, string, PackageVersion) public static void Shutdown() { - MddBootstrapShutdown(); + NativeMethods.MddBootstrapShutdown(); } - - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll")] - private static extern void MddBootstrapShutdown(); } // The Windows App SDK bootstrap initialization API. This class returns error as an HRESULT @@ -1495,12 +1501,9 @@ namespace Microsoft.Windows.ApplicationModel.DynamicDependency /// @see Shutdown() public static int Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) { - return MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + return NativeMethods.MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); } - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] - private static extern int MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); - /// Undo the changes made by Initialize(). /// /// @warning Packages made available via `Initialize()` and @@ -1510,11 +1513,8 @@ namespace Microsoft.Windows.ApplicationModel.DynamicDependency /// @see Initialize(uint, string, PackageVersion) public static void Shutdown() { - MddBootstrapShutdown(); + NativeMethods.MddBootstrapShutdown(); } - - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll")] - private static extern void MddBootstrapShutdown(); } } ``` From 6edf1b9bfa7dcb78018580b01dff2ca738c1572e Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Fri, 20 Aug 2021 12:23:08 -0700 Subject: [PATCH 09/19] Added the C# assembly to the Transport package --- build/CopyFilesToStagingDir.ps1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/CopyFilesToStagingDir.ps1 b/build/CopyFilesToStagingDir.ps1 index 3d8917be03..cdf62ac9a8 100644 --- a/build/CopyFilesToStagingDir.ps1 +++ b/build/CopyFilesToStagingDir.ps1 @@ -56,6 +56,8 @@ PublishFile $FullBuildOutput\DynamicDependencyLifetimeManager.ProxyStub\DynamicD PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\Microsoft.WindowsAppSDK.Bootstrap.dll $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\Microsoft.WindowsAppSDK.Bootstrap.lib $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\MddBootstrap.h $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ +PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\Microsoft.WindowsAppSDK.Bootstrap.Net.dll $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ +PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\Microsoft.WindowsAppSDK.Bootstrap.Net.pdb $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ #PublishFile -IfExists $FullBuildOutput\WindowsAppSDK_DLL\Generic.xaml $FullPublishDir\Microsoft.WindowsAppSDK\ #PublishFile -IfExists $FullBuildOutput\Microsoft.WindowsAppSDK.Design\Microsoft.WindowsAppSDK.Design.dll $FullPublishDir\Microsoft.WindowsAppSDK.Design\ From a367ea809ecc89cd7f4d6c5cb8d83269fe0a5f56 Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Fri, 20 Aug 2021 12:32:42 -0700 Subject: [PATCH 10/19] Removed accidental nuget reference --- nuget.config | 1 - 1 file changed, 1 deletion(-) diff --git a/nuget.config b/nuget.config index f4b47eb1b8..cf2af8856c 100644 --- a/nuget.config +++ b/nuget.config @@ -4,7 +4,6 @@ - From 46aee95afdb7db0c813c7dbeb6ea0ce76bd7959b Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Fri, 20 Aug 2021 14:02:17 -0700 Subject: [PATCH 11/19] Moved the specs out to user/drustheaxe/spec-bootstrapcs-generationid --- .../DynamicDependencies.md | 248 +----------------- specs/dynamicdependencies/sample-b.1.md | 107 -------- 2 files changed, 1 insertion(+), 354 deletions(-) delete mode 100644 specs/dynamicdependencies/sample-b.1.md diff --git a/specs/dynamicdependencies/DynamicDependencies.md b/specs/dynamicdependencies/DynamicDependencies.md index 88a3761eb6..56ba261c6d 100644 --- a/specs/dynamicdependencies/DynamicDependencies.md +++ b/specs/dynamicdependencies/DynamicDependencies.md @@ -51,7 +51,6 @@ to use packaged content. - [6.1.1. MsixDynamicDependency.h](#611-msixdynamicdependencyh) - [6.1.2. MddBootstrap.h](#612-mddbootstraph) - [6.1.3. MddLifetimeManagement.h](#613-mddlifetimemanagementh) - - [6.1.4. Microsoft.Windows.ApplicationModel.DynamicDependency (C#)](#614-microsoftwindowsapplicationmodeldynamicdependency-c) - [6.2. WinRT API](#62-winrt-api) - [7. Static Package Dependency Resolution Algorithm](#7-static-package-dependency-resolution-algorithm) - [7.1. Frequently Asked Questions (FAQ)](#71-frequently-asked-questions-faq) @@ -795,7 +794,6 @@ Samples illustrating the DynamicDependency APIs - [Sample 6](sample-6.md) - LolzKitten Installer / Uninstaller defining a 32bit PackageDependency [\[Win32\]](sample-6.md#win32) [\[WinRT\]](sample-6.md#winrt) - [Sample 7](sample-7.md) - LolzKitten app ordering Packages in PackageGraph [\[Win32\]](sample-7.md#win32) [\[WinRT\]](sample-7.md#winrt) - [Sample 8](sample-8.md) - LolzKitten app ordering Packages in PackageGraph with prepend [\[Win32\]](sample-8.md#win32) [\[WinRT\]](sample-8.md#winrt) -- [Sample B.1](sample-b.1.md) - HelloWorld console app using the Boostrap API [\[Win32\]](sample-b.1.md#win32) [\[C#\]](sample-b.1.md#cs) [\[C# (no throw)\]](sample-b.1.md#cs_nothrow) # 5. Remarks @@ -1252,9 +1250,6 @@ STDAPI MddGetResolvedPackageFullNameForPackageDependency( STDAPI MddGetIdForPackageDependencyContext( _In_ MDD_PACKAGEDEPENDENCY_CONTEXT packageDependencyContext, _Outptr_result_maybenull_ PWSTR* packageDependencyId); - -/// Return the package graph's current generation id. -STDAPI_(UINT32) MddGetGenerationId() noexcept; ``` ### 6.1.2. MddBootstrap.h @@ -1262,7 +1257,7 @@ STDAPI_(UINT32) MddGetGenerationId() noexcept; This header contains the Bootstrap API ```c++ -/// Initialize the calling process to use Windows App SDK's framework package. +/// Iniitalize the calling process to use Windows App SDK's framework package. /// /// Find a Windows App SDK framework package meeting the criteria and make it available /// for use by the current process. If multiple packages meet the criteria the best @@ -1294,231 +1289,6 @@ This header contains the Lifetime Management API STDAPI MddLifetimeManagementGC() noexcept; ``` -### 6.1.4. Microsoft.Windows.ApplicationModel.DynamicDependency (C#) - -This C# assembly contains the Bootstrap API for C# - -```c# -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See LICENSE in the project root for license information. - -using System.Runtime.InteropServices; - -namespace Microsoft.Windows.ApplicationModel.DynamicDependency -{ - // The version of an MSIX package. This is logically `Major.Minor.Build.Revision` and can be expressed as... - // * individual `ushort` values (uint16) - // * an unsigned `ulong` value (uint64) - // * a dot-string notation ("major.minor.build.revision") - public struct PackageVersion - { - public ushort Major; - public ushort Minor; - public ushort Build; - public ushort Revision; - - // Create an instance with the value `major.0.0.0`. - public PackageVersion(ushort major) : - this(major, 0, 0, 0) - { - } - - // Create an instance with the value `major.minor.0.0`. - public PackageVersion(ushort major, ushort minor) : - this(major, minor, 0, 0) - { - } - - // Create an instance with the value `major.minor.build.0`. - public PackageVersion(ushort major, ushort minor, ushort build) : - this(major, minor, build, 0) - { - } - - // Create an instance with the value `major.minor.build.revision`. - public PackageVersion(ushort major, ushort minor, ushort build, ushort revision) - { - Major = major; - Minor = minor; - Build = build; - Revision = revision; - } - - // Create an instance from a version as a uint64. - public PackageVersion(ulong version) : - this((ushort)(version >> 48), (ushort)(version >> 32), (ushort)(version >> 16), (ushort)version) - { - } - - // Return the version as a uint64. - public ulong ToVersion() - { - return (((ulong)Major) << 48) | (((ulong)Minor) << 32) | (((ulong)Build) << 16) | ((ulong)Revision); - } - - // Return the string as a formatted value "major.minor.build.revision". - public override string ToString() - { - return $"{Major}.{Minor}.{Build}.{Revision}"; - } - }; - - internal static class NativeMethods - { - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", EntryPoint = "MddBootstralInitialize", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] - internal static extern void MddBootstrapInitialize_Throw(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); - - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] - internal static extern int MddBootstrapInitialize(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); - - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", ExactSpelling = true)] - internal static extern void MddBootstrapShutdown(); - } - - // The Windows App SDK bootstrap initialization API. This class throws exceptions on error. - // - // @see Bootstrap_NoThrow - public class Bootstrap - { - /// Initialize the calling process to use Windows App SDK's framework package. - /// - /// Find a Windows App SDK framework package meeting the criteria and make it available - /// for use by the current process. If multiple packages meet the criteria the best - /// candidate is selected. - /// - /// This is equivalent to `Initialize(majorMinorVersion, null, new PackageVersion())`. - /// - /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). - /// @see Initialize(uint, string) - /// @see Initialize(uint, string, PackageVersion) - /// @see Shutdown() - public static void Initialize(uint majorMinorVersion) - { - Initialize(majorMinorVersion, null); - } - - /// Initialize the calling process to use Windows App SDK's framework package. - /// - /// Find a Windows App SDK framework package meeting the criteria and make it available - /// for use by the current process. If multiple packages meet the criteria the best - /// candidate is selected. - /// - /// This is equivalent to `Initialize(majorMinorVersion, versionTag, new PackageVersion())`. - /// - /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). - /// @param versionTag version tag (if any), e.g. "preview1". - /// @see Initialize(uint) - /// @see Initialize(uint, string, PackageVersion) - /// @see Shutdown() - public static void Initialize(uint majorMinorVersion, string versionTag) - { - Initialize(majorMinorVersion, versionTag, new PackageVersion()); - } - - /// Initialize the calling process to use Windows App SDK's framework package. - /// - /// Find a Windows App SDK framework package meeting the criteria and make it available - /// for use by the current process. If multiple packages meet the criteria the best - /// candidate is selected. - /// - /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). - /// @param versionTag version tag (if any), e.g. "preview1". - /// @param minVersion the minimum version to use - /// @see Initialize(uint) - /// @see Initialize(uint, string) - /// @see Shutdown() - public static void Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) - { - NativeMethods.MddBootstrapInitialize_Throw(majorMinorVersion, versionTag, minVersion); - } - - /// Undo the changes made by Initialize(). - /// - /// @warning Packages made available via `Initialize()` and - /// the Dynamic Dependencies API should not be used after this call. - /// @see Initialize(uint) - /// @see Initialize(uint, string) - /// @see Initialize(uint, string, PackageVersion) - public static void Shutdown() - { - NativeMethods.MddBootstrapShutdown(); - } - } - - // The Windows App SDK bootstrap initialization API. This class returns error as an HRESULT - // (>=0 on success, <0 on error). - // - // @see Bootstrap - public class Bootstrap_NoThrow - { - /// Initialize the calling process to use Windows App SDK's framework package. - /// - /// Find a Windows App SDK framework package meeting the criteria and make it available - /// for use by the current process. If multiple packages meet the criteria the best - /// candidate is selected. - /// - /// This is equivalent to `Initialize(majorMinorVersion, null, new PackageVersion())`. - /// - /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). - /// @see Initialize(uint, string) - /// @see Initialize(uint, string, PackageVersion) - /// @see Shutdown() - public static int Initialize(uint majorMinorVersion) - { - return Initialize(majorMinorVersion, null); - } - - /// Initialize the calling process to use Windows App SDK's framework package. - /// - /// Find a Windows App SDK framework package meeting the criteria and make it available - /// for use by the current process. If multiple packages meet the criteria the best - /// candidate is selected. - /// - /// This is equivalent to `Initialize(majorMinorVersion, versionTag, new PackageVersion())`. - /// - /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). - /// @param versionTag version tag (if any), e.g. "preview1". - /// @see Initialize(uint) - /// @see Initialize(uint, string, PackageVersion) - /// @see Shutdown() - public static int Initialize(uint majorMinorVersion, string versionTag) - { - var minVersion = new PackageVersion(); - return Initialize(majorMinorVersion, versionTag, minVersion); - } - - /// Initialize the calling process to use Windows App SDK's framework package. - /// - /// Find a Windows App SDK framework package meeting the criteria and make it available - /// for use by the current process. If multiple packages meet the criteria the best - /// candidate is selected. - /// - /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). - /// @param versionTag version tag (if any), e.g. "preview1". - /// @param minVersion the minimum version to use - /// @see Initialize(uint) - /// @see Initialize(uint, string) - /// @see Shutdown() - public static int Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) - { - return NativeMethods.MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); - } - - /// Undo the changes made by Initialize(). - /// - /// @warning Packages made available via `Initialize()` and - /// the Dynamic Dependencies API should not be used after this call. - /// @see Initialize(uint) - /// @see Initialize(uint, string) - /// @see Initialize(uint, string, PackageVersion) - public static void Shutdown() - { - NativeMethods.MddBootstrapShutdown(); - } - } -} -``` - ## 6.2. WinRT API ```c# (but really MIDL3) @@ -1741,10 +1511,6 @@ runtimeclass PackageDependency /// /// Calls to Add() can be balanced by a PackageDependencyContext.Remove() /// to remove the entry from the package graph. - /// - /// Successful calls change the package graph's current generation id. - /// - /// @see GenerationId PackageDependencyContext Add(); /// Resolve a previously pinned PackageDependency to a specific package and @@ -1780,14 +1546,7 @@ runtimeclass PackageDependency /// /// Calls to Add() can be balanced by a PackageDependencyContext.Remove() (or object destruction) /// to remove the entry from the package graph. - /// - /// Successful calls change the package graph's current generation id. - /// - /// @see GenerationId PackageDependencyContext Add(AddPackageDependencyOptions options); - - /// Return the package graph's current generation id. - static UInt32 GenerationId{ get; }; } /// A unique identifier for a resolved package dependency @@ -1817,11 +1576,6 @@ runtimeclass PackageDependencyContext /// Returns the package full name of the resolved package for this context String PackageFullName { get; } - /// Remove from the package graph a package dependency previously added via PackageDependency.Add(). - /// - /// Successful calls change the package graph's current generation id. - /// - /// @see PackageDependency.GenerationId void Remove(); } } diff --git a/specs/dynamicdependencies/sample-b.1.md b/specs/dynamicdependencies/sample-b.1.md deleted file mode 100644 index 646e7ad812..0000000000 --- a/specs/dynamicdependencies/sample-b.1.md +++ /dev/null @@ -1,107 +0,0 @@ -# Sample B.1 - HelloWorld console app using the Boostrap API - -At runtime, HelloWorld wants to use the Windows App SDK Framework 1.0-preview1 package, so it calls the Bootstrap API. - -## Win32 - -```c++ -#include - -#include - -int main() -{ - // Initialize access to Windows App SDK - const UINT32 c_majorMinorVersion{ 0x00010000 }; - PCWSTR c_versionTag{ L"preview1" }; - const PACKAGE_VERSION c_minVersion{}; - wprintf(L"MddBootstrapInitialize(0x%08X, \"%s\", %hu.%hu.%hu.%hu)...\n", - c_majorMinorVersion, c_versionTag, c_minVersion.Major, c_minVersion.Minor, c_minVersion.Build, c_minVersion.Revision); - HRESULT hr{ MddBootstrapInitialize(c_majorMinorVersion, c_versionTag, c_minVersion) }; - if (FAILED(hr)) - { - wprintf(L"Error 0x%X in MddBootstrapInitialize(0x%08X, \"%s\", %hu.%hu.%hu.%hu)\n", - hr, c_majorMinorVersion, c_versionTag, - c_minVersion.Major, c_minVersion.Minor, c_minVersion.Build, c_minVersion.Revision); - return hr; - } - - // Do interesting stuff... - std::cout << "Hello World!\n"; - - // Cleanup - MddBootstrapShutdown(); - return 0; -} -``` - -## C# (Throw Exception on Error) - -```c# -using System; -using Microsoft.Windows.ApplicationModel.DynamicDependency; - -namespace HelloWorldCS -{ - class Program - { - static void Main(string[] args) - { - // Initialize access to Windows App SDK - uint majorMinorVersion = 0x00010000; - string versionTag = "preview1"; - var minVersion = new PackageVersion(); - try - { - Console.WriteLine($"Bootstrap.Initialize({majorMinorVersion:X08}, \"{versionTag}\", {minVersion.Major}.{minVersion.Minor}.{minVersion.Build}.{minVersion.Revision})..."); - Bootstrap.Initialize(majorMinorVersion, versionTag, minVersion); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - Environment.Exit(e.HResult); - } - - // Do interesting stuff... - Console.WriteLine("Hello World!"); - - // Cleanup - Bootstrap.Shutdown(); - } - } -} -``` - -## C# (Return HRESULT on Error) - -```c# -using System; -using Microsoft.Windows.ApplicationModel.DynamicDependency; - -namespace HelloWorldCS_NoThrow -{ - class Program - { - static void Main(string[] args) - { - // Initialize access to Windows App SDK - uint majorMinorVersion = 0x00010000; - string versionTag = "preview1"; - var minVersion = new PackageVersion(); - Console.WriteLine($"Bootstrap_NoThrow.Initialize({majorMinorVersion:X08}, \"{versionTag}\", {minVersion.Major}.{minVersion.Minor}.{minVersion.Build}.{minVersion.Revision})..."); - int hr = Bootstrap_NoThrow.Initialize(majorMinorVersion, versionTag, minVersion); - if (hr < 0) - { - Console.WriteLine($"Error 0x{hr:X08} in Bootstrap_NoThrow.Initialize(0x{majorMinorVersion:X08}, \"{versionTag}\", {minVersion.Major}.{minVersion.Minor}.{minVersion.Build}.{minVersion.Revision})"); - Environment.Exit(hr); - } - - // Do interesting stuff... - Console.WriteLine("Hello World!"); - - // Cleanup - Bootstrap_NoThrow.Shutdown(); - } - } -} -``` From 0d11034a746390b86ba45525036287a6939b47d1 Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Fri, 20 Aug 2021 14:20:51 -0700 Subject: [PATCH 12/19] Fixed bad patah --- build/CopyFilesToStagingDir.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/CopyFilesToStagingDir.ps1 b/build/CopyFilesToStagingDir.ps1 index cdf62ac9a8..3e8425cfa5 100644 --- a/build/CopyFilesToStagingDir.ps1 +++ b/build/CopyFilesToStagingDir.ps1 @@ -56,8 +56,8 @@ PublishFile $FullBuildOutput\DynamicDependencyLifetimeManager.ProxyStub\DynamicD PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\Microsoft.WindowsAppSDK.Bootstrap.dll $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\Microsoft.WindowsAppSDK.Bootstrap.lib $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\MddBootstrap.h $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ -PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\Microsoft.WindowsAppSDK.Bootstrap.Net.dll $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ -PublishFile $FullBuildOutput\WindowsAppSDK_BootstrapDLL\Microsoft.WindowsAppSDK.Bootstrap.Net.pdb $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ +PublishFile $FullBuildOutput\Microsoft.WindowsAppSDK.Bootstrap.Net\Microsoft.WindowsAppSDK.Bootstrap.Net.dll $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ +PublishFile $FullBuildOutput\Microsoft.WindowsAppSDK.Bootstrap.Net\Microsoft.WindowsAppSDK.Bootstrap.Net.pdb $FullPublishDir\Microsoft.WindowsAppSDK.Bootstrap\ #PublishFile -IfExists $FullBuildOutput\WindowsAppSDK_DLL\Generic.xaml $FullPublishDir\Microsoft.WindowsAppSDK\ #PublishFile -IfExists $FullBuildOutput\Microsoft.WindowsAppSDK.Design\Microsoft.WindowsAppSDK.Design.dll $FullPublishDir\Microsoft.WindowsAppSDK.Design\ From 07c5464152d5a241e92504ec7906dba8c3f6bb2c Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Mon, 23 Aug 2021 23:49:49 -0700 Subject: [PATCH 13/19] Incorporated feedback --- .../Bootstrap.cs | 64 ++++++++----------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs index 4da00ee572..3e68102ab6 100644 --- a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs +++ b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs @@ -74,9 +74,7 @@ internal static class NativeMethods internal static extern void MddBootstrapShutdown(); } - // The Windows App SDK bootstrap initialization API. This class throws exceptions on error. - // - // @see Bootstrap_NoThrow + // The Windows App SDK bootstrap initialization API. public class Bootstrap { /// Initialize the calling process to use Windows App SDK's framework package. @@ -131,62 +129,48 @@ public static void Initialize(uint majorMinorVersion, string versionTag, Package NativeMethods.MddBootstrapInitialize_Throw(majorMinorVersion, versionTag, minVersion); } - /// Undo the changes made by Initialize(). - /// - /// @warning Packages made available via `Initialize()` and - /// the Dynamic Dependencies API should not be used after this call. - /// @see Initialize(uint) - /// @see Initialize(uint, string) - /// @see Initialize(uint, string, PackageVersion) - public static void Shutdown() - { - NativeMethods.MddBootstrapShutdown(); - } - } - - // The Windows App SDK bootstrap initialization API. This class returns error as an HRESULT - // (>=0 on success, <0 on error). - // - // @see Bootstrap - public class Bootstrap_NoThrow - { /// Initialize the calling process to use Windows App SDK's framework package. + /// Failure returns false with the failure HRESULT in the hresult parameter. /// /// Find a Windows App SDK framework package meeting the criteria and make it available /// for use by the current process. If multiple packages meet the criteria the best /// candidate is selected. /// - /// This is equivalent to `Initialize(majorMinorVersion, null, new PackageVersion())`. + /// This is equivalent to `TryInitialize(majorMinorVersion, null, new PackageVersion(), hresult)`. /// /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). - /// @see Initialize(uint, string) - /// @see Initialize(uint, string, PackageVersion) + /// @retval true if successful, otherwise false is returned. + /// @see TryInitialize(uint, string, out int) + /// @see TryInitialize(uint, string, PackageVersion, out int) /// @see Shutdown() - public static int Initialize(uint majorMinorVersion) + public static bool TryInitialize(uint majorMinorVersion, out int hresult) { - return Initialize(majorMinorVersion, null); + return TryInitialize(majorMinorVersion, null, out hresult); } /// Initialize the calling process to use Windows App SDK's framework package. + /// Failure returns false with the failure HRESULT in the hresult parameter. /// /// Find a Windows App SDK framework package meeting the criteria and make it available /// for use by the current process. If multiple packages meet the criteria the best /// candidate is selected. /// - /// This is equivalent to `Initialize(majorMinorVersion, versionTag, new PackageVersion())`. + /// This is equivalent to `TryInitialize(majorMinorVersion, versionTag, new PackageVersion(), hresult)`. /// /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). /// @param versionTag version tag (if any), e.g. "preview1". - /// @see Initialize(uint) - /// @see Initialize(uint, string, PackageVersion) + /// @retval true if successful, otherwise false is returned. + /// @see TryInitialize(uint, out int) + /// @see TryInitialize(uint, string, PackageVersion, out int) /// @see Shutdown() - public static int Initialize(uint majorMinorVersion, string versionTag) + public static bool TryInitialize(uint majorMinorVersion, string versionTag, out int hresult) { var minVersion = new PackageVersion(); - return Initialize(majorMinorVersion, versionTag, minVersion); + return TryInitialize(majorMinorVersion, versionTag, minVersion, out hresult); } /// Initialize the calling process to use Windows App SDK's framework package. + /// Failure returns false with the failure HRESULT in the hresult parameter. /// /// Find a Windows App SDK framework package meeting the criteria and make it available /// for use by the current process. If multiple packages meet the criteria the best @@ -194,13 +178,16 @@ public static int Initialize(uint majorMinorVersion, string versionTag) /// /// @param majorMinorVersion major and minor version of Windows App SDK's framework package, encoded as `0xMMMMNNNN` where M=Major, N=Minor (e.g. 1.2 == 0x00010002). /// @param versionTag version tag (if any), e.g. "preview1". - /// @param minVersion the minimum version to use - /// @see Initialize(uint) - /// @see Initialize(uint, string) + /// @param minVersion the minimum version to use. + /// @param hresult the error code if an error occurred. + /// @retval true if successful, otherwise false is returned. + /// @see TryInitialize(uint, out int) + /// @see TryInitialize(uint, string, out int) /// @see Shutdown() - public static int Initialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion) + public static bool TryInitialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion, out int hresult) { - return NativeMethods.MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + hresult = NativeMethods.MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion); + return hresult >= 0; } /// Undo the changes made by Initialize(). @@ -210,6 +197,9 @@ public static int Initialize(uint majorMinorVersion, string versionTag, PackageV /// @see Initialize(uint) /// @see Initialize(uint, string) /// @see Initialize(uint, string, PackageVersion) + /// @see TryInitialize(uint, out int) + /// @see TryInitialize(uint, string, out int) + /// @see TryInitialize(uint, string, PackageVersion, out int) public static void Shutdown() { NativeMethods.MddBootstrapShutdown(); From 1da80e6974e696faed7fe1d6685e689094f72d7b Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Tue, 24 Aug 2021 12:44:26 -0700 Subject: [PATCH 14/19] Fixed typo (sheepish grin) --- .../CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs index 3e68102ab6..1d40b587cc 100644 --- a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs +++ b/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs @@ -64,7 +64,7 @@ public override string ToString() internal static class NativeMethods { - [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", EntryPoint = "MddBootstralInitialize", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] + [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", EntryPoint = "MddBootstrapInitialize", CharSet = CharSet.Unicode, ExactSpelling = true, PreserveSig = false)] internal static extern void MddBootstrapInitialize_Throw(uint majorMinorVersion, string versionTag, PackageVersion packageVersion); [DllImport("Microsoft.WindowsAppSDK.Bootstrap.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] From f62351ad687aea5af25344f1c1da3c59ddd9a5ca Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Mon, 30 Aug 2021 13:24:02 -0700 Subject: [PATCH 15/19] Fixed bad merge --- WindowsAppSDK.sln | 2 -- 1 file changed, 2 deletions(-) diff --git a/WindowsAppSDK.sln b/WindowsAppSDK.sln index 3d330ae4ff..aa23524c36 100644 --- a/WindowsAppSDK.sln +++ b/WindowsAppSDK.sln @@ -203,8 +203,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.System.Po EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.System.Projection", "dev\Projections\CS\Microsoft.Windows.System\Microsoft.Windows.System.Projection.csproj", "{AF9E4CCF-5230-4E91-9FC1-3C08161FE768}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.System.Power.Projection", "dev\Projections\CS\Microsoft.Windows.System.Power\Microsoft.Windows.System.Power.Projection.csproj", "{65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}" -EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution test\inc\inc.vcxitems*{0a5fee93-48b7-40ec-bb9a-b27d11060da9}*SharedItemsImports = 4 From 0a9e0140cba1c4eefc4df5ed27c53b344eead0ee Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Mon, 30 Aug 2021 14:44:21 -0700 Subject: [PATCH 16/19] Fixed previous incomplete bad-merge-fix (Gah! VS .sln files are heavily xref'd via GUIDs making updates hard to understand let alone human intervention when merge conflicts arise) --- WindowsAppRuntime.sln | 51 +++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/WindowsAppRuntime.sln b/WindowsAppRuntime.sln index 02901fae50..b7af24ae89 100644 --- a/WindowsAppRuntime.sln +++ b/WindowsAppRuntime.sln @@ -197,11 +197,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bootstrap", "Bootstrap", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CS", "CS", "{536FA8DA-51E2-40A3-8A97-A90FFA75AA18}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.WindowsAppSDK.Bootstrap.Net", "dev\Bootstrap\CS\Microsoft.WindowsAppSDK.Bootstrap.Net\Microsoft.WindowsAppSDK.Bootstrap.Net.csproj", "{D6574FD6-8D13-4412-9FCB-308D44063CDA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.WindowsAppSDK.Bootstrap.Net", "dev\Bootstrap\CS\Microsoft.WindowsAppSDK.Bootstrap.Net\Microsoft.WindowsAppSDK.Bootstrap.Net.csproj", "{D6574FD6-8D13-4412-9FCB-308D44063CDA}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.System.Power.Projection", "dev\Projections\CS\Microsoft.Windows.System.Power\Microsoft.Windows.System.Power.Projection.csproj", "{63ACBA4F-385A-4D04-98AD-263FED501A19}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.System.Projection", "dev\Projections\CS\Microsoft.Windows.System\Microsoft.Windows.System.Projection.csproj", "{AF9E4CCF-5230-4E91-9FC1-3C08161FE768}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.System.Projection", "dev\Projections\CS\Microsoft.Windows.System\Microsoft.Windows.System.Projection.csproj", "{85E9BB46-7841-4732-A039-9C902B71DEC3}" EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution @@ -726,36 +726,20 @@ Global {63ACBA4F-385A-4D04-98AD-263FED501A19}.Release|x64.Build.0 = Release|x64 {63ACBA4F-385A-4D04-98AD-263FED501A19}.Release|x86.ActiveCfg = Release|x86 {63ACBA4F-385A-4D04-98AD-263FED501A19}.Release|x86.Build.0 = Release|x86 - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Debug|ARM64.Build.0 = Debug|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Debug|x64.ActiveCfg = Debug|x64 - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Debug|x64.Build.0 = Debug|x64 - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Debug|x86.ActiveCfg = Debug|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Debug|x86.Build.0 = Debug|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Release|Any CPU.Build.0 = Release|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Release|ARM64.ActiveCfg = Release|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Release|ARM64.Build.0 = Release|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Release|x64.ActiveCfg = Release|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Release|x64.Build.0 = Release|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Release|x86.ActiveCfg = Release|Any CPU - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768}.Release|x86.Build.0 = Release|Any CPU - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Debug|Any CPU.ActiveCfg = Debug|x86 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Debug|ARM64.ActiveCfg = Debug|arm64 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Debug|ARM64.Build.0 = Debug|arm64 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Debug|x64.ActiveCfg = Debug|x64 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Debug|x64.Build.0 = Debug|x64 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Debug|x86.ActiveCfg = Debug|x86 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Debug|x86.Build.0 = Debug|x86 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Release|Any CPU.ActiveCfg = Release|x86 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Release|ARM64.ActiveCfg = Release|arm64 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Release|ARM64.Build.0 = Release|arm64 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Release|x64.ActiveCfg = Release|x64 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Release|x64.Build.0 = Release|x64 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Release|x86.ActiveCfg = Release|x86 - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7}.Release|x86.Build.0 = Release|x86 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Debug|Any CPU.ActiveCfg = Debug|x86 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Debug|ARM64.ActiveCfg = Debug|arm64 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Debug|ARM64.Build.0 = Debug|arm64 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Debug|x64.ActiveCfg = Debug|x64 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Debug|x64.Build.0 = Debug|x64 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Debug|x86.ActiveCfg = Debug|x86 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Debug|x86.Build.0 = Debug|x86 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Release|Any CPU.ActiveCfg = Release|x86 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Release|ARM64.ActiveCfg = Release|arm64 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Release|ARM64.Build.0 = Release|arm64 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Release|x64.ActiveCfg = Release|x64 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Release|x64.Build.0 = Release|x64 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Release|x86.ActiveCfg = Release|x86 + {85E9BB46-7841-4732-A039-9C902B71DEC3}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -823,8 +807,7 @@ Global {536FA8DA-51E2-40A3-8A97-A90FFA75AA18} = {8746775A-899E-49DD-A46C-2FE0899FFFEA} {D6574FD6-8D13-4412-9FCB-308D44063CDA} = {536FA8DA-51E2-40A3-8A97-A90FFA75AA18} {63ACBA4F-385A-4D04-98AD-263FED501A19} = {716C26A0-E6B0-4981-8412-D14A4D410531} - {AF9E4CCF-5230-4E91-9FC1-3C08161FE768} = {716C26A0-E6B0-4981-8412-D14A4D410531} - {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7} = {716C26A0-E6B0-4981-8412-D14A4D410531} + {85E9BB46-7841-4732-A039-9C902B71DEC3} = {716C26A0-E6B0-4981-8412-D14A4D410531} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4B3D7591-CFEC-4762-9A07-ABE99938FB77} From aec9dcb0567c2f97c1e484923c5f95318299414c Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Mon, 30 Aug 2021 14:52:56 -0700 Subject: [PATCH 17/19] More mergy fun --- build/NuSpecs/Microsoft.WindowsAppSDK.Bootstrap.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/NuSpecs/Microsoft.WindowsAppSDK.Bootstrap.targets b/build/NuSpecs/Microsoft.WindowsAppSDK.Bootstrap.targets index e1fff8e3c2..043b25d6f5 100644 --- a/build/NuSpecs/Microsoft.WindowsAppSDK.Bootstrap.targets +++ b/build/NuSpecs/Microsoft.WindowsAppSDK.Bootstrap.targets @@ -8,7 +8,7 @@ - + From 61ca98453c9ab1ddbfe016bedf7c5e11a9279de7 Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Mon, 30 Aug 2021 15:09:27 -0700 Subject: [PATCH 18/19] Update *WindowsAppSDK* to *WindowsAppRuntime* --- WindowsAppRuntime.sln | 2 +- .../Bootstrap.cs | 0 .../Microsoft.WindowsAppRuntime.Bootstrap.Net.csproj} | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename dev/Bootstrap/CS/{Microsoft.WindowsAppSDK.Bootstrap.Net => Microsoft.WindowsAppRuntime.Bootstrap.Net}/Bootstrap.cs (100%) rename dev/Bootstrap/CS/{Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj => Microsoft.WindowsAppRuntime.Bootstrap.Net/Microsoft.WindowsAppRuntime.Bootstrap.Net.csproj} (100%) diff --git a/WindowsAppRuntime.sln b/WindowsAppRuntime.sln index b7af24ae89..47a7eeb1b6 100644 --- a/WindowsAppRuntime.sln +++ b/WindowsAppRuntime.sln @@ -197,7 +197,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bootstrap", "Bootstrap", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CS", "CS", "{536FA8DA-51E2-40A3-8A97-A90FFA75AA18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.WindowsAppSDK.Bootstrap.Net", "dev\Bootstrap\CS\Microsoft.WindowsAppSDK.Bootstrap.Net\Microsoft.WindowsAppSDK.Bootstrap.Net.csproj", "{D6574FD6-8D13-4412-9FCB-308D44063CDA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.WindowsAppRuntime.Bootstrap.Net", "dev\Bootstrap\CS\Microsoft.WindowsAppRuntime.Bootstrap.Net\Microsoft.WindowsAppSDK.Bootstrap.Net.csproj", "{D6574FD6-8D13-4412-9FCB-308D44063CDA}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.System.Power.Projection", "dev\Projections\CS\Microsoft.Windows.System.Power\Microsoft.Windows.System.Power.Projection.csproj", "{63ACBA4F-385A-4D04-98AD-263FED501A19}" EndProject diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs b/dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Bootstrap.cs similarity index 100% rename from dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Bootstrap.cs rename to dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Bootstrap.cs diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj b/dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Microsoft.WindowsAppRuntime.Bootstrap.Net.csproj similarity index 100% rename from dev/Bootstrap/CS/Microsoft.WindowsAppSDK.Bootstrap.Net/Microsoft.WindowsAppSDK.Bootstrap.Net.csproj rename to dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Microsoft.WindowsAppRuntime.Bootstrap.Net.csproj From 6c83057621bf468c40975f843e3df0a8a081f987 Mon Sep 17 00:00:00 2001 From: Howard Kapustein Date: Mon, 30 Aug 2021 17:38:45 -0700 Subject: [PATCH 19/19] Missed one --- WindowsAppRuntime.sln | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WindowsAppRuntime.sln b/WindowsAppRuntime.sln index 47a7eeb1b6..aad3b35738 100644 --- a/WindowsAppRuntime.sln +++ b/WindowsAppRuntime.sln @@ -197,7 +197,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bootstrap", "Bootstrap", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CS", "CS", "{536FA8DA-51E2-40A3-8A97-A90FFA75AA18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.WindowsAppRuntime.Bootstrap.Net", "dev\Bootstrap\CS\Microsoft.WindowsAppRuntime.Bootstrap.Net\Microsoft.WindowsAppSDK.Bootstrap.Net.csproj", "{D6574FD6-8D13-4412-9FCB-308D44063CDA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.WindowsAppRuntime.Bootstrap.Net", "dev\Bootstrap\CS\Microsoft.WindowsAppRuntime.Bootstrap.Net\Microsoft.WindowsAppRuntime.Bootstrap.Net.csproj", "{D6574FD6-8D13-4412-9FCB-308D44063CDA}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.System.Power.Projection", "dev\Projections\CS\Microsoft.Windows.System.Power\Microsoft.Windows.System.Power.Projection.csproj", "{63ACBA4F-385A-4D04-98AD-263FED501A19}" EndProject