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 @@ - +