diff --git a/WindowsAppRuntime.sln b/WindowsAppRuntime.sln
index 4cd779e6fe..aad3b35738 100644
--- a/WindowsAppRuntime.sln
+++ b/WindowsAppRuntime.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
@@ -191,9 +193,15 @@ 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("{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("{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("{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
-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}"
+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
@@ -208,12 +216,12 @@ 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
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
@@ -637,8 +645,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
@@ -688,36 +696,50 @@ 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
- {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
+ {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
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Debug|ARM64.ActiveCfg = Debug|arm64
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Debug|ARM64.Build.0 = Debug|arm64
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Debug|x64.ActiveCfg = Debug|x64
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Debug|x64.Build.0 = Debug|x64
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Debug|x86.ActiveCfg = Debug|x86
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Debug|x86.Build.0 = Debug|x86
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Release|Any CPU.ActiveCfg = Release|x86
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Release|ARM64.ActiveCfg = Release|arm64
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Release|ARM64.Build.0 = Release|arm64
+ {63ACBA4F-385A-4D04-98AD-263FED501A19}.Release|x64.ActiveCfg = Release|x64
+ {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
+ {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
@@ -730,7 +752,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}
@@ -780,8 +803,11 @@ 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}
- {AF9E4CCF-5230-4E91-9FC1-3C08161FE768} = {716C26A0-E6B0-4981-8412-D14A4D410531}
- {65AAC0BD-ABD2-471F-9C1A-B2F9EF9D3DE7} = {716C26A0-E6B0-4981-8412-D14A4D410531}
+ {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}
+ {63ACBA4F-385A-4D04-98AD-263FED501A19} = {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}
diff --git a/build/CopyFilesToStagingDir.ps1 b/build/CopyFilesToStagingDir.ps1
index 3de80ff7b6..9c705b5a26 100644
--- a/build/CopyFilesToStagingDir.ps1
+++ b/build/CopyFilesToStagingDir.ps1
@@ -57,6 +57,8 @@ PublishFile $FullBuildOutput\DynamicDependencyLifetimeManager.ProxyStub\DynamicD
PublishFile $FullBuildOutput\WindowsAppRuntime_BootstrapDLL\Microsoft.WindowsAppRuntime.Bootstrap.dll $FullPublishDir\Microsoft.WindowsAppRuntime.Bootstrap\
PublishFile $FullBuildOutput\WindowsAppRuntime_BootstrapDLL\Microsoft.WindowsAppRuntime.Bootstrap.lib $FullPublishDir\Microsoft.WindowsAppRuntime.Bootstrap\
PublishFile $FullBuildOutput\WindowsAppRuntime_BootstrapDLL\MddBootstrap.h $FullPublishDir\Microsoft.WindowsAppRuntime.Bootstrap\
+PublishFile $FullBuildOutput\Microsoft.WindowsAppRuntime.Bootstrap.Net\Microsoft.WindowsAppRuntime.Bootstrap.Net.dll $FullPublishDir\Microsoft.WindowsAppRuntime.Bootstrap\
+PublishFile $FullBuildOutput\Microsoft.WindowsAppRuntime.Bootstrap.Net\Microsoft.WindowsAppRuntime.Bootstrap.Net.pdb $FullPublishDir\Microsoft.WindowsAppRuntime.Bootstrap\
PublishFile -IfExists $FullBuildOutput\FrameworkPackage\*.* $FullPublishDir\FrameworkPackage
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 @@
-
+
diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Bootstrap.cs b/dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Bootstrap.cs
new file mode 100644
index 0000000000..1d40b587cc
--- /dev/null
+++ b/dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Bootstrap.cs
@@ -0,0 +1,208 @@
+// 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 = "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)]
+ 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.
+ 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);
+ }
+
+ /// 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 `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).
+ /// @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 bool TryInitialize(uint majorMinorVersion, out int hresult)
+ {
+ 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 `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".
+ /// @retval true if successful, otherwise false is returned.
+ /// @see TryInitialize(uint, out int)
+ /// @see TryInitialize(uint, string, PackageVersion, out int)
+ /// @see Shutdown()
+ public static bool TryInitialize(uint majorMinorVersion, string versionTag, out int hresult)
+ {
+ var minVersion = new PackageVersion();
+ 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
+ /// 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.
+ /// @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 bool TryInitialize(uint majorMinorVersion, string versionTag, PackageVersion minVersion, out int hresult)
+ {
+ hresult = NativeMethods.MddBootstrapInitialize(majorMinorVersion, versionTag, minVersion);
+ return hresult >= 0;
+ }
+
+ /// 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)
+ /// @see TryInitialize(uint, out int)
+ /// @see TryInitialize(uint, string, out int)
+ /// @see TryInitialize(uint, string, PackageVersion, out int)
+ public static void Shutdown()
+ {
+ NativeMethods.MddBootstrapShutdown();
+ }
+ }
+}
diff --git a/dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Microsoft.WindowsAppRuntime.Bootstrap.Net.csproj b/dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Microsoft.WindowsAppRuntime.Bootstrap.Net.csproj
new file mode 100644
index 0000000000..539b132d5f
--- /dev/null
+++ b/dev/Bootstrap/CS/Microsoft.WindowsAppRuntime.Bootstrap.Net/Microsoft.WindowsAppRuntime.Bootstrap.Net.csproj
@@ -0,0 +1,26 @@
+
+
+
+ net5.0
+ net5.0-windows10.0.19041.0
+ 10.0.17763.0
+ x86;x64;arm64
+
+
+
+ false
+
+
+
+ false
+
+
+
+ false
+
+
+
+ false
+
+
+
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 99%
rename from dev/DynamicDependency/MsixDynamicDependency.cpp
rename to dev/DynamicDependency/API/MsixDynamicDependency.cpp
index aa33706ef6..766771dd07 100644
--- a/dev/DynamicDependency/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/MsixDynamicDependency.h b/dev/DynamicDependency/API/MsixDynamicDependency.h
similarity index 99%
rename from dev/DynamicDependency/MsixDynamicDependency.h
rename to dev/DynamicDependency/API/MsixDynamicDependency.h
index ff392eea71..a2088c7b44 100644
--- a/dev/DynamicDependency/MsixDynamicDependency.h
+++ b/dev/DynamicDependency/API/MsixDynamicDependency.h
@@ -191,7 +191,7 @@ STDAPI MddGetIdForPackageDependencyContext(
#if defined(WINDOWSAPPRUNTIME_MICROSOFT_WINDOWS_APPLICATIONMODEL_DYNAMICDEPENDENCY_FEATURE_GENERATIONID_ENABLED) && (WINDOWSAPPRUNTIME_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
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/WindowsAppRuntime_DLL/WindowsAppRuntime_DLL.vcxproj b/dev/WindowsAppRuntime_DLL/WindowsAppRuntime_DLL.vcxproj
index 20a9d2422e..807846af5d 100644
--- a/dev/WindowsAppRuntime_DLL/WindowsAppRuntime_DLL.vcxproj
+++ b/dev/WindowsAppRuntime_DLL/WindowsAppRuntime_DLL.vcxproj
@@ -108,7 +108,7 @@
-
+