From 03ec0bc56f55d61d8f7412b8234c65dc7eed66e2 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Mon, 9 May 2022 15:50:20 -0700 Subject: [PATCH 1/8] Port of cswinmd --- .../WinRT.SourceGenerator/Generator.cs | 6 +- src/Authoring/WinRT.SourceGenerator/Helper.cs | 10 ++ .../WinRT.SourceGenerator/WinRTTypeWriter.cs | 67 +++++++- src/Authoring/cswinmd/CsWinMD.csproj | 19 +++ src/Authoring/cswinmd/Program.cs | 140 +++++++++++++++ src/Authoring/cswinmd/build/cswinmd.targets | 21 +++ src/Tests/CppComponent/Class1.cpp | 12 ++ src/Tests/CppComponent/Class1.h | 21 +++ src/Tests/CppComponent/CppComponent.cs | 31 ++++ src/Tests/CppComponent/CppComponent.def | 3 + src/Tests/CppComponent/CppComponent.vcxproj | 159 ++++++++++++++++++ .../CppComponent/CppComponent.vcxproj.filters | 32 ++++ src/Tests/CppComponent/PropertySheet.props | 16 ++ src/Tests/CppComponent/packages.config | 4 + src/Tests/CppComponent/pch.cpp | 1 + src/Tests/CppComponent/pch.h | 4 + src/cswinrt.sln | 120 +++++++++++++ 17 files changed, 664 insertions(+), 2 deletions(-) create mode 100644 src/Authoring/cswinmd/CsWinMD.csproj create mode 100644 src/Authoring/cswinmd/Program.cs create mode 100644 src/Authoring/cswinmd/build/cswinmd.targets create mode 100644 src/Tests/CppComponent/Class1.cpp create mode 100644 src/Tests/CppComponent/Class1.h create mode 100644 src/Tests/CppComponent/CppComponent.cs create mode 100644 src/Tests/CppComponent/CppComponent.def create mode 100644 src/Tests/CppComponent/CppComponent.vcxproj create mode 100644 src/Tests/CppComponent/CppComponent.vcxproj.filters create mode 100644 src/Tests/CppComponent/PropertySheet.props create mode 100644 src/Tests/CppComponent/packages.config create mode 100644 src/Tests/CppComponent/pch.cpp create mode 100644 src/Tests/CppComponent/pch.h diff --git a/src/Authoring/WinRT.SourceGenerator/Generator.cs b/src/Authoring/WinRT.SourceGenerator/Generator.cs index 545dca329..058a1d8ad 100644 --- a/src/Authoring/WinRT.SourceGenerator/Generator.cs +++ b/src/Authoring/WinRT.SourceGenerator/Generator.cs @@ -180,7 +180,10 @@ public void Generate() writer.FinalizeGeneration(); GenerateWinMD(metadataBuilder); - GenerateSources(); + if (!context.ShouldSkipGeneratingSources()) + { + GenerateSources(); + } } catch (Exception e) { @@ -206,6 +209,7 @@ public void Execute(GeneratorExecutionContext context) var isTest = string.CompareOrdinal(Process.GetCurrentProcess().ProcessName, "testhost") == 0; if (!isTest && !context.IsCsWinRTComponent()) { + System.Diagnostics.Debug.WriteLine($"Skipping component {context.GetAssemblyName()}"); return; } diff --git a/src/Authoring/WinRT.SourceGenerator/Helper.cs b/src/Authoring/WinRT.SourceGenerator/Helper.cs index 7417b271c..e839ff0f0 100644 --- a/src/Authoring/WinRT.SourceGenerator/Helper.cs +++ b/src/Authoring/WinRT.SourceGenerator/Helper.cs @@ -78,6 +78,16 @@ public static bool IsCsWinRTComponent(this GeneratorExecutionContext context) return false; } + public static bool ShouldSkipGeneratingSources(this GeneratorExecutionContext context) + { + if (context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.CSWinMD", out var isCsWinMDStr)) + { + return bool.TryParse(isCsWinMDStr, out var isCsWinMD) && isCsWinMD; + } + + return false; + } + public static string GetCsWinRTExe(this GeneratorExecutionContext context) { context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.CsWinRTExe", out var cswinrtExe); diff --git a/src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs b/src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs index a9cb428f3..0220a167f 100644 --- a/src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs +++ b/src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs @@ -1522,6 +1522,11 @@ private void EncodeFixedArguments(IList primitiveArguments, FixedArgumen { encoder.SystemType(type); } + else if (argument is INamedTypeSymbol namedTypeSymbol) + { + var typeEntity = GetTypeReference(namedTypeSymbol); + encoder.Builder.WriteReference(CodedIndex.TypeDefOrRef(typeEntity), false); + } else { encoder.Constant(argument); @@ -1713,7 +1718,9 @@ private void AddCustomAttributes( Logger.Log("# constructor found: " + attributeType.Constructors.Length); var matchingConstructor = attributeType.Constructors.Where(constructor => constructor.Parameters.Length == primitiveValues.Count && - constructor.Parameters.Select(param => param.Type).SequenceEqual(primitiveTypes)); + constructor.Parameters.Select(param => (param.Type is IErrorTypeSymbol) ? + Model.Compilation.GetTypeByMetadataName(param.Type.ToDisplayString()) : param.Type) + .SequenceEqual(primitiveTypes)); Logger.Log("# matching constructor found: " + matchingConstructor.Count()); Logger.Log("matching constructor found: " + matchingConstructor.First()); @@ -2578,12 +2585,22 @@ void AddCustomAttributes(TypeDeclaration typeDeclaration, string interfaceName = } } + public static string XmlDocCustomAttributeTypeName { get; set; } = "CppComponent.DocStringAttribute"; + public void FinalizeGeneration() { Logger.Log("finalizing"); var classTypeDeclarations = typeDefinitionMapping.Values .Where(declaration => declaration.Node is INamedTypeSymbol symbol && symbol.TypeKind == TypeKind.Class) .ToList(); + + + var xmlDocCustomAttributeType = Model.Compilation.GetTypeByMetadataName(XmlDocCustomAttributeTypeName); + if (xmlDocCustomAttributeType != null) + { + GenerateXmlDocCustomAttributes(); + } + foreach (var classTypeDeclaration in classTypeDeclarations) { INamedTypeSymbol classSymbol = classTypeDeclaration.Node as INamedTypeSymbol; @@ -2728,6 +2745,54 @@ public void FinalizeGeneration() } } + private void GenerateXmlDocCustomAttributes() + { + throw new NotSupportedException(); + var xdcTypes = typeDefinitionMapping.Values.Where(d => d.Node is INamedTypeSymbol); + foreach (var type in xdcTypes) + { + AddXmlDocumentation(type); + + foreach (var methodDefs in type.MethodReferences) + { + var xdc = methodDefs.Key.GetDocumentationCommentXml(); + if (!string.IsNullOrEmpty(xdc)) + { + foreach (var eh in methodDefs.Value) + { + AddCustomAttributes(XmlDocCustomAttributeTypeName, + new[] { Model.Compilation.GetSpecialType(SpecialType.System_String) }, + new[] { xdc }, + eh); + } + } + } + foreach (var fieldDef in type.FieldDefinitions) + { + var xdc = fieldDef.Key.GetDocumentationCommentXml(); + if (!string.IsNullOrEmpty(xdc)) + { + AddCustomAttributes(XmlDocCustomAttributeTypeName, + new[] { Model.Compilation.GetSpecialType(SpecialType.System_String) }, + new[] { xdc }, + fieldDef.Value); + } + } + } + } + + private void AddXmlDocumentation(TypeDeclaration classTypeDeclaration) + { + var xdc = classTypeDeclaration.Node.GetDocumentationCommentXml(); + if (!string.IsNullOrEmpty(xdc)) + { + AddCustomAttributes(XmlDocCustomAttributeTypeName, + new[] { Model.Compilation.GetSpecialType(SpecialType.System_String) }, + new[] { xdc }, + classTypeDeclaration.Handle); + } + } + public bool IsPublic(ISymbol type) { return type.DeclaredAccessibility == Accessibility.Public || diff --git a/src/Authoring/cswinmd/CsWinMD.csproj b/src/Authoring/cswinmd/CsWinMD.csproj new file mode 100644 index 000000000..c879183d2 --- /dev/null +++ b/src/Authoring/cswinmd/CsWinMD.csproj @@ -0,0 +1,19 @@ + + + + Exe + net5.0 + + + + + + + + + + + + + + diff --git a/src/Authoring/cswinmd/Program.cs b/src/Authoring/cswinmd/Program.cs new file mode 100644 index 000000000..3af351724 --- /dev/null +++ b/src/Authoring/cswinmd/Program.cs @@ -0,0 +1,140 @@ +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Diagnostics; +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Linq; +using System.Reflection; + +namespace Generator +{ + class ConfigOptions : AnalyzerConfigOptions + { + public Dictionary Values { get; set; } = new(); + public override bool TryGetValue(string key, [NotNullWhen(true)] out string value) + { + return Values.TryGetValue(key, out value); + } + } + class ConfigProvider : AnalyzerConfigOptionsProvider + { + public override AnalyzerConfigOptions GlobalOptions { get; } = new ConfigOptions(); + + public override AnalyzerConfigOptions GetOptions(SyntaxTree tree) + { + return GlobalOptions; + } + + public override AnalyzerConfigOptions GetOptions(AdditionalText textFile) + { + return GlobalOptions; + } + } + class Program + { + /// + /// CSWinMD - Compile C# definitions to WinMD + /// + /// Input WinMD path + /// Output directory + /// Optional sdk version + /// Uses System.CommandLine.Dragonfruit + public static void Main(string[] i, string o, string? sdkVersion) + { + if (i.Length == 0) + { + Console.Error.WriteLine("No C# source files specified"); + return; + } + + string inputFile = i[0]; + + Console.Write($"Compiling {inputFile}"); + + string inputText = File.ReadAllText(inputFile); + + string componentName = Path.GetFileNameWithoutExtension(inputFile); + + var assemblyName = componentName; + + var windows_winmd = GetWindowsWinMdPath(sdkVersion); + var compilation = CSharpCompilation.Create( + assemblyName: componentName, + syntaxTrees: new[] { CSharpSyntaxTree.ParseText(inputText, new CSharpParseOptions(LanguageVersion.Preview), inputFile) }, + references: new[] { MetadataReference.CreateFromFile(windows_winmd), + MetadataReference.CreateFromFile(typeof(Binder).Assembly.Location) + }, + options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) + ); + + var g = new SourceGenerator(); + var outFolder = string.IsNullOrEmpty(o) ? Environment.GetEnvironmentVariable("TEMP") : o; + if (!Directory.Exists(outFolder)) + { + Directory.CreateDirectory(outFolder); + } + try + { + var cp = new ConfigProvider(); + var config = cp.GlobalOptions as ConfigOptions; + config.Values["build_property.AssemblyName"] = assemblyName; + config.Values["build_property.AssemblyVersion"] = "0.0.0.1"; + config.Values["build_property.CsWinRTGeneratedFilesDir"] = outFolder; + config.Values["build_property.CsWinRTComponent"] = "true"; + config.Values["build_property.CsWinRTEnableLogging"] = "true"; + config.Values["build_property.CSWinMD"] = "true"; + + var driver = CSharpGeneratorDriver.Create( + generators: ImmutableArray.Create(g), + additionalTexts: ImmutableArray.Empty, + parseOptions: (CSharpParseOptions)compilation.SyntaxTrees.First().Options, + optionsProvider: cp + ); + + var d = driver.RunGenerators(compilation); + + var res = d.GetRunResult(); + if (!res.Diagnostics.IsEmpty) + { + foreach (var v in res.Diagnostics) + { + Console.WriteLine(v.GetMessage()); + Console.WriteLine($"\t\tIn {v.Location.GetLineSpan()}"); + } + Console.WriteLine(); + } + } + catch (Exception e) + { + Console.WriteLine(File.ReadAllText(Path.Join(outFolder, "log.txt"))); + } + } + + private static bool IsVersion(string v) + { + return Version.TryParse(Path.GetFileName(v), out var _); + } + private static string GetWindowsWinMdPath(string? sdkVersion) + { + using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)) + { + using (var roots = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows Kits\Installed Roots")) + { + var kitsRoot10 = (string)roots.GetValue("KitsRoot10"); + var unionMetadata = Path.Combine(kitsRoot10, "UnionMetadata"); + if (sdkVersion == null) { + var dirs = Directory.EnumerateDirectories(unionMetadata); + sdkVersion = Path.GetFileName(dirs.Where(IsVersion).Last()); + } + var path = Path.Combine(kitsRoot10, "UnionMetadata", sdkVersion, "Windows.winmd"); + return path; + } + } + throw new ArgumentException("Could not determine Windows.winmd path in the Windows SDK"); + } + } +} \ No newline at end of file diff --git a/src/Authoring/cswinmd/build/cswinmd.targets b/src/Authoring/cswinmd/build/cswinmd.targets new file mode 100644 index 000000000..76c87137d --- /dev/null +++ b/src/Authoring/cswinmd/build/cswinmd.targets @@ -0,0 +1,21 @@ + + + + + $(MSBuildThisFileDirectory)..\tools\CsWinMD.exe + $(OutDir)cswinmd-$(ProjectName) + + + + + + + + + + + true + + + + \ No newline at end of file diff --git a/src/Tests/CppComponent/Class1.cpp b/src/Tests/CppComponent/Class1.cpp new file mode 100644 index 000000000..1970ac532 --- /dev/null +++ b/src/Tests/CppComponent/Class1.cpp @@ -0,0 +1,12 @@ +#pragma once +#include "pch.h" + +#include + +#include "Class1.h" +#include + +namespace winrt::CppComponent::implementation +{ + +} \ No newline at end of file diff --git a/src/Tests/CppComponent/Class1.h b/src/Tests/CppComponent/Class1.h new file mode 100644 index 000000000..25098e148 --- /dev/null +++ b/src/Tests/CppComponent/Class1.h @@ -0,0 +1,21 @@ +#pragma once +#include "Class1.g.h" +#include + +namespace winrt::CppComponent::implementation +{ + struct Class1 : Class1T + { + Class1() = default; + + void f(int32_t x, E1 y) { + std::cout << "Called Class1::f with x = " << x << ", y = " << static_cast(y) << "\n"; + } + }; +} +namespace winrt::CppComponent::factory_implementation +{ + struct Class1 : Class1T + { + }; +} diff --git a/src/Tests/CppComponent/CppComponent.cs b/src/Tests/CppComponent/CppComponent.cs new file mode 100644 index 000000000..cd0010a14 --- /dev/null +++ b/src/Tests/CppComponent/CppComponent.cs @@ -0,0 +1,31 @@ +namespace CppComponent +{ + public enum E1 + { + V1=42, + V2=99, + } + + public interface Interface1 + { + void Gloop(); + + string TheString { get; } + } + + /// + /// + /// + public struct S + { + public string Field; + } + + public sealed class Class1 + { + public Class1(); + + public void f(int x, E1 y); + } + +} \ No newline at end of file diff --git a/src/Tests/CppComponent/CppComponent.def b/src/Tests/CppComponent/CppComponent.def new file mode 100644 index 000000000..24e7c1235 --- /dev/null +++ b/src/Tests/CppComponent/CppComponent.def @@ -0,0 +1,3 @@ +EXPORTS +DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE +DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE diff --git a/src/Tests/CppComponent/CppComponent.vcxproj b/src/Tests/CppComponent/CppComponent.vcxproj new file mode 100644 index 000000000..492864165 --- /dev/null +++ b/src/Tests/CppComponent/CppComponent.vcxproj @@ -0,0 +1,159 @@ + + + + + true + true + true + true + {d10dc47a-db45-491c-852e-2b2165f25f86} + CppComponent + CppComponent + en-US + 14.0 + true + Windows Store + 10.0 + 10.0.19041.0 + 10.0.17134.0 + + + + + Debug + ARM + + + Debug + ARM64 + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + DynamicLibrary + v142 + v141 + v140 + Unicode + false + + + true + true + + + false + true + false + + + + + + + + + + + + + + + + + Use + pch.h + $(IntDir)pch.pch + Level4 + %(AdditionalOptions) /bigobj + + /DWINRT_NO_MAKE_DETECTION %(AdditionalOptions) + _WINRT_DLL;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions) + $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) + + + Console + false + CppComponent.def + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + NDEBUG;%(PreprocessorDefinitions) + + + true + true + + + + + + + + + + Create + + + + + + + + + + + + false + + + + + + + + ..\..\Authoring\cswinmd\bin\$(Configuration)\net5.0\CsWinMD.exe + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + \ No newline at end of file diff --git a/src/Tests/CppComponent/CppComponent.vcxproj.filters b/src/Tests/CppComponent/CppComponent.vcxproj.filters new file mode 100644 index 000000000..17d88ee1b --- /dev/null +++ b/src/Tests/CppComponent/CppComponent.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + accd3aa8-1ba0-4223-9bbe-0c431709210b + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms + + + {926ab91d-31b4-48c3-b9a4-e681349f27f0} + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Tests/CppComponent/PropertySheet.props b/src/Tests/CppComponent/PropertySheet.props new file mode 100644 index 000000000..e34141b01 --- /dev/null +++ b/src/Tests/CppComponent/PropertySheet.props @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/src/Tests/CppComponent/packages.config b/src/Tests/CppComponent/packages.config new file mode 100644 index 000000000..43182aa87 --- /dev/null +++ b/src/Tests/CppComponent/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/Tests/CppComponent/pch.cpp b/src/Tests/CppComponent/pch.cpp new file mode 100644 index 000000000..bcb5590be --- /dev/null +++ b/src/Tests/CppComponent/pch.cpp @@ -0,0 +1 @@ +#include "pch.h" diff --git a/src/Tests/CppComponent/pch.h b/src/Tests/CppComponent/pch.h new file mode 100644 index 000000000..21199686d --- /dev/null +++ b/src/Tests/CppComponent/pch.h @@ -0,0 +1,4 @@ +#pragma once +#include +#include +#include diff --git a/src/cswinrt.sln b/src/cswinrt.sln index 0e3742628..f7a4db369 100644 --- a/src/cswinrt.sln +++ b/src/cswinrt.sln @@ -125,42 +125,53 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_component_fast", "Test EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OOPExe", "Tests\OOPExe\OOPExe.csproj", "{8DB50E24-9599-4890-939D-C87C1EC5DDAD}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CsWinMD", "Authoring\CsWinMD\CsWinMD.csproj", "{B63DC238-AF5B-4790-B038-4F5ABE09F963}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppComponent", "Tests\CppComponent\CppComponent.vcxproj", "{D10DC47A-DB45-491C-852E-2B2165F25F86}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU Debug|ARM = Debug|ARM Debug|ARM64 = Debug|ARM64 Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU Release|ARM = Release|ARM Release|ARM64 = Release|ARM64 Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|Any CPU.ActiveCfg = Debug|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|ARM.ActiveCfg = Debug|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|ARM64.ActiveCfg = Debug|ARM64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x64.ActiveCfg = Debug|x64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x64.Build.0 = Debug|x64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x86.ActiveCfg = Debug|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x86.Build.0 = Debug|Win32 + {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|Any CPU.ActiveCfg = Release|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|ARM.ActiveCfg = Release|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|ARM64.ActiveCfg = Release|ARM64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x64.ActiveCfg = Release|x64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x64.Build.0 = Release|x64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x86.ActiveCfg = Release|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x86.Build.0 = Release|Win32 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|Any CPU.ActiveCfg = Debug|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM.ActiveCfg = Debug|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM64.ActiveCfg = Debug|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x64.ActiveCfg = Debug|x64 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x64.Build.0 = Debug|x64 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x86.ActiveCfg = Debug|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x86.Build.0 = Debug|x86 + {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|Any CPU.ActiveCfg = Release|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM.ActiveCfg = Release|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM64.ActiveCfg = Release|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x64.ActiveCfg = Release|x64 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x64.Build.0 = Release|x64 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x86.ActiveCfg = Release|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x86.Build.0 = Release|x86 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|Any CPU.ActiveCfg = Debug|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM.ActiveCfg = Debug|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM64.ActiveCfg = Debug|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM64.Build.0 = Debug|Win32 @@ -168,6 +179,7 @@ Global {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x64.Build.0 = Debug|x64 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x86.ActiveCfg = Debug|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x86.Build.0 = Debug|Win32 + {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|Any CPU.ActiveCfg = Release|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM.ActiveCfg = Release|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM64.ActiveCfg = Release|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM64.Build.0 = Release|Win32 @@ -175,6 +187,7 @@ Global {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x64.Build.0 = Release|x64 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x86.ActiveCfg = Release|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x86.Build.0 = Release|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|Any CPU.ActiveCfg = Debug|Win32 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM.ActiveCfg = Debug|ARM {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM.Build.0 = Debug|ARM {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -182,6 +195,7 @@ Global {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x64.Build.0 = Debug|x64 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x86.ActiveCfg = Debug|Win32 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x86.Build.0 = Debug|Win32 + {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|Any CPU.ActiveCfg = Release|Win32 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM.ActiveCfg = Release|ARM {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM.Build.0 = Release|ARM {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM64.ActiveCfg = Release|Win32 @@ -189,6 +203,8 @@ Global {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x64.Build.0 = Release|x64 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x86.ActiveCfg = Release|Win32 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x86.Build.0 = Release|Win32 + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|Any CPU.Build.0 = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM.ActiveCfg = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM.Build.0 = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -197,6 +213,8 @@ Global {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x64.Build.0 = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x86.ActiveCfg = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x86.Build.0 = Debug|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25244CED-966E-45F2-9711-1F51E951FF89}.Release|Any CPU.Build.0 = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM.ActiveCfg = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM.Build.0 = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -205,29 +223,34 @@ Global {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x64.Build.0 = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x86.ActiveCfg = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x86.Build.0 = Release|Any CPU + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|Any CPU.ActiveCfg = Debug|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|ARM.ActiveCfg = Debug|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|ARM64.ActiveCfg = Debug|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x64.ActiveCfg = Debug|x64 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x64.Build.0 = Debug|x64 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x86.ActiveCfg = Debug|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x86.Build.0 = Debug|x86 + {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|Any CPU.ActiveCfg = Release|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|ARM.ActiveCfg = Release|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|ARM64.ActiveCfg = Release|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x64.ActiveCfg = Release|x64 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x86.ActiveCfg = Release|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x86.Build.0 = Release|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|Any CPU.ActiveCfg = Debug|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|ARM.ActiveCfg = Debug|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|ARM64.ActiveCfg = Debug|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x64.ActiveCfg = Debug|x64 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x64.Build.0 = Debug|x64 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x86.ActiveCfg = Debug|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x86.Build.0 = Debug|x86 + {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|Any CPU.ActiveCfg = Release|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|ARM.ActiveCfg = Release|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|ARM64.ActiveCfg = Release|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x64.ActiveCfg = Release|x64 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x64.Build.0 = Release|x64 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x86.ActiveCfg = Release|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x86.Build.0 = Release|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|Any CPU.ActiveCfg = Debug|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM.ActiveCfg = Debug|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM64.ActiveCfg = Debug|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM64.Build.0 = Debug|x86 @@ -235,6 +258,7 @@ Global {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x64.Build.0 = Debug|x64 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x86.ActiveCfg = Debug|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x86.Build.0 = Debug|x86 + {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|Any CPU.ActiveCfg = Release|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM.ActiveCfg = Release|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM64.ActiveCfg = Release|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM64.Build.0 = Release|x86 @@ -242,28 +266,33 @@ Global {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x64.Build.0 = Release|x64 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x86.ActiveCfg = Release|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x86.Build.0 = Release|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|Any CPU.ActiveCfg = Debug|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|ARM.ActiveCfg = Debug|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|ARM64.ActiveCfg = Debug|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x64.ActiveCfg = Debug|x64 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x64.Build.0 = Debug|x64 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x86.ActiveCfg = Debug|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x86.Build.0 = Debug|x86 + {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|Any CPU.ActiveCfg = Release|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|ARM.ActiveCfg = Release|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|ARM64.ActiveCfg = Release|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x64.ActiveCfg = Release|x64 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x64.Build.0 = Release|x64 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x86.ActiveCfg = Release|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x86.Build.0 = Release|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|Any CPU.ActiveCfg = Debug|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|ARM.ActiveCfg = Debug|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|ARM64.ActiveCfg = Debug|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x64.ActiveCfg = Debug|x64 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x64.Build.0 = Debug|x64 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x86.ActiveCfg = Debug|x86 + {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|Any CPU.ActiveCfg = Release|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|ARM.ActiveCfg = Release|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|ARM64.ActiveCfg = Release|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x64.ActiveCfg = Release|x64 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x64.Build.0 = Release|x64 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x86.ActiveCfg = Release|x86 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|Any CPU.ActiveCfg = Debug|Win32 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM.ActiveCfg = Debug|ARM {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM.Build.0 = Debug|ARM {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -271,6 +300,7 @@ Global {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x64.Build.0 = Debug|x64 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x86.ActiveCfg = Debug|Win32 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x86.Build.0 = Debug|Win32 + {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|Any CPU.ActiveCfg = Release|Win32 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM.ActiveCfg = Release|ARM {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM.Build.0 = Release|ARM {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM64.ActiveCfg = Release|Win32 @@ -278,18 +308,21 @@ Global {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x64.Build.0 = Release|x64 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x86.ActiveCfg = Release|Win32 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x86.Build.0 = Release|Win32 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|Any CPU.ActiveCfg = Debug|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|ARM.ActiveCfg = Debug|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|ARM64.ActiveCfg = Debug|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x64.ActiveCfg = Debug|x64 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x64.Build.0 = Debug|x64 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x86.ActiveCfg = Debug|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x86.Build.0 = Debug|x86 + {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|Any CPU.ActiveCfg = Release|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|ARM.ActiveCfg = Release|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|ARM64.ActiveCfg = Release|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x64.ActiveCfg = Release|x64 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x64.Build.0 = Release|x64 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x86.ActiveCfg = Release|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x86.Build.0 = Release|x86 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|Any CPU.ActiveCfg = Debug|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM.ActiveCfg = Debug|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM64.Build.0 = Debug|ARM64 @@ -297,6 +330,7 @@ Global {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x64.Build.0 = Debug|x64 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x86.ActiveCfg = Debug|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x86.Build.0 = Debug|Win32 + {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|Any CPU.ActiveCfg = Release|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM.ActiveCfg = Release|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM64.ActiveCfg = Release|ARM64 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM64.Build.0 = Release|ARM64 @@ -304,18 +338,22 @@ Global {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x64.Build.0 = Release|x64 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x86.ActiveCfg = Release|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x86.Build.0 = Release|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|Any CPU.ActiveCfg = Debug|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|ARM.ActiveCfg = Debug|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|ARM64.ActiveCfg = Debug|ARM64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x64.ActiveCfg = Debug|x64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x64.Build.0 = Debug|x64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x86.ActiveCfg = Debug|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x86.Build.0 = Debug|Win32 + {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|Any CPU.ActiveCfg = Release|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|ARM.ActiveCfg = Release|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|ARM64.ActiveCfg = Release|ARM64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x64.ActiveCfg = Release|x64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x64.Build.0 = Release|x64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x86.ActiveCfg = Release|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x86.Build.0 = Release|Win32 + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|Any CPU.Build.0 = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM.ActiveCfg = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM.Build.0 = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -324,6 +362,8 @@ Global {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x64.Build.0 = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x86.ActiveCfg = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x86.Build.0 = Debug|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|Any CPU.Build.0 = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM.ActiveCfg = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM.Build.0 = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -332,18 +372,22 @@ Global {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x64.Build.0 = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x86.ActiveCfg = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x86.Build.0 = Release|Any CPU + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|Any CPU.ActiveCfg = Debug|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|ARM.ActiveCfg = Debug|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|ARM64.ActiveCfg = Debug|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x64.ActiveCfg = Debug|x64 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x64.Build.0 = Debug|x64 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x86.ActiveCfg = Debug|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x86.Build.0 = Debug|x86 + {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|Any CPU.ActiveCfg = Release|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|ARM.ActiveCfg = Release|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|ARM64.ActiveCfg = Release|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x64.ActiveCfg = Release|x64 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x64.Build.0 = Release|x64 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x86.ActiveCfg = Release|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x86.Build.0 = Release|x86 + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM.ActiveCfg = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM.Build.0 = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -352,6 +396,8 @@ Global {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x64.Build.0 = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x86.ActiveCfg = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x86.Build.0 = Debug|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|Any CPU.Build.0 = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM.ActiveCfg = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM.Build.0 = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -360,29 +406,34 @@ Global {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x64.Build.0 = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x86.ActiveCfg = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x86.Build.0 = Release|Any CPU + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|Any CPU.ActiveCfg = Debug|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM.ActiveCfg = Debug|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM64.ActiveCfg = Debug|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x64.ActiveCfg = Debug|x64 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x64.Build.0 = Debug|x64 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x86.ActiveCfg = Debug|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x86.Build.0 = Debug|x86 + {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|Any CPU.ActiveCfg = Release|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM.ActiveCfg = Release|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM64.ActiveCfg = Release|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x64.ActiveCfg = Release|x64 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x64.Build.0 = Release|x64 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x86.ActiveCfg = Release|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x86.Build.0 = Release|x86 + {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|Any CPU.ActiveCfg = Debug|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|ARM.ActiveCfg = Debug|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|ARM64.ActiveCfg = Debug|ARM64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|x64.ActiveCfg = Debug|x64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|x86.ActiveCfg = Debug|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|x86.Build.0 = Debug|Win32 + {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|Any CPU.ActiveCfg = Release|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|ARM.ActiveCfg = Release|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|ARM64.ActiveCfg = Release|ARM64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|x64.ActiveCfg = Release|x64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|x64.Build.0 = Release|x64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|x86.ActiveCfg = Release|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|x86.Build.0 = Release|Win32 + {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|Any CPU.ActiveCfg = Debug|Win32 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM.ActiveCfg = Debug|ARM {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM.Build.0 = Debug|ARM {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -390,6 +441,7 @@ Global {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x64.Build.0 = Debug|x64 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x86.ActiveCfg = Debug|Win32 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x86.Build.0 = Debug|Win32 + {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|Any CPU.ActiveCfg = Release|Win32 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM.ActiveCfg = Release|ARM {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM.Build.0 = Release|ARM {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM64.ActiveCfg = Release|Win32 @@ -397,6 +449,7 @@ Global {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x64.Build.0 = Release|x64 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x86.ActiveCfg = Release|Win32 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x86.Build.0 = Release|Win32 + {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|Any CPU.ActiveCfg = Debug|Win32 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM.ActiveCfg = Debug|ARM {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM.Build.0 = Debug|ARM {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -404,6 +457,7 @@ Global {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x64.Build.0 = Debug|x64 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x86.ActiveCfg = Debug|Win32 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x86.Build.0 = Debug|Win32 + {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|Any CPU.ActiveCfg = Release|Win32 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM.ActiveCfg = Release|ARM {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM.Build.0 = Release|ARM {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM64.ActiveCfg = Release|Win32 @@ -411,6 +465,8 @@ Global {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x64.Build.0 = Release|x64 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x86.ActiveCfg = Release|Win32 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x86.Build.0 = Release|Win32 + {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|Any CPU.Build.0 = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|ARM.ActiveCfg = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|ARM.Build.0 = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -418,6 +474,8 @@ Global {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|x64.Build.0 = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|x86.ActiveCfg = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|x86.Build.0 = Debug|Any CPU + {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|Any CPU.Build.0 = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|ARM.ActiveCfg = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|ARM.Build.0 = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -425,6 +483,7 @@ Global {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|x64.Build.0 = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|x86.ActiveCfg = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|x86.Build.0 = Release|Any CPU + {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|Any CPU.ActiveCfg = Debug|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|ARM.ActiveCfg = Debug|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|ARM64.ActiveCfg = Debug|arm64 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|x64.ActiveCfg = Debug|x64 @@ -432,6 +491,7 @@ Global {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|x86.ActiveCfg = Debug|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|x86.Build.0 = Debug|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|x86.Deploy.0 = Debug|x86 + {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|Any CPU.ActiveCfg = Release|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|ARM.ActiveCfg = Release|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|ARM64.ActiveCfg = Release|arm64 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|x64.ActiveCfg = Release|x64 @@ -440,29 +500,35 @@ Global {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|x86.ActiveCfg = Release|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|x86.Build.0 = Release|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|x86.Deploy.0 = Release|x86 + {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|Any CPU.ActiveCfg = Debug|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|ARM.ActiveCfg = Debug|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|ARM64.ActiveCfg = Debug|arm64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|x64.ActiveCfg = Debug|x64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|x86.ActiveCfg = Debug|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|x86.Build.0 = Debug|Win32 + {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|Any CPU.ActiveCfg = Release|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|ARM.ActiveCfg = Release|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|ARM64.ActiveCfg = Release|arm64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|x64.ActiveCfg = Release|x64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|x64.Build.0 = Release|x64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|x86.ActiveCfg = Release|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|x86.Build.0 = Release|Win32 + {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|Any CPU.ActiveCfg = Debug|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|ARM.ActiveCfg = Debug|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|ARM64.ActiveCfg = Debug|arm64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|x64.ActiveCfg = Debug|x64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|x64.Build.0 = Debug|x64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|x86.ActiveCfg = Debug|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|x86.Build.0 = Debug|x86 + {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|Any CPU.ActiveCfg = Release|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|ARM.ActiveCfg = Release|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|ARM64.ActiveCfg = Release|arm64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|x64.ActiveCfg = Release|x64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|x64.Build.0 = Release|x64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|x86.ActiveCfg = Release|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|x86.Build.0 = Release|x86 + {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|Any CPU.Build.0 = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|ARM.ActiveCfg = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|ARM.Build.0 = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -470,6 +536,8 @@ Global {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|x64.Build.0 = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|x86.ActiveCfg = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|x86.Build.0 = Debug|Any CPU + {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|Any CPU.Build.0 = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|ARM.ActiveCfg = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|ARM.Build.0 = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -477,30 +545,35 @@ Global {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|x64.Build.0 = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|x86.ActiveCfg = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|x86.Build.0 = Release|Any CPU + {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|Any CPU.ActiveCfg = Debug|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|ARM.ActiveCfg = Debug|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|ARM64.ActiveCfg = Debug|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|x64.ActiveCfg = Debug|x64 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|x64.Build.0 = Debug|x64 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|x86.ActiveCfg = Debug|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|x86.Build.0 = Debug|x86 + {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|Any CPU.ActiveCfg = Release|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|ARM.ActiveCfg = Release|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|ARM64.ActiveCfg = Release|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|x64.ActiveCfg = Release|x64 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|x64.Build.0 = Release|x64 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|x86.ActiveCfg = Release|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|x86.Build.0 = Release|x86 + {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|Any CPU.ActiveCfg = Debug|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|ARM.ActiveCfg = Debug|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|ARM64.ActiveCfg = Debug|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|x64.ActiveCfg = Debug|x64 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|x64.Build.0 = Debug|x64 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|x86.ActiveCfg = Debug|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|x86.Build.0 = Debug|x86 + {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|Any CPU.ActiveCfg = Release|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|ARM.ActiveCfg = Release|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|ARM64.ActiveCfg = Release|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|x64.ActiveCfg = Release|x64 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|x64.Build.0 = Release|x64 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|x86.ActiveCfg = Release|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|x86.Build.0 = Release|x86 + {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|Any CPU.ActiveCfg = Debug|x64 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM.ActiveCfg = Debug|ARM {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM.Build.0 = Debug|ARM {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -508,6 +581,7 @@ Global {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x64.Build.0 = Debug|x64 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x86.ActiveCfg = Debug|Win32 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x86.Build.0 = Debug|Win32 + {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|Any CPU.ActiveCfg = Release|x64 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM.ActiveCfg = Release|ARM {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM.Build.0 = Release|ARM {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM64.ActiveCfg = Release|Win32 @@ -515,18 +589,62 @@ Global {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x64.Build.0 = Release|x64 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x86.ActiveCfg = Release|Win32 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x86.Build.0 = Release|Win32 + {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|Any CPU.ActiveCfg = Debug|x64 + {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|Any CPU.Build.0 = Debug|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|ARM.ActiveCfg = Debug|x86 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|ARM64.ActiveCfg = Debug|x86 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|x64.ActiveCfg = Debug|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|x64.Build.0 = Debug|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|x86.ActiveCfg = Debug|x86 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|x86.Build.0 = Debug|x86 + {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|Any CPU.ActiveCfg = Release|x64 + {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|Any CPU.Build.0 = Release|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|ARM.ActiveCfg = Release|x86 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|ARM64.ActiveCfg = Release|x86 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|x64.ActiveCfg = Release|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|x64.Build.0 = Release|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|x86.ActiveCfg = Release|x86 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|x86.Build.0 = Release|x86 + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|ARM.Build.0 = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|ARM64.Build.0 = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|x64.ActiveCfg = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|x64.Build.0 = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|x86.ActiveCfg = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|x86.Build.0 = Debug|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|Any CPU.Build.0 = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|ARM.ActiveCfg = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|ARM.Build.0 = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|ARM64.ActiveCfg = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|ARM64.Build.0 = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|x64.ActiveCfg = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|x64.Build.0 = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|x86.ActiveCfg = Release|Any CPU + {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|x86.Build.0 = Release|Any CPU + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|Any CPU.ActiveCfg = Debug|x64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|Any CPU.Build.0 = Debug|x64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|ARM.ActiveCfg = Debug|ARM + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|ARM.Build.0 = Debug|ARM + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|ARM64.Build.0 = Debug|ARM64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|x64.ActiveCfg = Debug|x64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|x64.Build.0 = Debug|x64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|x86.ActiveCfg = Debug|Win32 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|x86.Build.0 = Debug|Win32 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|Any CPU.ActiveCfg = Release|x64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|Any CPU.Build.0 = Release|x64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|ARM.ActiveCfg = Release|ARM + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|ARM.Build.0 = Release|ARM + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|ARM64.ActiveCfg = Release|ARM64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|ARM64.Build.0 = Release|ARM64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|x64.ActiveCfg = Release|x64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|x64.Build.0 = Release|x64 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|x86.ActiveCfg = Release|Win32 + {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -557,6 +675,8 @@ Global {80F0EC48-5536-49D6-8ED1-B1F4CED88073} = {6D41796B-9904-40B8-BBCB-40B2D1BAE44B} {0E0ACA62-A92F-44CF-BD41-AEB541946DF8} = {CFB651EC-DAA4-4A11-ABCD-C77F90602EB5} {8DB50E24-9599-4890-939D-C87C1EC5DDAD} = {CFB651EC-DAA4-4A11-ABCD-C77F90602EB5} + {B63DC238-AF5B-4790-B038-4F5ABE09F963} = {DA5AE0BA-E43D-4282-BC80-807DDE0C22C0} + {D10DC47A-DB45-491C-852E-2B2165F25F86} = {CFB651EC-DAA4-4A11-ABCD-C77F90602EB5} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5AE8C9D7-2613-4E1A-A4F2-579BAC28D0A2} From 75c817b245df5574583776b7d2d66f36b6d6ccd4 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Tue, 10 May 2022 23:26:59 -0700 Subject: [PATCH 2/8] Scope down - remove xdc for now --- .../WinRT.SourceGenerator/Generator.cs | 10 ++-- src/Authoring/WinRT.SourceGenerator/Helper.cs | 50 ++++++++-------- .../WinRT.SourceGenerator/WinRTTypeWriter.cs | 57 ------------------- src/Authoring/cswinmd/Program.cs | 3 +- 4 files changed, 31 insertions(+), 89 deletions(-) diff --git a/src/Authoring/WinRT.SourceGenerator/Generator.cs b/src/Authoring/WinRT.SourceGenerator/Generator.cs index 058a1d8ad..a291afeec 100644 --- a/src/Authoring/WinRT.SourceGenerator/Generator.cs +++ b/src/Authoring/WinRT.SourceGenerator/Generator.cs @@ -180,9 +180,9 @@ public void Generate() writer.FinalizeGeneration(); GenerateWinMD(metadataBuilder); - if (!context.ShouldSkipGeneratingSources()) - { - GenerateSources(); + if (!context.ShouldGenerateWinMDOnly()) + { + GenerateSources(); } } catch (Exception e) @@ -206,8 +206,8 @@ public class SourceGenerator : ISourceGenerator { public void Execute(GeneratorExecutionContext context) { - var isTest = string.CompareOrdinal(Process.GetCurrentProcess().ProcessName, "testhost") == 0; - if (!isTest && !context.IsCsWinRTComponent()) + var isTest = string.CompareOrdinal(Process.GetCurrentProcess().ProcessName, "testhost") == 0; + if (!isTest && !context.IsCsWinRTComponent() && !context.ShouldGenerateWinMDOnly()) { System.Diagnostics.Debug.WriteLine($"Skipping component {context.GetAssemblyName()}"); return; diff --git a/src/Authoring/WinRT.SourceGenerator/Helper.cs b/src/Authoring/WinRT.SourceGenerator/Helper.cs index e839ff0f0..bcbd5b1bb 100644 --- a/src/Authoring/WinRT.SourceGenerator/Helper.cs +++ b/src/Authoring/WinRT.SourceGenerator/Helper.cs @@ -1,7 +1,7 @@ -using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis; using System; using System.Collections.Generic; -using System.IO; +using System.IO; using System.Linq; namespace Generator @@ -32,23 +32,23 @@ public static Guid EncodeGuid(byte[] data) } return new Guid(data.Take(16).ToArray()); } - } - - class AttributeDataComparer : IEqualityComparer - { - public bool Equals(AttributeData x, AttributeData y) - { - return string.CompareOrdinal(x.ToString(), y.ToString()) == 0; - } - - public int GetHashCode(AttributeData obj) - { - return obj.ToString().GetHashCode(); - } } - static class GeneratorExecutionContextHelper - { + class AttributeDataComparer : IEqualityComparer + { + public bool Equals(AttributeData x, AttributeData y) + { + return string.CompareOrdinal(x.ToString(), y.ToString()) == 0; + } + + public int GetHashCode(AttributeData obj) + { + return obj.ToString().GetHashCode(); + } + } + + static class GeneratorExecutionContextHelper + { public static string GetAssemblyName(this GeneratorExecutionContext context) { context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.AssemblyName", out var assemblyName); @@ -78,14 +78,14 @@ public static bool IsCsWinRTComponent(this GeneratorExecutionContext context) return false; } - public static bool ShouldSkipGeneratingSources(this GeneratorExecutionContext context) - { - if (context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.CSWinMD", out var isCsWinMDStr)) + public static bool ShouldGenerateWinMDOnly(this GeneratorExecutionContext context) + { + if (context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.CsWinRTGenerateWinMDOnly", out var CsWinRTGenerateWinMDOnlyStr)) { - return bool.TryParse(isCsWinMDStr, out var isCsWinMD) && isCsWinMD; + return bool.TryParse(CsWinRTGenerateWinMDOnlyStr, out var CsWinRTGenerateWinMDOnly) && CsWinRTGenerateWinMDOnly; } - return false; + return false; } public static string GetCsWinRTExe(this GeneratorExecutionContext context) @@ -110,11 +110,11 @@ public static string GetCsWinRTDependentMetadata(this GeneratorExecutionContext { context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.CsWinRTAuthoringInputs", out var winmds); return winmds; - } - + } + public static string GetWinmdOutputFile(this GeneratorExecutionContext context) { return Path.Combine(context.GetGeneratedFilesDir(), context.GetAssemblyName() + ".winmd"); - } + } } } diff --git a/src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs b/src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs index 0220a167f..7b7410c09 100644 --- a/src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs +++ b/src/Authoring/WinRT.SourceGenerator/WinRTTypeWriter.cs @@ -2585,8 +2585,6 @@ void AddCustomAttributes(TypeDeclaration typeDeclaration, string interfaceName = } } - public static string XmlDocCustomAttributeTypeName { get; set; } = "CppComponent.DocStringAttribute"; - public void FinalizeGeneration() { Logger.Log("finalizing"); @@ -2594,13 +2592,6 @@ public void FinalizeGeneration() .Where(declaration => declaration.Node is INamedTypeSymbol symbol && symbol.TypeKind == TypeKind.Class) .ToList(); - - var xmlDocCustomAttributeType = Model.Compilation.GetTypeByMetadataName(XmlDocCustomAttributeTypeName); - if (xmlDocCustomAttributeType != null) - { - GenerateXmlDocCustomAttributes(); - } - foreach (var classTypeDeclaration in classTypeDeclarations) { INamedTypeSymbol classSymbol = classTypeDeclaration.Node as INamedTypeSymbol; @@ -2745,54 +2736,6 @@ public void FinalizeGeneration() } } - private void GenerateXmlDocCustomAttributes() - { - throw new NotSupportedException(); - var xdcTypes = typeDefinitionMapping.Values.Where(d => d.Node is INamedTypeSymbol); - foreach (var type in xdcTypes) - { - AddXmlDocumentation(type); - - foreach (var methodDefs in type.MethodReferences) - { - var xdc = methodDefs.Key.GetDocumentationCommentXml(); - if (!string.IsNullOrEmpty(xdc)) - { - foreach (var eh in methodDefs.Value) - { - AddCustomAttributes(XmlDocCustomAttributeTypeName, - new[] { Model.Compilation.GetSpecialType(SpecialType.System_String) }, - new[] { xdc }, - eh); - } - } - } - foreach (var fieldDef in type.FieldDefinitions) - { - var xdc = fieldDef.Key.GetDocumentationCommentXml(); - if (!string.IsNullOrEmpty(xdc)) - { - AddCustomAttributes(XmlDocCustomAttributeTypeName, - new[] { Model.Compilation.GetSpecialType(SpecialType.System_String) }, - new[] { xdc }, - fieldDef.Value); - } - } - } - } - - private void AddXmlDocumentation(TypeDeclaration classTypeDeclaration) - { - var xdc = classTypeDeclaration.Node.GetDocumentationCommentXml(); - if (!string.IsNullOrEmpty(xdc)) - { - AddCustomAttributes(XmlDocCustomAttributeTypeName, - new[] { Model.Compilation.GetSpecialType(SpecialType.System_String) }, - new[] { xdc }, - classTypeDeclaration.Handle); - } - } - public bool IsPublic(ISymbol type) { return type.DeclaredAccessibility == Accessibility.Public || diff --git a/src/Authoring/cswinmd/Program.cs b/src/Authoring/cswinmd/Program.cs index 3af351724..4327beed4 100644 --- a/src/Authoring/cswinmd/Program.cs +++ b/src/Authoring/cswinmd/Program.cs @@ -84,9 +84,8 @@ public static void Main(string[] i, string o, string? sdkVersion) config.Values["build_property.AssemblyName"] = assemblyName; config.Values["build_property.AssemblyVersion"] = "0.0.0.1"; config.Values["build_property.CsWinRTGeneratedFilesDir"] = outFolder; - config.Values["build_property.CsWinRTComponent"] = "true"; config.Values["build_property.CsWinRTEnableLogging"] = "true"; - config.Values["build_property.CSWinMD"] = "true"; + config.Values["build_property.CsWinRTGenerateWinMDOnly"] = "true"; var driver = CSharpGeneratorDriver.Create( generators: ImmutableArray.Create(g), From 2b6f3e0d190fb22fc364e0a5c2f907b35aea080a Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Wed, 11 May 2022 01:18:30 -0700 Subject: [PATCH 3/8] use dll crt --- src/Tests/CppComponent/CppComponent.vcxproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Tests/CppComponent/CppComponent.vcxproj b/src/Tests/CppComponent/CppComponent.vcxproj index 492864165..adbf120a7 100644 --- a/src/Tests/CppComponent/CppComponent.vcxproj +++ b/src/Tests/CppComponent/CppComponent.vcxproj @@ -108,6 +108,10 @@ NDEBUG;%(PreprocessorDefinitions) + MultiThreadedDLL + MultiThreadedDLL + MultiThreadedDLL + MultiThreadedDLL true From c8bd50b55ec83305503a5148deb3422d0c2c7ccd Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Wed, 11 May 2022 13:41:52 -0700 Subject: [PATCH 4/8] fb --- src/Authoring/cswinmd/Program.cs | 18 ++++++++---------- src/Tests/CppComponent/CppComponent.cs | 3 --- src/Tests/CppComponent/CppComponent.vcxproj | 8 +++----- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/Authoring/cswinmd/Program.cs b/src/Authoring/cswinmd/Program.cs index 4327beed4..1ef2b00a3 100644 --- a/src/Authoring/cswinmd/Program.cs +++ b/src/Authoring/cswinmd/Program.cs @@ -120,18 +120,16 @@ private static bool IsVersion(string v) private static string GetWindowsWinMdPath(string? sdkVersion) { using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)) + using (var roots = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows Kits\Installed Roots")) { - using (var roots = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows Kits\Installed Roots")) - { - var kitsRoot10 = (string)roots.GetValue("KitsRoot10"); - var unionMetadata = Path.Combine(kitsRoot10, "UnionMetadata"); - if (sdkVersion == null) { - var dirs = Directory.EnumerateDirectories(unionMetadata); - sdkVersion = Path.GetFileName(dirs.Where(IsVersion).Last()); - } - var path = Path.Combine(kitsRoot10, "UnionMetadata", sdkVersion, "Windows.winmd"); - return path; + var kitsRoot10 = (string)roots.GetValue("KitsRoot10"); + var unionMetadata = Path.Combine(kitsRoot10, "UnionMetadata"); + if (sdkVersion == null) { + var dirs = Directory.EnumerateDirectories(unionMetadata); + sdkVersion = Path.GetFileName(dirs.Where(IsVersion).Last()); } + var path = Path.Combine(kitsRoot10, "UnionMetadata", sdkVersion, "Windows.winmd"); + return path; } throw new ArgumentException("Could not determine Windows.winmd path in the Windows SDK"); } diff --git a/src/Tests/CppComponent/CppComponent.cs b/src/Tests/CppComponent/CppComponent.cs index cd0010a14..f2ffc2e30 100644 --- a/src/Tests/CppComponent/CppComponent.cs +++ b/src/Tests/CppComponent/CppComponent.cs @@ -13,9 +13,6 @@ public interface Interface1 string TheString { get; } } - /// - /// - /// public struct S { public string Field; diff --git a/src/Tests/CppComponent/CppComponent.vcxproj b/src/Tests/CppComponent/CppComponent.vcxproj index adbf120a7..92807ffe8 100644 --- a/src/Tests/CppComponent/CppComponent.vcxproj +++ b/src/Tests/CppComponent/CppComponent.vcxproj @@ -54,7 +54,8 @@ DynamicLibrary - v142 + v143 + v142 v141 v140 Unicode @@ -108,10 +109,7 @@ NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - MultiThreadedDLL - MultiThreadedDLL - MultiThreadedDLL + MultiThreadedDLL true From 74db7e115d7d2922ce2c62e4bcfcdf71dc8ee519 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Wed, 11 May 2022 15:18:35 -0700 Subject: [PATCH 5/8] > --- src/Authoring/cswinmd/CsWinMD.csproj | 17 ++++++ src/Authoring/cswinmd/Program.cs | 89 ++++++++++++++++------------ 2 files changed, 69 insertions(+), 37 deletions(-) diff --git a/src/Authoring/cswinmd/CsWinMD.csproj b/src/Authoring/cswinmd/CsWinMD.csproj index c879183d2..dc367aeb8 100644 --- a/src/Authoring/cswinmd/CsWinMD.csproj +++ b/src/Authoring/cswinmd/CsWinMD.csproj @@ -3,6 +3,23 @@ Exe net5.0 + preview + Microsoft Corporation + Microsoft Corporation + C#/WinRT + CsWinMD + + $(VersionNumber) + $(VersionNumber) + $(VersionNumber) + $(VersionNumber) + en + True + + C# to WinMD authoring tool Preview $(VersionString) + C# to WinMD authoring tool Preview v$(VersionString) + Copyright (c) Microsoft Corporation. All rights reserved. + diff --git a/src/Authoring/cswinmd/Program.cs b/src/Authoring/cswinmd/Program.cs index 1ef2b00a3..6d0bc2686 100644 --- a/src/Authoring/cswinmd/Program.cs +++ b/src/Authoring/cswinmd/Program.cs @@ -42,43 +42,50 @@ class Program /// Input WinMD path /// Output directory /// Optional sdk version + /// Verbose logging + /// Don't print logo /// Uses System.CommandLine.Dragonfruit - public static void Main(string[] i, string o, string? sdkVersion) + public static void Main(string[] i, string o, string? sdkVersion, bool? verbose, bool? nologo) { - if (i.Length == 0) + if (!nologo.HasValue || !nologo.Value) { - Console.Error.WriteLine("No C# source files specified"); - return; + Console.WriteLine($"CSWinMD {Assembly.GetExecutingAssembly().GetName().Version}"); } + var outFolder = string.IsNullOrEmpty(o) ? Environment.GetEnvironmentVariable("TEMP") : o; + try + { + if (i.Length == 0) + { + Console.Error.WriteLine("No C# source files specified"); + return; + } - string inputFile = i[0]; + string inputFile = i[0]; - Console.Write($"Compiling {inputFile}"); + Console.Write($"Compiling {inputFile}"); - string inputText = File.ReadAllText(inputFile); + string inputText = File.ReadAllText(inputFile); - string componentName = Path.GetFileNameWithoutExtension(inputFile); + string componentName = Path.GetFileNameWithoutExtension(inputFile); - var assemblyName = componentName; + var assemblyName = componentName; - var windows_winmd = GetWindowsWinMdPath(sdkVersion); - var compilation = CSharpCompilation.Create( - assemblyName: componentName, - syntaxTrees: new[] { CSharpSyntaxTree.ParseText(inputText, new CSharpParseOptions(LanguageVersion.Preview), inputFile) }, - references: new[] { MetadataReference.CreateFromFile(windows_winmd), + var windows_winmd = GetWindowsWinMdPath(sdkVersion); + var compilation = CSharpCompilation.Create( + assemblyName: componentName, + syntaxTrees: new[] { CSharpSyntaxTree.ParseText(inputText, new CSharpParseOptions(LanguageVersion.Preview), inputFile) }, + references: new[] { MetadataReference.CreateFromFile(windows_winmd), MetadataReference.CreateFromFile(typeof(Binder).Assembly.Location) - }, - options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) - ); + }, + options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) + ); - var g = new SourceGenerator(); - var outFolder = string.IsNullOrEmpty(o) ? Environment.GetEnvironmentVariable("TEMP") : o; - if (!Directory.Exists(outFolder)) - { - Directory.CreateDirectory(outFolder); - } - try - { + var g = new SourceGenerator(); + + if (!Directory.Exists(outFolder)) + { + Directory.CreateDirectory(outFolder); + } var cp = new ConfigProvider(); var config = cp.GlobalOptions as ConfigOptions; config.Values["build_property.AssemblyName"] = assemblyName; @@ -109,7 +116,17 @@ public static void Main(string[] i, string o, string? sdkVersion) } catch (Exception e) { - Console.WriteLine(File.ReadAllText(Path.Join(outFolder, "log.txt"))); + Console.WriteLine(); + Console.Error.WriteLine(e); + if (verbose.HasValue && verbose.Value) + { + var log_txt = Path.Join(outFolder, "log.txt"); + try + { + Console.Error.WriteLine(File.ReadAllText(log_txt)); + } + catch { } + } } } @@ -119,19 +136,17 @@ private static bool IsVersion(string v) } private static string GetWindowsWinMdPath(string? sdkVersion) { - using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)) - using (var roots = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows Kits\Installed Roots")) + using var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); + using var roots = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows Kits\Installed Roots"); + var kitsRoot10 = (string)roots.GetValue("KitsRoot10"); + var unionMetadata = Path.Combine(kitsRoot10, "UnionMetadata"); + if (sdkVersion == null) { - var kitsRoot10 = (string)roots.GetValue("KitsRoot10"); - var unionMetadata = Path.Combine(kitsRoot10, "UnionMetadata"); - if (sdkVersion == null) { - var dirs = Directory.EnumerateDirectories(unionMetadata); - sdkVersion = Path.GetFileName(dirs.Where(IsVersion).Last()); - } - var path = Path.Combine(kitsRoot10, "UnionMetadata", sdkVersion, "Windows.winmd"); - return path; + var dirs = Directory.EnumerateDirectories(unionMetadata); + sdkVersion = Path.GetFileName(dirs.Where(IsVersion).Last()); } - throw new ArgumentException("Could not determine Windows.winmd path in the Windows SDK"); + var path = Path.Combine(kitsRoot10, "UnionMetadata", sdkVersion, "Windows.winmd"); + return path; } } } \ No newline at end of file From e835a0a60d4149e1aa3705b0431ddabea6f44b06 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Sat, 28 May 2022 23:04:11 -0700 Subject: [PATCH 6/8] pr feedback --- src/Authoring/cswinmd/CsWinMD.csproj | 3 ++- src/Authoring/cswinmd/Program.cs | 23 +++++++++++++++---- src/Authoring/cswinmd/build/cswinmd.targets | 12 +++++----- .../CSWinMDComponent.cs} | 2 +- .../CSWinMDComponent.def} | 0 .../CSWinMDComponent.vcxproj} | 12 +++++----- .../CSWinMDComponent.vcxproj.filters} | 4 ++-- src/Tests/CSWinMDComponent/Class1.cpp | 12 ++++++++++ .../Class1.h | 4 ++-- .../PropertySheet.props | 0 .../packages.config | 0 .../pch.cpp | 0 .../{CppComponent => CSWinMDComponent}/pch.h | 0 src/Tests/CppComponent/Class1.cpp | 12 ---------- src/cswinrt.sln | 2 +- 15 files changed, 51 insertions(+), 35 deletions(-) rename src/Tests/{CppComponent/CppComponent.cs => CSWinMDComponent/CSWinMDComponent.cs} (87%) rename src/Tests/{CppComponent/CppComponent.def => CSWinMDComponent/CSWinMDComponent.def} (100%) rename src/Tests/{CppComponent/CppComponent.vcxproj => CSWinMDComponent/CSWinMDComponent.vcxproj} (94%) rename src/Tests/{CppComponent/CppComponent.vcxproj.filters => CSWinMDComponent/CSWinMDComponent.vcxproj.filters} (89%) create mode 100644 src/Tests/CSWinMDComponent/Class1.cpp rename src/Tests/{CppComponent => CSWinMDComponent}/Class1.h (75%) rename src/Tests/{CppComponent => CSWinMDComponent}/PropertySheet.props (100%) rename src/Tests/{CppComponent => CSWinMDComponent}/packages.config (100%) rename src/Tests/{CppComponent => CSWinMDComponent}/pch.cpp (100%) rename src/Tests/{CppComponent => CSWinMDComponent}/pch.h (100%) delete mode 100644 src/Tests/CppComponent/Class1.cpp diff --git a/src/Authoring/cswinmd/CsWinMD.csproj b/src/Authoring/cswinmd/CsWinMD.csproj index dc367aeb8..9da136469 100644 --- a/src/Authoring/cswinmd/CsWinMD.csproj +++ b/src/Authoring/cswinmd/CsWinMD.csproj @@ -3,11 +3,12 @@ Exe net5.0 + Major preview Microsoft Corporation Microsoft Corporation C#/WinRT - CsWinMD + Microsoft.Windows.CsWinMD $(VersionNumber) $(VersionNumber) diff --git a/src/Authoring/cswinmd/Program.cs b/src/Authoring/cswinmd/Program.cs index 6d0bc2686..133f2d24c 100644 --- a/src/Authoring/cswinmd/Program.cs +++ b/src/Authoring/cswinmd/Program.cs @@ -45,19 +45,23 @@ class Program /// Verbose logging /// Don't print logo /// Uses System.CommandLine.Dragonfruit + #nullable enable public static void Main(string[] i, string o, string? sdkVersion, bool? verbose, bool? nologo) { if (!nologo.HasValue || !nologo.Value) { Console.WriteLine($"CSWinMD {Assembly.GetExecutingAssembly().GetName().Version}"); } - var outFolder = string.IsNullOrEmpty(o) ? Environment.GetEnvironmentVariable("TEMP") : o; + var outFolder = string.IsNullOrEmpty(o) ? Environment.GetEnvironmentVariable("TEMP")! : o!; try { if (i.Length == 0) { Console.Error.WriteLine("No C# source files specified"); return; + } else if (i.Length > 1) + { + throw new NotImplementedException("Compiling more than one file is not yet implemented"); } string inputFile = i[0]; @@ -87,7 +91,7 @@ public static void Main(string[] i, string o, string? sdkVersion, bool? verbose, Directory.CreateDirectory(outFolder); } var cp = new ConfigProvider(); - var config = cp.GlobalOptions as ConfigOptions; + var config = (cp.GlobalOptions as ConfigOptions)!; config.Values["build_property.AssemblyName"] = assemblyName; config.Values["build_property.AssemblyVersion"] = "0.0.0.1"; config.Values["build_property.CsWinRTGeneratedFilesDir"] = outFolder; @@ -106,12 +110,16 @@ public static void Main(string[] i, string o, string? sdkVersion, bool? verbose, var res = d.GetRunResult(); if (!res.Diagnostics.IsEmpty) { + Console.WriteLine(); foreach (var v in res.Diagnostics) { Console.WriteLine(v.GetMessage()); Console.WriteLine($"\t\tIn {v.Location.GetLineSpan()}"); } Console.WriteLine(); + } else + { + Console.WriteLine($" => {outFolder}\\{componentName}.winmd"); } } catch (Exception e) @@ -130,23 +138,30 @@ public static void Main(string[] i, string o, string? sdkVersion, bool? verbose, } } + private static bool IsVersion(string v) { return Version.TryParse(Path.GetFileName(v), out var _); } + + [SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "CSWinMD only runs on Windows")] private static string GetWindowsWinMdPath(string? sdkVersion) { using var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); using var roots = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Windows Kits\Installed Roots"); - var kitsRoot10 = (string)roots.GetValue("KitsRoot10"); + var kitsRoot10 = (string)roots!.GetValue("KitsRoot10")!; var unionMetadata = Path.Combine(kitsRoot10, "UnionMetadata"); if (sdkVersion == null) { var dirs = Directory.EnumerateDirectories(unionMetadata); - sdkVersion = Path.GetFileName(dirs.Where(IsVersion).Last()); + var versions = dirs.Where(IsVersion).ToList(); + versions.Sort(); + sdkVersion = Path.GetFileName(versions.Last()); } var path = Path.Combine(kitsRoot10, "UnionMetadata", sdkVersion, "Windows.winmd"); return path; } + + #nullable restore } } \ No newline at end of file diff --git a/src/Authoring/cswinmd/build/cswinmd.targets b/src/Authoring/cswinmd/build/cswinmd.targets index 76c87137d..8fc16dafb 100644 --- a/src/Authoring/cswinmd/build/cswinmd.targets +++ b/src/Authoring/cswinmd/build/cswinmd.targets @@ -1,19 +1,19 @@ - + $(MSBuildThisFileDirectory)..\tools\CsWinMD.exe $(OutDir)cswinmd-$(ProjectName) - - + + - + - + - + true diff --git a/src/Tests/CppComponent/CppComponent.cs b/src/Tests/CSWinMDComponent/CSWinMDComponent.cs similarity index 87% rename from src/Tests/CppComponent/CppComponent.cs rename to src/Tests/CSWinMDComponent/CSWinMDComponent.cs index f2ffc2e30..85d6fafe1 100644 --- a/src/Tests/CppComponent/CppComponent.cs +++ b/src/Tests/CSWinMDComponent/CSWinMDComponent.cs @@ -1,4 +1,4 @@ -namespace CppComponent +namespace CSWinMDComponent { public enum E1 { diff --git a/src/Tests/CppComponent/CppComponent.def b/src/Tests/CSWinMDComponent/CSWinMDComponent.def similarity index 100% rename from src/Tests/CppComponent/CppComponent.def rename to src/Tests/CSWinMDComponent/CSWinMDComponent.def diff --git a/src/Tests/CppComponent/CppComponent.vcxproj b/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj similarity index 94% rename from src/Tests/CppComponent/CppComponent.vcxproj rename to src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj index 92807ffe8..22662963d 100644 --- a/src/Tests/CppComponent/CppComponent.vcxproj +++ b/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj @@ -7,8 +7,8 @@ true true {d10dc47a-db45-491c-852e-2b2165f25f86} - CppComponent - CppComponent + CSWinMDComponent + CSWinMDComponent en-US 14.0 true @@ -98,7 +98,7 @@ Console false - CppComponent.def + CSWinMDComponent.def @@ -128,8 +128,8 @@ - - + + @@ -139,7 +139,7 @@ - + diff --git a/src/Tests/CppComponent/CppComponent.vcxproj.filters b/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj.filters similarity index 89% rename from src/Tests/CppComponent/CppComponent.vcxproj.filters rename to src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj.filters index 17d88ee1b..90e8a4a6e 100644 --- a/src/Tests/CppComponent/CppComponent.vcxproj.filters +++ b/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj.filters @@ -19,8 +19,8 @@ - - + + diff --git a/src/Tests/CSWinMDComponent/Class1.cpp b/src/Tests/CSWinMDComponent/Class1.cpp new file mode 100644 index 000000000..1f3f3cac7 --- /dev/null +++ b/src/Tests/CSWinMDComponent/Class1.cpp @@ -0,0 +1,12 @@ +#pragma once +#include "pch.h" + +#include + +#include "Class1.h" +#include + +namespace winrt::CSWinMDComponent::implementation +{ + +} \ No newline at end of file diff --git a/src/Tests/CppComponent/Class1.h b/src/Tests/CSWinMDComponent/Class1.h similarity index 75% rename from src/Tests/CppComponent/Class1.h rename to src/Tests/CSWinMDComponent/Class1.h index 25098e148..791ccd460 100644 --- a/src/Tests/CppComponent/Class1.h +++ b/src/Tests/CSWinMDComponent/Class1.h @@ -2,7 +2,7 @@ #include "Class1.g.h" #include -namespace winrt::CppComponent::implementation +namespace winrt::CSWinMDComponent::implementation { struct Class1 : Class1T { @@ -13,7 +13,7 @@ namespace winrt::CppComponent::implementation } }; } -namespace winrt::CppComponent::factory_implementation +namespace winrt::CSWinMDComponent::factory_implementation { struct Class1 : Class1T { diff --git a/src/Tests/CppComponent/PropertySheet.props b/src/Tests/CSWinMDComponent/PropertySheet.props similarity index 100% rename from src/Tests/CppComponent/PropertySheet.props rename to src/Tests/CSWinMDComponent/PropertySheet.props diff --git a/src/Tests/CppComponent/packages.config b/src/Tests/CSWinMDComponent/packages.config similarity index 100% rename from src/Tests/CppComponent/packages.config rename to src/Tests/CSWinMDComponent/packages.config diff --git a/src/Tests/CppComponent/pch.cpp b/src/Tests/CSWinMDComponent/pch.cpp similarity index 100% rename from src/Tests/CppComponent/pch.cpp rename to src/Tests/CSWinMDComponent/pch.cpp diff --git a/src/Tests/CppComponent/pch.h b/src/Tests/CSWinMDComponent/pch.h similarity index 100% rename from src/Tests/CppComponent/pch.h rename to src/Tests/CSWinMDComponent/pch.h diff --git a/src/Tests/CppComponent/Class1.cpp b/src/Tests/CppComponent/Class1.cpp deleted file mode 100644 index 1970ac532..000000000 --- a/src/Tests/CppComponent/Class1.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -#include "pch.h" - -#include - -#include "Class1.h" -#include - -namespace winrt::CppComponent::implementation -{ - -} \ No newline at end of file diff --git a/src/cswinrt.sln b/src/cswinrt.sln index f7a4db369..09d1fe67f 100644 --- a/src/cswinrt.sln +++ b/src/cswinrt.sln @@ -127,7 +127,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OOPExe", "Tests\OOPExe\OOPE EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CsWinMD", "Authoring\CsWinMD\CsWinMD.csproj", "{B63DC238-AF5B-4790-B038-4F5ABE09F963}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppComponent", "Tests\CppComponent\CppComponent.vcxproj", "{D10DC47A-DB45-491C-852E-2B2165F25F86}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CSWinMDComponent", "Tests\CSWinMDComponent\CSWinMDComponent.vcxproj", "{D10DC47A-DB45-491C-852E-2B2165F25F86}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution From ce0c63f38928494bb63c5300f4d6d29b8fd23286 Mon Sep 17 00:00:00 2001 From: Alexander Sklar Date: Mon, 30 May 2022 23:33:38 -0700 Subject: [PATCH 7/8] > --- nuget/Microsoft.Windows.CsWinMD.nuspec | 34 +++++++++++ .../Microsoft.Windows.CsWinMD.targets | 8 +-- src/Authoring/WinRT.SourceGenerator/Helper.cs | 7 ++- src/Authoring/cswinmd/CsWinMD.csproj | 10 ++-- src/Authoring/cswinmd/Program.cs | 57 +++++++++++++++++-- .../CSWinMDComponent/CSWinMDComponent.vcxproj | 6 +- 6 files changed, 102 insertions(+), 20 deletions(-) create mode 100644 nuget/Microsoft.Windows.CsWinMD.nuspec rename src/Authoring/cswinmd/build/cswinmd.targets => nuget/Microsoft.Windows.CsWinMD.targets (79%) diff --git a/nuget/Microsoft.Windows.CsWinMD.nuspec b/nuget/Microsoft.Windows.CsWinMD.nuspec new file mode 100644 index 000000000..18ba55fb0 --- /dev/null +++ b/nuget/Microsoft.Windows.CsWinMD.nuspec @@ -0,0 +1,34 @@ + + + + Microsoft.Windows.CsWinMD + $cswinmd_nuget_version$ + C#/WinMD tooling + Microsoft + Microsoft + false + C#/WinMD provides support for compiling WinRT API definitions written in C# to be implemented in C++. + Release notes are available at https://github.com/microsoft/CsWinRT/releases + C++ C#/WinMD WinRT cswinmd WinMD xlang + © Microsoft Corporation. All rights reserved. + LICENSE + https://github.com/microsoft/cswinrt + + + + + + + + + + + + + + + + + + + diff --git a/src/Authoring/cswinmd/build/cswinmd.targets b/nuget/Microsoft.Windows.CsWinMD.targets similarity index 79% rename from src/Authoring/cswinmd/build/cswinmd.targets rename to nuget/Microsoft.Windows.CsWinMD.targets index 8fc16dafb..f6c38f54b 100644 --- a/src/Authoring/cswinmd/build/cswinmd.targets +++ b/nuget/Microsoft.Windows.CsWinMD.targets @@ -2,16 +2,16 @@ - $(MSBuildThisFileDirectory)..\tools\CsWinMD.exe + $(MSBuildThisFileDirectory)..\tools\native\CsWinMD.exe $(OutDir)cswinmd-$(ProjectName) - + - + - + true diff --git a/src/Authoring/WinRT.SourceGenerator/Helper.cs b/src/Authoring/WinRT.SourceGenerator/Helper.cs index bcbd5b1bb..124fe8ac8 100644 --- a/src/Authoring/WinRT.SourceGenerator/Helper.cs +++ b/src/Authoring/WinRT.SourceGenerator/Helper.cs @@ -114,7 +114,12 @@ public static string GetCsWinRTDependentMetadata(this GeneratorExecutionContext public static string GetWinmdOutputFile(this GeneratorExecutionContext context) { - return Path.Combine(context.GetGeneratedFilesDir(), context.GetAssemblyName() + ".winmd"); + var fileName = context.GetAssemblyName(); + if (context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.CsWinRTWinMDOutputFile", out var ret)) + { + fileName = ret!; + } + return Path.Combine(context.GetGeneratedFilesDir(), fileName + ".winmd"); } } } diff --git a/src/Authoring/cswinmd/CsWinMD.csproj b/src/Authoring/cswinmd/CsWinMD.csproj index 9da136469..ebd56b1b9 100644 --- a/src/Authoring/cswinmd/CsWinMD.csproj +++ b/src/Authoring/cswinmd/CsWinMD.csproj @@ -1,8 +1,8 @@ - + Exe - net5.0 + net5.0 Major preview Microsoft Corporation @@ -10,24 +10,22 @@ C#/WinRT Microsoft.Windows.CsWinMD + en $(VersionNumber) $(VersionNumber) $(VersionNumber) $(VersionNumber) en - True C# to WinMD authoring tool Preview $(VersionString) C# to WinMD authoring tool Preview v$(VersionString) Copyright (c) Microsoft Corporation. All rights reserved. - - - + diff --git a/src/Authoring/cswinmd/Program.cs b/src/Authoring/cswinmd/Program.cs index 133f2d24c..2b56f2171 100644 --- a/src/Authoring/cswinmd/Program.cs +++ b/src/Authoring/cswinmd/Program.cs @@ -36,17 +36,60 @@ public override AnalyzerConfigOptions GetOptions(AdditionalText textFile) } class Program { +#nullable enable + public static void Main(string[] args) + { + var i = new List(); + string? o = null; + string? sdkVersion = null; + bool? verbose = false; + bool? nologo = false; + string a = null; + for (int idx = 0; idx < args.Length; idx++) + { + if (args[idx] == "-i") + { + idx++; + i.AddRange(args[idx].Split(';')); + } + else if (args[idx] == "-o") + { + idx++; + o = args[idx]; + } + else if (args[idx] == "-a") + { + idx++; + a = args[idx]; + } + else if (args[idx] == "-sdkVersion") + { + idx++; + sdkVersion = args[idx]; + } + else if (args[idx] == "-verbose") + { + verbose = true; + } + else if (args[idx] == "-nologo") + { + nologo = true; + } + } + + DoMain(i.ToArray(), o!, a!, sdkVersion, verbose, nologo); + } /// /// CSWinMD - Compile C# definitions to WinMD /// /// Input WinMD path /// Output directory + /// Assembly name /// Optional sdk version /// Verbose logging /// Don't print logo /// Uses System.CommandLine.Dragonfruit - #nullable enable - public static void Main(string[] i, string o, string? sdkVersion, bool? verbose, bool? nologo) + public static void DoMain(string[] i, string o, string a, string? sdkVersion, bool? verbose, bool? nologo) { if (!nologo.HasValue || !nologo.Value) { @@ -72,14 +115,15 @@ public static void Main(string[] i, string o, string? sdkVersion, bool? verbose, string componentName = Path.GetFileNameWithoutExtension(inputFile); - var assemblyName = componentName; + var assemblyName = a; var windows_winmd = GetWindowsWinMdPath(sdkVersion); var compilation = CSharpCompilation.Create( - assemblyName: componentName, + assemblyName: assemblyName, syntaxTrees: new[] { CSharpSyntaxTree.ParseText(inputText, new CSharpParseOptions(LanguageVersion.Preview), inputFile) }, - references: new[] { MetadataReference.CreateFromFile(windows_winmd), - MetadataReference.CreateFromFile(typeof(Binder).Assembly.Location) + references: new[] { + MetadataReference.CreateFromFile(windows_winmd), + MetadataReference.CreateFromFile(typeof(Binder).Assembly.Location) }, options: new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) ); @@ -93,6 +137,7 @@ public static void Main(string[] i, string o, string? sdkVersion, bool? verbose, var cp = new ConfigProvider(); var config = (cp.GlobalOptions as ConfigOptions)!; config.Values["build_property.AssemblyName"] = assemblyName; + config.Values["build_property.CsWinRTWinMDOutputFile"] = componentName; config.Values["build_property.AssemblyVersion"] = "0.0.0.1"; config.Values["build_property.CsWinRTGeneratedFilesDir"] = outFolder; config.Values["build_property.CsWinRTEnableLogging"] = "true"; diff --git a/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj b/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj index 22662963d..1aaf1fc4a 100644 --- a/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj +++ b/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj @@ -146,15 +146,15 @@ ..\..\Authoring\cswinmd\bin\$(Configuration)\net5.0\CsWinMD.exe - - + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + From 47e1d64462bade1f8d69f5168c39844ba73781db Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Wed, 7 Sep 2022 18:05:59 -0700 Subject: [PATCH 8/8] Move to .NET 6 and drop AnyCPU in global sln config --- src/Authoring/cswinmd/CsWinMD.csproj | 2 +- .../CSWinMDComponent/CSWinMDComponent.vcxproj | 2 +- src/cswinrt.sln | 91 +------------------ 3 files changed, 7 insertions(+), 88 deletions(-) diff --git a/src/Authoring/cswinmd/CsWinMD.csproj b/src/Authoring/cswinmd/CsWinMD.csproj index ebd56b1b9..bc34bfbe1 100644 --- a/src/Authoring/cswinmd/CsWinMD.csproj +++ b/src/Authoring/cswinmd/CsWinMD.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 Major preview Microsoft Corporation diff --git a/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj b/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj index 1aaf1fc4a..2526d7391 100644 --- a/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj +++ b/src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj @@ -143,7 +143,7 @@ - ..\..\Authoring\cswinmd\bin\$(Configuration)\net5.0\CsWinMD.exe + ..\..\Authoring\cswinmd\bin\$(Configuration)\net6.0\CsWinMD.exe diff --git a/src/cswinrt.sln b/src/cswinrt.sln index 0614e9d2a..f021c4c07 100644 --- a/src/cswinrt.sln +++ b/src/cswinrt.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29009.5 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32825.248 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestComponentCSharp", "Tests\TestComponentCSharp\TestComponentCSharp.vcxproj", "{7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}" ProjectSection(ProjectDependencies) = postProject @@ -128,6 +128,7 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CsWinMD", "Authoring\CsWinMD\CsWinMD.csproj", "{B63DC238-AF5B-4790-B038-4F5ABE09F963}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CSWinMDComponent", "Tests\CSWinMDComponent\CSWinMDComponent.vcxproj", "{D10DC47A-DB45-491C-852E-2B2165F25F86}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JsonValueFunctionCalls", "Tests\FunctionalTests\JsonValueFunctionCalls\JsonValueFunctionCalls.csproj", "{EE5B4B23-5D4B-4DFB-8DC9-4DBB1B735CC8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{5ECC38F0-16FD-47E1-B8DC-8C474008AD55}" @@ -155,51 +156,44 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamicInterfaceCasting", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DerivedClassAsBaseClass", "Tests\FunctionalTests\DerivedClassAsBaseClass\DerivedClassAsBaseClass.csproj", "{E3AEC9A4-D1A3-448D-B980-F82894792AF1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CCW", "Tests\FunctionalTests\CCW\CCW.csproj", "{C44DB047-5DF0-4732-98F4-A181D3AD8A7F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CCW", "Tests\FunctionalTests\CCW\CCW.csproj", "{C44DB047-5DF0-4732-98F4-A181D3AD8A7F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU Debug|ARM = Debug|ARM Debug|ARM64 = Debug|ARM64 Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU Release|ARM = Release|ARM Release|ARM64 = Release|ARM64 Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|Any CPU.ActiveCfg = Debug|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|ARM.ActiveCfg = Debug|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|ARM64.ActiveCfg = Debug|ARM64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x64.ActiveCfg = Debug|x64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x64.Build.0 = Debug|x64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x86.ActiveCfg = Debug|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Debug|x86.Build.0 = Debug|Win32 - {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|Any CPU.ActiveCfg = Release|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|ARM.ActiveCfg = Release|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|ARM64.ActiveCfg = Release|ARM64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x64.ActiveCfg = Release|x64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x64.Build.0 = Release|x64 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x86.ActiveCfg = Release|Win32 {7E3A9AB3-8CBB-4B9C-BA76-0FE7108DCAEB}.Release|x86.Build.0 = Release|Win32 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|Any CPU.ActiveCfg = Debug|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM.ActiveCfg = Debug|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|ARM64.ActiveCfg = Debug|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x64.ActiveCfg = Debug|x64 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x64.Build.0 = Debug|x64 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x86.ActiveCfg = Debug|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Debug|x86.Build.0 = Debug|x86 - {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|Any CPU.ActiveCfg = Release|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM.ActiveCfg = Release|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|ARM64.ActiveCfg = Release|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x64.ActiveCfg = Release|x64 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x64.Build.0 = Release|x64 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x86.ActiveCfg = Release|x86 {9A9F52CA-F624-43A4-B5EF-C50861F584C2}.Release|x86.Build.0 = Release|x86 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|Any CPU.ActiveCfg = Debug|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM.ActiveCfg = Debug|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM64.ActiveCfg = Debug|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|ARM64.Build.0 = Debug|Win32 @@ -207,7 +201,6 @@ Global {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x64.Build.0 = Debug|x64 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x86.ActiveCfg = Debug|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Debug|x86.Build.0 = Debug|Win32 - {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|Any CPU.ActiveCfg = Release|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM.ActiveCfg = Release|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM64.ActiveCfg = Release|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|ARM64.Build.0 = Release|Win32 @@ -215,7 +208,6 @@ Global {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x64.Build.0 = Release|x64 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x86.ActiveCfg = Release|Win32 {6ACFD2B2-E8AA-4CD4-AAD8-213CE8BB2637}.Release|x86.Build.0 = Release|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|Any CPU.ActiveCfg = Debug|Win32 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM.ActiveCfg = Debug|ARM {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM.Build.0 = Debug|ARM {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -223,7 +215,6 @@ Global {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x64.Build.0 = Debug|x64 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x86.ActiveCfg = Debug|Win32 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Debug|x86.Build.0 = Debug|Win32 - {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|Any CPU.ActiveCfg = Release|Win32 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM.ActiveCfg = Release|ARM {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM.Build.0 = Release|ARM {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|ARM64.ActiveCfg = Release|Win32 @@ -231,8 +222,6 @@ Global {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x64.Build.0 = Release|x64 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x86.ActiveCfg = Release|Win32 {2954F343-85A7-46F5-A3F3-F106FDD13900}.Release|x86.Build.0 = Release|Win32 - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|Any CPU.Build.0 = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM.ActiveCfg = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM.Build.0 = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -241,8 +230,6 @@ Global {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x64.Build.0 = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x86.ActiveCfg = Debug|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Debug|x86.Build.0 = Debug|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25244CED-966E-45F2-9711-1F51E951FF89}.Release|Any CPU.Build.0 = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM.ActiveCfg = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM.Build.0 = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -251,34 +238,29 @@ Global {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x64.Build.0 = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x86.ActiveCfg = Release|Any CPU {25244CED-966E-45F2-9711-1F51E951FF89}.Release|x86.Build.0 = Release|Any CPU - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|Any CPU.ActiveCfg = Debug|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|ARM.ActiveCfg = Debug|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|ARM64.ActiveCfg = Debug|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x64.ActiveCfg = Debug|x64 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x64.Build.0 = Debug|x64 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x86.ActiveCfg = Debug|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Debug|x86.Build.0 = Debug|x86 - {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|Any CPU.ActiveCfg = Release|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|ARM.ActiveCfg = Release|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|ARM64.ActiveCfg = Release|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x64.ActiveCfg = Release|x64 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x86.ActiveCfg = Release|x86 {8E6FBCB2-B0C1-4E92-8AEB-2A11564E6E0D}.Release|x86.Build.0 = Release|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|Any CPU.ActiveCfg = Debug|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|ARM.ActiveCfg = Debug|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|ARM64.ActiveCfg = Debug|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x64.ActiveCfg = Debug|x64 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x64.Build.0 = Debug|x64 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x86.ActiveCfg = Debug|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Debug|x86.Build.0 = Debug|x86 - {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|Any CPU.ActiveCfg = Release|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|ARM.ActiveCfg = Release|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|ARM64.ActiveCfg = Release|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x64.ActiveCfg = Release|x64 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x64.Build.0 = Release|x64 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x86.ActiveCfg = Release|x86 {C6D580C5-7037-4733-B933-916FF400AFE2}.Release|x86.Build.0 = Release|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|Any CPU.ActiveCfg = Debug|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM.ActiveCfg = Debug|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM64.ActiveCfg = Debug|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|ARM64.Build.0 = Debug|x86 @@ -286,7 +268,6 @@ Global {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x64.Build.0 = Debug|x64 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x86.ActiveCfg = Debug|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Debug|x86.Build.0 = Debug|x86 - {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|Any CPU.ActiveCfg = Release|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM.ActiveCfg = Release|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM64.ActiveCfg = Release|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|ARM64.Build.0 = Release|x86 @@ -294,33 +275,28 @@ Global {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x64.Build.0 = Release|x64 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x86.ActiveCfg = Release|x86 {FFA9A78B-F53F-43EE-AF87-24A80F4C330A}.Release|x86.Build.0 = Release|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|Any CPU.ActiveCfg = Debug|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|ARM.ActiveCfg = Debug|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|ARM64.ActiveCfg = Debug|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x64.ActiveCfg = Debug|x64 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x64.Build.0 = Debug|x64 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x86.ActiveCfg = Debug|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Debug|x86.Build.0 = Debug|x86 - {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|Any CPU.ActiveCfg = Release|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|ARM.ActiveCfg = Release|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|ARM64.ActiveCfg = Release|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x64.ActiveCfg = Release|x64 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x64.Build.0 = Release|x64 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x86.ActiveCfg = Release|x86 {0A991D5F-BFEE-4D2F-9AAD-6AD06470A5DF}.Release|x86.Build.0 = Release|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|Any CPU.ActiveCfg = Debug|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|ARM.ActiveCfg = Debug|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|ARM64.ActiveCfg = Debug|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x64.ActiveCfg = Debug|x64 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x64.Build.0 = Debug|x64 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Debug|x86.ActiveCfg = Debug|x86 - {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|Any CPU.ActiveCfg = Release|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|ARM.ActiveCfg = Release|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|ARM64.ActiveCfg = Release|x86 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x64.ActiveCfg = Release|x64 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x64.Build.0 = Release|x64 {B34C96F4-3660-4B2D-8ABD-A4B428166DC7}.Release|x86.ActiveCfg = Release|x86 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|Any CPU.ActiveCfg = Debug|Win32 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM.ActiveCfg = Debug|ARM {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM.Build.0 = Debug|ARM {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -328,7 +304,6 @@ Global {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x64.Build.0 = Debug|x64 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x86.ActiveCfg = Debug|Win32 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Debug|x86.Build.0 = Debug|Win32 - {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|Any CPU.ActiveCfg = Release|Win32 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM.ActiveCfg = Release|ARM {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM.Build.0 = Release|ARM {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|ARM64.ActiveCfg = Release|Win32 @@ -336,21 +311,18 @@ Global {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x64.Build.0 = Release|x64 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x86.ActiveCfg = Release|Win32 {78D85F23-7CB1-44A1-9238-6DF2C76754E4}.Release|x86.Build.0 = Release|Win32 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|Any CPU.ActiveCfg = Debug|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|ARM.ActiveCfg = Debug|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|ARM64.ActiveCfg = Debug|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x64.ActiveCfg = Debug|x64 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x64.Build.0 = Debug|x64 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x86.ActiveCfg = Debug|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Debug|x86.Build.0 = Debug|x86 - {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|Any CPU.ActiveCfg = Release|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|ARM.ActiveCfg = Release|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|ARM64.ActiveCfg = Release|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x64.ActiveCfg = Release|x64 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x64.Build.0 = Release|x64 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x86.ActiveCfg = Release|x86 {03EEF460-2F10-4FBE-AFFA-53477D3FC8D5}.Release|x86.Build.0 = Release|x86 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|Any CPU.ActiveCfg = Debug|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM.ActiveCfg = Debug|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|ARM64.Build.0 = Debug|ARM64 @@ -358,7 +330,6 @@ Global {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x64.Build.0 = Debug|x64 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x86.ActiveCfg = Debug|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Debug|x86.Build.0 = Debug|Win32 - {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|Any CPU.ActiveCfg = Release|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM.ActiveCfg = Release|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM64.ActiveCfg = Release|ARM64 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|ARM64.Build.0 = Release|ARM64 @@ -366,22 +337,18 @@ Global {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x64.Build.0 = Release|x64 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x86.ActiveCfg = Release|Win32 {7E33BCB7-19C5-4061-981D-BA695322708A}.Release|x86.Build.0 = Release|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|Any CPU.ActiveCfg = Debug|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|ARM.ActiveCfg = Debug|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|ARM64.ActiveCfg = Debug|ARM64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x64.ActiveCfg = Debug|x64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x64.Build.0 = Debug|x64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x86.ActiveCfg = Debug|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Debug|x86.Build.0 = Debug|Win32 - {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|Any CPU.ActiveCfg = Release|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|ARM.ActiveCfg = Release|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|ARM64.ActiveCfg = Release|ARM64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x64.ActiveCfg = Release|x64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x64.Build.0 = Release|x64 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x86.ActiveCfg = Release|Win32 {B511B7C9-C8E2-47ED-A0D1-538C00747D30}.Release|x86.Build.0 = Release|Win32 - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|Any CPU.Build.0 = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM.ActiveCfg = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM.Build.0 = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -390,8 +357,6 @@ Global {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x64.Build.0 = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x86.ActiveCfg = Debug|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Debug|x86.Build.0 = Debug|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|Any CPU.Build.0 = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM.ActiveCfg = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM.Build.0 = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -400,22 +365,18 @@ Global {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x64.Build.0 = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x86.ActiveCfg = Release|Any CPU {0BB8F82D-874E-45AA-BCA3-20CE0562164A}.Release|x86.Build.0 = Release|Any CPU - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|Any CPU.ActiveCfg = Debug|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|ARM.ActiveCfg = Debug|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|ARM64.ActiveCfg = Debug|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x64.ActiveCfg = Debug|x64 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x64.Build.0 = Debug|x64 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x86.ActiveCfg = Debug|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Debug|x86.Build.0 = Debug|x86 - {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|Any CPU.ActiveCfg = Release|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|ARM.ActiveCfg = Release|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|ARM64.ActiveCfg = Release|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x64.ActiveCfg = Release|x64 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x64.Build.0 = Release|x64 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x86.ActiveCfg = Release|x86 {EF3326B5-716F-41D2-AB30-4EFAB30955E2}.Release|x86.Build.0 = Release|x86 - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM.ActiveCfg = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM.Build.0 = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -424,8 +385,6 @@ Global {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x64.Build.0 = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x86.ActiveCfg = Debug|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Debug|x86.Build.0 = Debug|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|Any CPU.Build.0 = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM.ActiveCfg = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM.Build.0 = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -434,35 +393,30 @@ Global {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x64.Build.0 = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x86.ActiveCfg = Release|Any CPU {E0C26D3A-504A-4826-BAE2-DE775F865B2A}.Release|x86.Build.0 = Release|Any CPU - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|Any CPU.ActiveCfg = Debug|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM.ActiveCfg = Debug|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|ARM64.ActiveCfg = Debug|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x64.ActiveCfg = Debug|x64 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x64.Build.0 = Debug|x64 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x86.ActiveCfg = Debug|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Debug|x86.Build.0 = Debug|x86 - {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|Any CPU.ActiveCfg = Release|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM.ActiveCfg = Release|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|ARM64.ActiveCfg = Release|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x64.ActiveCfg = Release|x64 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x64.Build.0 = Release|x64 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x86.ActiveCfg = Release|x86 {41E2A272-150F-42F5-AD40-047AAD9088A0}.Release|x86.Build.0 = Release|x86 - {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|Any CPU.ActiveCfg = Debug|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|ARM.ActiveCfg = Debug|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|ARM64.ActiveCfg = Debug|ARM64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|x64.ActiveCfg = Debug|x64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|x64.Build.0 = Debug|x64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|x86.ActiveCfg = Debug|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Debug|x86.Build.0 = Debug|Win32 - {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|Any CPU.ActiveCfg = Release|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|ARM.ActiveCfg = Release|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|ARM64.ActiveCfg = Release|ARM64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|x64.ActiveCfg = Release|x64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|x64.Build.0 = Release|x64 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|x86.ActiveCfg = Release|Win32 {0212A7C5-8D3F-443C-9EBC-1F28091FDF88}.Release|x86.Build.0 = Release|Win32 - {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|Any CPU.ActiveCfg = Debug|Win32 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM.ActiveCfg = Debug|ARM {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM.Build.0 = Debug|ARM {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -470,7 +424,6 @@ Global {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x64.Build.0 = Debug|x64 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x86.ActiveCfg = Debug|Win32 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x86.Build.0 = Debug|Win32 - {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|Any CPU.ActiveCfg = Release|Win32 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM.ActiveCfg = Release|ARM {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM.Build.0 = Release|ARM {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM64.ActiveCfg = Release|Win32 @@ -478,7 +431,6 @@ Global {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x64.Build.0 = Release|x64 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x86.ActiveCfg = Release|Win32 {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x86.Build.0 = Release|Win32 - {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|Any CPU.ActiveCfg = Debug|Win32 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM.ActiveCfg = Debug|ARM {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM.Build.0 = Debug|ARM {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -486,7 +438,6 @@ Global {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x64.Build.0 = Debug|x64 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x86.ActiveCfg = Debug|Win32 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x86.Build.0 = Debug|Win32 - {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|Any CPU.ActiveCfg = Release|Win32 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM.ActiveCfg = Release|ARM {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM.Build.0 = Release|ARM {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM64.ActiveCfg = Release|Win32 @@ -494,8 +445,6 @@ Global {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x64.Build.0 = Release|x64 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x86.ActiveCfg = Release|Win32 {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x86.Build.0 = Release|Win32 - {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|Any CPU.Build.0 = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|ARM.ActiveCfg = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|ARM.Build.0 = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -503,8 +452,6 @@ Global {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|x64.Build.0 = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|x86.ActiveCfg = Debug|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Debug|x86.Build.0 = Debug|Any CPU - {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|Any CPU.Build.0 = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|ARM.ActiveCfg = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|ARM.Build.0 = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -512,7 +459,6 @@ Global {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|x64.Build.0 = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|x86.ActiveCfg = Release|Any CPU {FC05C557-C974-4CB3-9DA7-BB5476710E91}.Release|x86.Build.0 = Release|Any CPU - {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|Any CPU.ActiveCfg = Debug|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|ARM.ActiveCfg = Debug|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|ARM64.ActiveCfg = Debug|arm64 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|x64.ActiveCfg = Debug|x64 @@ -520,7 +466,6 @@ Global {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|x86.ActiveCfg = Debug|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|x86.Build.0 = Debug|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Debug|x86.Deploy.0 = Debug|x86 - {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|Any CPU.ActiveCfg = Release|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|ARM.ActiveCfg = Release|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|ARM64.ActiveCfg = Release|arm64 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|x64.ActiveCfg = Release|x64 @@ -529,35 +474,29 @@ Global {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|x86.ActiveCfg = Release|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|x86.Build.0 = Release|x86 {75B1621F-EC51-4D77-BD7E-BEE576B3ADC9}.Release|x86.Deploy.0 = Release|x86 - {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|Any CPU.ActiveCfg = Debug|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|ARM.ActiveCfg = Debug|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|ARM64.ActiveCfg = Debug|arm64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|x64.ActiveCfg = Debug|x64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|x86.ActiveCfg = Debug|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Debug|x86.Build.0 = Debug|Win32 - {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|Any CPU.ActiveCfg = Release|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|ARM.ActiveCfg = Release|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|ARM64.ActiveCfg = Release|arm64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|x64.ActiveCfg = Release|x64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|x64.Build.0 = Release|x64 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|x86.ActiveCfg = Release|Win32 {493C7729-2F21-4198-AB09-BDF56BF501D3}.Release|x86.Build.0 = Release|Win32 - {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|Any CPU.ActiveCfg = Debug|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|ARM.ActiveCfg = Debug|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|ARM64.ActiveCfg = Debug|arm64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|x64.ActiveCfg = Debug|x64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|x64.Build.0 = Debug|x64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|x86.ActiveCfg = Debug|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Debug|x86.Build.0 = Debug|x86 - {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|Any CPU.ActiveCfg = Release|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|ARM.ActiveCfg = Release|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|ARM64.ActiveCfg = Release|arm64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|x64.ActiveCfg = Release|x64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|x64.Build.0 = Release|x64 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|x86.ActiveCfg = Release|x86 {BA7390DC-6CD3-44BB-B8B0-32BF2D068450}.Release|x86.Build.0 = Release|x86 - {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|Any CPU.Build.0 = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|ARM.ActiveCfg = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|ARM.Build.0 = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -565,8 +504,6 @@ Global {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|x64.Build.0 = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|x86.ActiveCfg = Debug|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Debug|x86.Build.0 = Debug|Any CPU - {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|Any CPU.Build.0 = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|ARM.ActiveCfg = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|ARM.Build.0 = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -574,35 +511,30 @@ Global {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|x64.Build.0 = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|x86.ActiveCfg = Release|Any CPU {AE3B0611-2FBB-42AB-A245-B4E79868A5F9}.Release|x86.Build.0 = Release|Any CPU - {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|Any CPU.ActiveCfg = Debug|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|ARM.ActiveCfg = Debug|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|ARM64.ActiveCfg = Debug|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|x64.ActiveCfg = Debug|x64 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|x64.Build.0 = Debug|x64 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|x86.ActiveCfg = Debug|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Debug|x86.Build.0 = Debug|x86 - {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|Any CPU.ActiveCfg = Release|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|ARM.ActiveCfg = Release|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|ARM64.ActiveCfg = Release|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|x64.ActiveCfg = Release|x64 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|x64.Build.0 = Release|x64 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|x86.ActiveCfg = Release|x86 {B6312AD1-A59E-4F3B-AA39-20B780FE9E15}.Release|x86.Build.0 = Release|x86 - {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|Any CPU.ActiveCfg = Debug|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|ARM.ActiveCfg = Debug|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|ARM64.ActiveCfg = Debug|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|x64.ActiveCfg = Debug|x64 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|x64.Build.0 = Debug|x64 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|x86.ActiveCfg = Debug|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Debug|x86.Build.0 = Debug|x86 - {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|Any CPU.ActiveCfg = Release|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|ARM.ActiveCfg = Release|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|ARM64.ActiveCfg = Release|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|x64.ActiveCfg = Release|x64 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|x64.Build.0 = Release|x64 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|x86.ActiveCfg = Release|x86 {80F0EC48-5536-49D6-8ED1-B1F4CED88073}.Release|x86.Build.0 = Release|x86 - {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|Any CPU.ActiveCfg = Debug|x64 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM.ActiveCfg = Debug|ARM {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM.Build.0 = Debug|ARM {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM64.ActiveCfg = Debug|Win32 @@ -610,7 +542,6 @@ Global {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x64.Build.0 = Debug|x64 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x86.ActiveCfg = Debug|Win32 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x86.Build.0 = Debug|Win32 - {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|Any CPU.ActiveCfg = Release|x64 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM.ActiveCfg = Release|ARM {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM.Build.0 = Release|ARM {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM64.ActiveCfg = Release|Win32 @@ -618,24 +549,18 @@ Global {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x64.Build.0 = Release|x64 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x86.ActiveCfg = Release|Win32 {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x86.Build.0 = Release|Win32 - {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|Any CPU.ActiveCfg = Debug|x64 - {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|Any CPU.Build.0 = Debug|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|ARM.ActiveCfg = Debug|ARM {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|ARM64.ActiveCfg = Debug|ARM64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|x64.ActiveCfg = Debug|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|x64.Build.0 = Debug|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|x86.ActiveCfg = Debug|x86 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Debug|x86.Build.0 = Debug|x86 - {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|Any CPU.ActiveCfg = Release|x64 - {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|Any CPU.Build.0 = Release|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|ARM.ActiveCfg = Release|ARM {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|ARM64.ActiveCfg = Release|ARM64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|x64.ActiveCfg = Release|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|x64.Build.0 = Release|x64 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|x86.ActiveCfg = Release|x86 {8DB50E24-9599-4890-939D-C87C1EC5DDAD}.Release|x86.Build.0 = Release|x86 - {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|Any CPU.Build.0 = Debug|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|ARM.ActiveCfg = Debug|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|ARM.Build.0 = Debug|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|ARM64.ActiveCfg = Debug|Any CPU @@ -644,8 +569,6 @@ Global {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|x64.Build.0 = Debug|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|x86.ActiveCfg = Debug|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Debug|x86.Build.0 = Debug|Any CPU - {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|Any CPU.Build.0 = Release|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|ARM.ActiveCfg = Release|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|ARM.Build.0 = Release|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|ARM64.ActiveCfg = Release|Any CPU @@ -654,8 +577,6 @@ Global {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|x64.Build.0 = Release|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|x86.ActiveCfg = Release|Any CPU {B63DC238-AF5B-4790-B038-4F5ABE09F963}.Release|x86.Build.0 = Release|Any CPU - {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|Any CPU.ActiveCfg = Debug|x64 - {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|Any CPU.Build.0 = Debug|x64 {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|ARM.ActiveCfg = Debug|ARM {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|ARM.Build.0 = Debug|ARM {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|ARM64.ActiveCfg = Debug|ARM64 @@ -664,8 +585,6 @@ Global {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|x64.Build.0 = Debug|x64 {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|x86.ActiveCfg = Debug|Win32 {D10DC47A-DB45-491C-852E-2B2165F25F86}.Debug|x86.Build.0 = Debug|Win32 - {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|Any CPU.ActiveCfg = Release|x64 - {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|Any CPU.Build.0 = Release|x64 {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|ARM.ActiveCfg = Release|ARM {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|ARM.Build.0 = Release|ARM {D10DC47A-DB45-491C-852E-2B2165F25F86}.Release|ARM64.ActiveCfg = Release|ARM64 @@ -793,7 +712,7 @@ Global {C44DB047-5DF0-4732-98F4-A181D3AD8A7F}.Release|x64.ActiveCfg = Release|x64 {C44DB047-5DF0-4732-98F4-A181D3AD8A7F}.Release|x64.Build.0 = Release|x64 {C44DB047-5DF0-4732-98F4-A181D3AD8A7F}.Release|x86.ActiveCfg = Release|x86 - {C44DB047-5DF0-4732-98F4-A181D3AD8A7F}.Release|x86.Build.0 = Release|x86 + {C44DB047-5DF0-4732-98F4-A181D3AD8A7F}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE