Add VS Template for WinUI Unit Test Project (#3942)

This commit is contained in:
Keith Mahoney 2023-11-08 09:06:37 -08:00 коммит произвёл GitHub
Родитель 1dcf00ccab
Коммит 701b4be6f5
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
34 изменённых файлов: 527 добавлений и 125 удалений

Просмотреть файл

@ -6,8 +6,10 @@
</config> </config>
<packageSources> <packageSources>
<clear /> <clear />
<add key="ProjectReunion internal" value="https://microsoft.pkgs.visualstudio.com/ProjectReunion/_packaging/Project.Reunion.nuget.internal/nuget/v3/index.json" /> <add key="ProjectReunion internal" value="https://microsoft.pkgs.visualstudio.com/ProjectReunion/_packaging/Project.Reunion.nuget.internal/nuget/v3/index.json" />
<add key="WindowsAppSDK Local" value="tools/nuget" /> <add key="WindowsAppSDK Local" value="tools/nuget" />
<add key="localpackages" value="localpackages" />
</packageSources> </packageSources>
<disabledPackageSources> <disabledPackageSources>
<clear /> <clear />

Просмотреть файл

@ -3,9 +3,6 @@
<!-- Provide default nuget feed (Windows App SDK internal) and package versions for developer builds --> <!-- Provide default nuget feed (Windows App SDK internal) and package versions for developer builds -->
<PropertyGroup> <PropertyGroup>
<RestoreSources Condition="'$(RestoreSources)'==''">
https://pkgs.dev.azure.com/microsoft/ProjectReunion/_packaging/Project.Reunion.nuget.internal/nuget/v3/index.json
</RestoreSources>
<CppWinRTVersion Condition="'$(CppWinRTVersion)' == ''">2.0.230706.1</CppWinRTVersion> <CppWinRTVersion Condition="'$(CppWinRTVersion)' == ''">2.0.230706.1</CppWinRTVersion>
<WindowsSDKBuildToolsVersion Condition="'$(WindowsSDKBuildToolsVersion)' == ''">10.0.22621.756</WindowsSDKBuildToolsVersion> <WindowsSDKBuildToolsVersion Condition="'$(WindowsSDKBuildToolsVersion)' == ''">10.0.22621.756</WindowsSDKBuildToolsVersion>
<WILVersion Condition="'$(WILVersion)' == ''">1.0.220914.1</WILVersion> <WILVersion Condition="'$(WILVersion)' == ''">1.0.220914.1</WILVersion>

Просмотреть файл

@ -1,18 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!--
VS SDK Notes: This resx file contains the resources that will be consumed from
your package by Visual Studio. For example, Visual Studio will attempt to load
resource '1000' from this resource stream when it needs to load one of your
package's template's name. Because Visual Studio will always look in the
VSPackage.resources stream first for resources it needs, you should put additional
resources that Visual Studio will load directly into this resx file.
By convention, strings that have both non-experimental and experimental versions
have consecutive IDs (even = non-experimental, odd = experimental).
Resources that you would like to access directly from your package in a strong-typed
fashion should be stored in Resources.resx or another resx file.
-->
<root> <root>
<!-- <!--
Microsoft ResX Schema Microsoft ResX Schema
@ -212,4 +198,10 @@
<data name="1035" xml:space="preserve"> <data name="1035" xml:space="preserve">
<value>A project template for creating a Desktop app based on the Windows UI Library (WinUI 3) along with a MSIX package for side-loading or distribution via the Microsoft Store.</value> <value>A project template for creating a Desktop app based on the Windows UI Library (WinUI 3) along with a MSIX package for side-loading or distribution via the Microsoft Store.</value>
</data> </data>
</root> <data name="1036" xml:space="preserve">
<value>Unit Test App (WinUI 3 in Desktop)</value>
</data>
<data name="1037" xml:space="preserve">
<value>A project to create a unit test app for WinUI 3 apps using MSTest.</value>
</data>
</root>

Просмотреть файл

@ -138,6 +138,13 @@
<ReferenceOutputAssembly>false</ReferenceOutputAssembly> <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<IncludeOutputGroupsInVSIX>TemplateProjectOutputGroup%3b</IncludeOutputGroupsInVSIX> <IncludeOutputGroupsInVSIX>TemplateProjectOutputGroup%3b</IncludeOutputGroupsInVSIX>
</ProjectReference> </ProjectReference>
<ProjectReference Include="$(ProjectTemplatesDir)Desktop\CSharp\UnitTestApp\WinUI.Desktop.Cs.UnitTestApp.csproj">
<Project>{45777B9F-9CC1-47D7-BD66-C3C194277902}</Project>
<Name>WinUI.Desktop.Cs.UnitTestApp</Name>
<VSIXSubPath>ProjectTemplates</VSIXSubPath>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<IncludeOutputGroupsInVSIX>TemplateProjectOutputGroup%3b</IncludeOutputGroupsInVSIX>
</ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="$(ExtensionDir)Cs\Common\VSPackage.resx"> <EmbeddedResource Include="$(ExtensionDir)Cs\Common\VSPackage.resx">

Просмотреть файл

@ -12,9 +12,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PublishSingleFile>False</PublishSingleFile> <PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<!-- <PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
See https://github.com/microsoft/CsWinRT/issues/373 <PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
<PublishTrimmed>True</PublishTrimmed>
-->
</PropertyGroup> </PropertyGroup>
</Project> </Project>

Просмотреть файл

@ -12,9 +12,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PublishSingleFile>False</PublishSingleFile> <PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<!-- <PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
See https://github.com/microsoft/CsWinRT/issues/373 <PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
<PublishTrimmed>True</PublishTrimmed>
-->
</PropertyGroup> </PropertyGroup>
</Project> </Project>

Просмотреть файл

@ -12,9 +12,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PublishSingleFile>False</PublishSingleFile> <PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<!-- <PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
See https://github.com/microsoft/CsWinRT/issues/373 <PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
<PublishTrimmed>True</PublishTrimmed>
-->
</PropertyGroup> </PropertyGroup>
</Project> </Project>

Просмотреть файл

@ -12,9 +12,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PublishSingleFile>False</PublishSingleFile> <PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<!-- <PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
See https://github.com/microsoft/CsWinRT/issues/373 <PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
<PublishTrimmed>True</PublishTrimmed>
-->
</PropertyGroup> </PropertyGroup>
</Project> </Project>

Просмотреть файл

@ -12,9 +12,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PublishSingleFile>False</PublishSingleFile> <PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<!-- <PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
See https://github.com/microsoft/CsWinRT/issues/373 <PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
<PublishTrimmed>True</PublishTrimmed>
-->
</PropertyGroup> </PropertyGroup>
</Project> </Project>

Просмотреть файл

@ -12,9 +12,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<PublishSingleFile>False</PublishSingleFile> <PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun> <PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<!-- <PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
See https://github.com/microsoft/CsWinRT/issues/373 <PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
<PublishTrimmed>True</PublishTrimmed>
-->
</PropertyGroup> </PropertyGroup>
</Project> </Project>

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 432 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 5.2 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 637 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 283 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 456 B

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.0 KiB

Просмотреть файл

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap rescap">
<Identity
Name="$guid9$"
Publisher="$XmlEscapedPublisherDistinguishedName$"
Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="$guid9$" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>$projectname$</DisplayName>
<PublisherDisplayName>$XmlEscapedPublisher$</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Applications>
<Application Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="$projectname$"
Description="$projectname$"
BackgroundColor="transparent"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" />
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>

Просмотреть файл

@ -0,0 +1,58 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>$DotNetVersion$-windows10.0.19041.0</TargetFramework>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<RootNamespace>$safeprojectname$</RootNamespace>
<ApplicationManifest>app.manifest</ApplicationManifest>
<Platforms>x86;x64;ARM64</Platforms>
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
<PublishProfile>win10-$(Platform).pubxml</PublishProfile>
<UseWinUI>true</UseWinUI>
<EnableMsixTooling>true</EnableMsixTooling>
</PropertyGroup>
<ItemGroup>
<Page Remove="UnitTestApp.xaml" />
<ApplicationDefinition Include="UnitTestApp.xaml" />
<ProjectCapability Include="TestContainer" />
</ItemGroup>
<ItemGroup>
<Content Include="Assets\SplashScreen.scale-200.png" />
<Content Include="Assets\LockScreenLogo.scale-200.png" />
<Content Include="Assets\Square150x150Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Content Include="Assets\StoreLogo.png" />
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="$WindowsSDKBuildToolsNupkgVersion$" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
<PackageReference Include="Microsoft.TestPlatform.TestHost" Version="17.7.2">
<ExcludeAssets>build</ExcludeAssets>
</PackageReference>
<Manifest Include="$(ApplicationManifest)" />
</ItemGroup>
<!--
Defining the "Msix" ProjectCapability here allows the Single-project MSIX Packaging
Tools extension to be activated for this project even if the Windows App SDK Nuget
package has not yet been restored.
-->
<ItemGroup Condition="'$(DisableMsixProjectCapabilityAddedByProject)'!='true' and '$(EnableMsixTooling)'=='true'">
<ProjectCapability Include="Msix"/>
</ItemGroup>
<!--
Defining the "HasPackageAndPublishMenuAddedByProject" property here allows the Solution
Explorer "Package and Publish" context menu entry to be enabled for this project even if
the Windows App SDK Nuget package has not yet been restored.
-->
<PropertyGroup Condition="'$(DisableHasPackageAndPublishMenuAddedByProject)'!='true' and '$(EnableMsixTooling)'=='true'">
<HasPackageAndPublishMenu>true</HasPackageAndPublishMenu>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Platform>ARM64</Platform>
<RuntimeIdentifier>win10-arm64</RuntimeIdentifier>
<PublishDir>bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\</PublishDir>
<SelfContained>true</SelfContained>
<PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
<PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Platform>x64</Platform>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<PublishDir>bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\</PublishDir>
<SelfContained>true</SelfContained>
<PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
<PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Platform>x86</Platform>
<RuntimeIdentifier>win10-x86</RuntimeIdentifier>
<PublishDir>bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish\</PublishDir>
<SelfContained>true</SelfContained>
<PublishSingleFile>False</PublishSingleFile>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
<PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,10 @@
{
"profiles": {
"$projectname$ (Package)": {
"commandName": "MsixPackage"
},
"$projectname$ (Unpackaged)": {
"commandName": "Project"
}
}
}

Просмотреть файл

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Application
x:Class="$safeprojectname$.UnitTestApp"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:$safeprojectname$">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<!-- Other merged dictionaries here -->
</ResourceDictionary.MergedDictionaries>
<!-- Other app resources here -->
</ResourceDictionary>
</Application.Resources>
</Application>

Просмотреть файл

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Xaml.Shapes;
using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace $safeprojectname$
{
/// <summary>
/// Provides application-specific behavior to supplement the default Application class.
/// </summary>
public partial class UnitTestApp : Application
{
/// <summary>
/// Initializes the singleton application object. This is the first line of authored code
/// executed, and as such is the logical equivalent of main() or WinMain().
/// </summary>
public UnitTestApp()
{
this.InitializeComponent();
}
/// <summary>
/// Invoked when the application is launched.
/// </summary>
/// <param name="args">Details about the launch request and process.</param>
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();
m_window = new UnitTestAppWindow();
m_window.Activate();
UITestMethodAttribute.DispatcherQueue = m_window.DispatcherQueue;
Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(Environment.CommandLine);
}
private Window m_window;
}
}

Просмотреть файл

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Window
x:Class="$safeprojectname$.UnitTestAppWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:$safeprojectname$"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid>
</Grid>
</Window>

Просмотреть файл

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace $safeprojectname$
{
public sealed partial class UnitTestAppWindow : Window
{
public UnitTestAppWindow()
{
this.InitializeComponent();
}
}
}

Просмотреть файл

@ -0,0 +1,27 @@
using Microsoft.UI.Xaml.Controls;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer;
using System;
using System.Collections.Generic;
using System.Linq;
namespace $safeprojectname$
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
Assert.AreEqual(0, 0);
}
// Use the UITestMethod attribute for tests that need to run on the UI thread.
[UITestMethod]
public void TestMethod2()
{
var grid = new Grid();
Assert.AreEqual(0, grid.MinWidth);
}
}
}

Просмотреть файл

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectGuid>{45777B9F-9CC1-47D7-BD66-C3C194277902}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>WinUI.Desktop.Cs.UnitTestApp</RootNamespace>
<AssemblyName>WinUI.Desktop.Cs.UnitTestApp</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<GeneratePkgDefFile>false</GeneratePkgDefFile>
<IncludeAssemblyInVSIXContainer>false</IncludeAssemblyInVSIXContainer>
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
<IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment>
<CreateVsixContainer>false</CreateVsixContainer>
<DeployExtension>false</DeployExtension>
<DeployVSTemplates>false</DeployVSTemplates>
<CopyVsixManifestToOutput>false</CopyVsixManifestToOutput>
<CopyBuildOutputToOutputDirectory>false</CopyBuildOutputToOutputDirectory>
<CopyOutputSymbolsToOutputDirectory>false</CopyOutputSymbolsToOutputDirectory>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.CoreUtility">
<Private>False</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Content Include="app.manifest" />
<Content Include="Package-managed.appxmanifest">
<SubType>Designer</SubType>
</Content>
<Content Include="Properties\PublishProfiles\WinArm64.pubxml" />
<Content Include="Properties\PublishProfiles\WinX64.pubxml" />
<Content Include="Properties\PublishProfiles\WinX86.pubxml" />
<Content Include="ProjectTemplate.csproj" />
<Content Include="UnitTestApp.xaml">
<SubType>Designer</SubType>
</Content>
<Content Include="UnitTestAppWindow.xaml">
<SubType>Designer</SubType>
</Content>
<Content Include="UnitTestApp.xaml.cs" />
<Content Include="UnitTestAppWindow.xaml.cs" />
<Content Include="UnitTests.cs" />
<Content Include="Assets\LockScreenLogo.scale-200.png" />
<Content Include="Assets\SplashScreen.scale-200.png" />
<Content Include="Assets\Square150x150Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Content Include="Assets\StoreLogo.png" />
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
<Content Include="WinUI.Desktop.Cs.UnitTestApp.ico" />
<Content Include="WinUI.Desktop.Cs.UnitTestApp.png" />
<VSTemplate Include="WinUI.Desktop.Cs.UnitTestApp.vstemplate" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
</Project>

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 151 KiB

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 686 KiB

Просмотреть файл

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name ID="1036" Package="FIXME-PACKAGEGUID" />
<Description ID="1037" Package="FIXME-PACKAGEGUID" />
<Icon>WinUI.Desktop.Cs.UnitTestApp.ico</Icon>
<TemplateID>Microsoft.WinUI.Desktop.Cs.UnitTestApp</TemplateID>
<TemplateGroupID>WinRT-Managed</TemplateGroupID>
<ProjectType>CSharp</ProjectType>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>App</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<NumberOfParentCategoriesToRollUp>2</NumberOfParentCategoriesToRollUp>
<TargetPlatformName>Windows</TargetPlatformName>
<CreateInPlace>true</CreateInPlace>
<PreviewImage>WinUI.Desktop.Cs.UnitTestApp.png</PreviewImage>
<PromptForSaveOnCreation>true</PromptForSaveOnCreation>
<LanguageTag>csharp</LanguageTag>
<LanguageTag>XAML</LanguageTag>
<PlatformTag>windows</PlatformTag>
<ProjectTypeTag>desktop</ProjectTypeTag>
<ProjectTypeTag>winui</ProjectTypeTag>
<ProjectTypeTag>test</ProjectTypeTag>
</TemplateData>
<TemplateContent PreferedSolutionConfiguration="Debug|x86">
<CustomParameters>
<CustomParameter Name="$WindowsAppSDKNupkgVersion$" Value="FIXME-Verify-Directory.Build.Targets-XmlPoke-Queries" />
<CustomParameter Name="$WindowsSDKBuildToolsNupkgVersion$" Value="FIXME-Verify-Directory.Build.Targets-XmlPoke-Queries" />
<CustomParameter Name="$DotNetVersion$" Value="FIXME-Verify-Directory.Build.Targets-XmlPoke-Queries"/>
</CustomParameters>
<Project File="ProjectTemplate.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="launchSettings.json">Properties\launchSettings.json</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="win10-arm64.pubxml">Properties\PublishProfiles\win10-arm64.pubxml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="win10-x64.pubxml">Properties\PublishProfiles\win10-x64.pubxml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="win10-x86.pubxml">Properties\PublishProfiles\win10-x86.pubxml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="app.manifest">app.manifest</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="UnitTestApp.xaml">UnitTestApp.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="UnitTestApp.xaml.cs">UnitTestApp.xaml.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="UnitTestAppWindow.xaml">UnitTestAppWindow.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="UnitTestAppWindow.xaml.cs">UnitTestAppWindow.xaml.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="UnitTests.cs">UnitTests.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Package.appxmanifest">Package-managed.appxmanifest</ProjectItem>
<Folder Name="Assets" TargetFolderName="Assets">
<ProjectItem ReplaceParameters="false" TargetFileName="SplashScreen.scale-200.png">SplashScreen.scale-200.png</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="LockScreenLogo.scale-200.png">LockScreenLogo.scale-200.png</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="Square150x150Logo.scale-200.png">Square150x150Logo.scale-200.png</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="Square44x44Logo.scale-200.png">Square44x44Logo.scale-200.png</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="Square44x44Logo.targetsize-24_altform-unplated.png">Square44x44Logo.targetsize-24_altform-unplated.png</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="StoreLogo.png">StoreLogo.png</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="Wide310x150Logo.scale-200.png">Wide310x150Logo.scale-200.png</ProjectItem>
</Folder>
</Project>
</TemplateContent>
<WizardExtension>
<!-- Generates Publisher name for appxmanifest -->
<Assembly>Microsoft.VisualStudio.WinRT.TemplateWizards, Version=16.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
<FullClassName>Microsoft.VisualStudio.WinRT.TemplateWizards.UpdatePublisherInManifestWizard</FullClassName>
</WizardExtension>
<WizardExtension>
<Assembly>WindowsAppSDK.Cs.Extension.Dev17, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</Assembly>
<FullClassName>WindowsAppSDK.TemplateUtilities.NuGetPackageInstaller</FullClassName>
</WizardExtension>
<WizardData>
<packages>
<package id="Microsoft.WindowsAppSDK" />
</packages>
</WizardData>
</VSTemplate>

Просмотреть файл

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="$projectname$.app"/>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- The ID below informs the system that this application is compatible with OS features first introduced in Windows 10.
It is necessary to support features in unpackaged applications, for example the custom titlebar implementation.
For more info see https://docs.microsoft.com/windows/apps/windows-app-sdk/use-windows-app-sdk-run-time#declare-os-compatibility-in-your-application-manifest -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
</windowsSettings>
</application>
</assembly>

Просмотреть файл

@ -80,174 +80,98 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsAppSDK.Cs.Extension.
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsAppSDK.Cpp.Extension.Dev17", "Extension\Cpp\Dev17\WindowsAppSDK.Cpp.Extension.Dev17.csproj", "{85E88201-049C-4E42-AE85-DFEEFA7C533C}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsAppSDK.Cpp.Extension.Dev17", "Extension\Cpp\Dev17\WindowsAppSDK.Cpp.Extension.Dev17.csproj", "{85E88201-049C-4E42-AE85-DFEEFA7C533C}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinUI.Desktop.Cs.UnitTestApp", "ProjectTemplates\Desktop\CSharp\UnitTestApp\WinUI.Desktop.Cs.UnitTestApp.csproj", "{45777B9F-9CC1-47D7-BD66-C3C194277902}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Debug|Any CPU.Build.0 = Debug|Any CPU {2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Debug|x64.ActiveCfg = Debug|Any CPU
{2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Debug|x64.Build.0 = Debug|Any CPU
{2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Release|Any CPU.ActiveCfg = Release|Any CPU {2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Release|Any CPU.Build.0 = Release|Any CPU {2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Release|Any CPU.Build.0 = Release|Any CPU
{2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Release|x64.ActiveCfg = Release|x64
{2D9BD73D-5A5E-4113-AEA9-53D059A79A41}.Release|x64.Build.0 = Release|x64
{F19716E6-41A1-4320-A819-288172CE161C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F19716E6-41A1-4320-A819-288172CE161C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F19716E6-41A1-4320-A819-288172CE161C}.Debug|Any CPU.Build.0 = Debug|Any CPU {F19716E6-41A1-4320-A819-288172CE161C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F19716E6-41A1-4320-A819-288172CE161C}.Debug|x64.ActiveCfg = Debug|Any CPU
{F19716E6-41A1-4320-A819-288172CE161C}.Debug|x64.Build.0 = Debug|Any CPU
{F19716E6-41A1-4320-A819-288172CE161C}.Release|Any CPU.ActiveCfg = Release|Any CPU {F19716E6-41A1-4320-A819-288172CE161C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F19716E6-41A1-4320-A819-288172CE161C}.Release|Any CPU.Build.0 = Release|Any CPU {F19716E6-41A1-4320-A819-288172CE161C}.Release|Any CPU.Build.0 = Release|Any CPU
{F19716E6-41A1-4320-A819-288172CE161C}.Release|x64.ActiveCfg = Release|x64
{F19716E6-41A1-4320-A819-288172CE161C}.Release|x64.Build.0 = Release|x64
{1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Debug|Any CPU.Build.0 = Debug|Any CPU {1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Debug|x64.ActiveCfg = Debug|Any CPU
{1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Debug|x64.Build.0 = Debug|Any CPU
{1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Release|Any CPU.ActiveCfg = Release|Any CPU {1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Release|Any CPU.Build.0 = Release|Any CPU {1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Release|Any CPU.Build.0 = Release|Any CPU
{1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Release|x64.ActiveCfg = Release|x64
{1E071372-7CB7-47BC-9BA2-8235F9BB09C8}.Release|x64.Build.0 = Release|x64
{99C19C7C-6472-44F6-89E2-389AB6534F42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {99C19C7C-6472-44F6-89E2-389AB6534F42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99C19C7C-6472-44F6-89E2-389AB6534F42}.Debug|Any CPU.Build.0 = Debug|Any CPU {99C19C7C-6472-44F6-89E2-389AB6534F42}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99C19C7C-6472-44F6-89E2-389AB6534F42}.Debug|x64.ActiveCfg = Debug|Any CPU
{99C19C7C-6472-44F6-89E2-389AB6534F42}.Debug|x64.Build.0 = Debug|Any CPU
{99C19C7C-6472-44F6-89E2-389AB6534F42}.Release|Any CPU.ActiveCfg = Release|Any CPU {99C19C7C-6472-44F6-89E2-389AB6534F42}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99C19C7C-6472-44F6-89E2-389AB6534F42}.Release|Any CPU.Build.0 = Release|Any CPU {99C19C7C-6472-44F6-89E2-389AB6534F42}.Release|Any CPU.Build.0 = Release|Any CPU
{99C19C7C-6472-44F6-89E2-389AB6534F42}.Release|x64.ActiveCfg = Release|x64
{99C19C7C-6472-44F6-89E2-389AB6534F42}.Release|x64.Build.0 = Release|x64
{2C5873D8-E908-41F2-B861-80F95280FBCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2C5873D8-E908-41F2-B861-80F95280FBCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2C5873D8-E908-41F2-B861-80F95280FBCA}.Debug|Any CPU.Build.0 = Debug|Any CPU {2C5873D8-E908-41F2-B861-80F95280FBCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C5873D8-E908-41F2-B861-80F95280FBCA}.Debug|x64.ActiveCfg = Debug|Any CPU
{2C5873D8-E908-41F2-B861-80F95280FBCA}.Debug|x64.Build.0 = Debug|Any CPU
{2C5873D8-E908-41F2-B861-80F95280FBCA}.Release|Any CPU.ActiveCfg = Release|Any CPU {2C5873D8-E908-41F2-B861-80F95280FBCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2C5873D8-E908-41F2-B861-80F95280FBCA}.Release|Any CPU.Build.0 = Release|Any CPU {2C5873D8-E908-41F2-B861-80F95280FBCA}.Release|Any CPU.Build.0 = Release|Any CPU
{2C5873D8-E908-41F2-B861-80F95280FBCA}.Release|x64.ActiveCfg = Release|x64
{2C5873D8-E908-41F2-B861-80F95280FBCA}.Release|x64.Build.0 = Release|x64
{81221BE8-00A2-4841-B62C-9E751C298066}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {81221BE8-00A2-4841-B62C-9E751C298066}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{81221BE8-00A2-4841-B62C-9E751C298066}.Debug|Any CPU.Build.0 = Debug|Any CPU {81221BE8-00A2-4841-B62C-9E751C298066}.Debug|Any CPU.Build.0 = Debug|Any CPU
{81221BE8-00A2-4841-B62C-9E751C298066}.Debug|x64.ActiveCfg = Debug|Any CPU
{81221BE8-00A2-4841-B62C-9E751C298066}.Debug|x64.Build.0 = Debug|Any CPU
{81221BE8-00A2-4841-B62C-9E751C298066}.Release|Any CPU.ActiveCfg = Release|Any CPU {81221BE8-00A2-4841-B62C-9E751C298066}.Release|Any CPU.ActiveCfg = Release|Any CPU
{81221BE8-00A2-4841-B62C-9E751C298066}.Release|Any CPU.Build.0 = Release|Any CPU {81221BE8-00A2-4841-B62C-9E751C298066}.Release|Any CPU.Build.0 = Release|Any CPU
{81221BE8-00A2-4841-B62C-9E751C298066}.Release|x64.ActiveCfg = Release|x64
{81221BE8-00A2-4841-B62C-9E751C298066}.Release|x64.Build.0 = Release|x64
{761212D7-B5D2-4629-98C8-88F6A24982BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {761212D7-B5D2-4629-98C8-88F6A24982BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{761212D7-B5D2-4629-98C8-88F6A24982BB}.Debug|Any CPU.Build.0 = Debug|Any CPU {761212D7-B5D2-4629-98C8-88F6A24982BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{761212D7-B5D2-4629-98C8-88F6A24982BB}.Debug|x64.ActiveCfg = Debug|Any CPU
{761212D7-B5D2-4629-98C8-88F6A24982BB}.Debug|x64.Build.0 = Debug|Any CPU
{761212D7-B5D2-4629-98C8-88F6A24982BB}.Release|Any CPU.ActiveCfg = Release|Any CPU {761212D7-B5D2-4629-98C8-88F6A24982BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{761212D7-B5D2-4629-98C8-88F6A24982BB}.Release|Any CPU.Build.0 = Release|Any CPU {761212D7-B5D2-4629-98C8-88F6A24982BB}.Release|Any CPU.Build.0 = Release|Any CPU
{761212D7-B5D2-4629-98C8-88F6A24982BB}.Release|x64.ActiveCfg = Release|x64
{761212D7-B5D2-4629-98C8-88F6A24982BB}.Release|x64.Build.0 = Release|x64
{9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Debug|Any CPU.Build.0 = Debug|Any CPU {9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Debug|x64.ActiveCfg = Debug|Any CPU
{9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Debug|x64.Build.0 = Debug|Any CPU
{9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Release|Any CPU.ActiveCfg = Release|Any CPU {9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Release|Any CPU.Build.0 = Release|Any CPU {9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Release|Any CPU.Build.0 = Release|Any CPU
{9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Release|x64.ActiveCfg = Release|x64
{9DE11F03-73A8-4DCA-88B3-1623A718DFD1}.Release|x64.Build.0 = Release|x64
{3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Debug|Any CPU.Build.0 = Debug|Any CPU {3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Debug|x64.ActiveCfg = Debug|Any CPU
{3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Debug|x64.Build.0 = Debug|Any CPU
{3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Release|Any CPU.ActiveCfg = Release|Any CPU {3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Release|Any CPU.Build.0 = Release|Any CPU {3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Release|Any CPU.Build.0 = Release|Any CPU
{3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Release|x64.ActiveCfg = Release|x64
{3F3F0E7F-594F-4006-A3EF-5E5624EF147C}.Release|x64.Build.0 = Release|x64
{C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Debug|Any CPU.Build.0 = Debug|Any CPU {C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Debug|x64.ActiveCfg = Debug|Any CPU
{C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Debug|x64.Build.0 = Debug|Any CPU
{C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Release|Any CPU.ActiveCfg = Release|Any CPU {C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Release|Any CPU.Build.0 = Release|Any CPU {C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Release|Any CPU.Build.0 = Release|Any CPU
{C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Release|x64.ActiveCfg = Release|x64
{C8DA9E71-2F7F-4E7C-8DC7-766FF0F67196}.Release|x64.Build.0 = Release|x64
{30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Debug|Any CPU.Build.0 = Debug|Any CPU {30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Debug|x64.ActiveCfg = Debug|Any CPU
{30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Debug|x64.Build.0 = Debug|Any CPU
{30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Release|Any CPU.ActiveCfg = Release|Any CPU {30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Release|Any CPU.Build.0 = Release|Any CPU {30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Release|Any CPU.Build.0 = Release|Any CPU
{30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Release|x64.ActiveCfg = Release|x64
{30AB0000-148D-48BE-85DB-70D9F7BDFEC5}.Release|x64.Build.0 = Release|x64
{17320A27-C039-4973-95AA-ACB3EFA1D47E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {17320A27-C039-4973-95AA-ACB3EFA1D47E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17320A27-C039-4973-95AA-ACB3EFA1D47E}.Debug|Any CPU.Build.0 = Debug|Any CPU {17320A27-C039-4973-95AA-ACB3EFA1D47E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17320A27-C039-4973-95AA-ACB3EFA1D47E}.Debug|x64.ActiveCfg = Debug|Any CPU
{17320A27-C039-4973-95AA-ACB3EFA1D47E}.Debug|x64.Build.0 = Debug|Any CPU
{17320A27-C039-4973-95AA-ACB3EFA1D47E}.Release|Any CPU.ActiveCfg = Release|Any CPU {17320A27-C039-4973-95AA-ACB3EFA1D47E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17320A27-C039-4973-95AA-ACB3EFA1D47E}.Release|Any CPU.Build.0 = Release|Any CPU {17320A27-C039-4973-95AA-ACB3EFA1D47E}.Release|Any CPU.Build.0 = Release|Any CPU
{17320A27-C039-4973-95AA-ACB3EFA1D47E}.Release|x64.ActiveCfg = Release|x64
{17320A27-C039-4973-95AA-ACB3EFA1D47E}.Release|x64.Build.0 = Release|x64
{33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Debug|Any CPU.Build.0 = Debug|Any CPU {33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Debug|x64.ActiveCfg = Debug|Any CPU
{33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Debug|x64.Build.0 = Debug|Any CPU
{33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Release|Any CPU.ActiveCfg = Release|Any CPU {33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Release|Any CPU.Build.0 = Release|Any CPU {33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Release|Any CPU.Build.0 = Release|Any CPU
{33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Release|x64.ActiveCfg = Release|x64
{33783A04-0CB4-4CE5-A9FE-82E2E7E06D1F}.Release|x64.Build.0 = Release|x64
{938DD23E-270E-488B-AC4C-CA68A545A8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {938DD23E-270E-488B-AC4C-CA68A545A8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{938DD23E-270E-488B-AC4C-CA68A545A8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU {938DD23E-270E-488B-AC4C-CA68A545A8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{938DD23E-270E-488B-AC4C-CA68A545A8F2}.Debug|x64.ActiveCfg = Debug|Any CPU
{938DD23E-270E-488B-AC4C-CA68A545A8F2}.Debug|x64.Build.0 = Debug|Any CPU
{938DD23E-270E-488B-AC4C-CA68A545A8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU {938DD23E-270E-488B-AC4C-CA68A545A8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{938DD23E-270E-488B-AC4C-CA68A545A8F2}.Release|Any CPU.Build.0 = Release|Any CPU {938DD23E-270E-488B-AC4C-CA68A545A8F2}.Release|Any CPU.Build.0 = Release|Any CPU
{938DD23E-270E-488B-AC4C-CA68A545A8F2}.Release|x64.ActiveCfg = Release|x64
{938DD23E-270E-488B-AC4C-CA68A545A8F2}.Release|x64.Build.0 = Release|x64
{80195619-D4CF-4287-BA59-08077486BE1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {80195619-D4CF-4287-BA59-08077486BE1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80195619-D4CF-4287-BA59-08077486BE1C}.Debug|Any CPU.Build.0 = Debug|Any CPU {80195619-D4CF-4287-BA59-08077486BE1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80195619-D4CF-4287-BA59-08077486BE1C}.Debug|x64.ActiveCfg = Debug|Any CPU
{80195619-D4CF-4287-BA59-08077486BE1C}.Debug|x64.Build.0 = Debug|Any CPU
{80195619-D4CF-4287-BA59-08077486BE1C}.Release|Any CPU.ActiveCfg = Release|Any CPU {80195619-D4CF-4287-BA59-08077486BE1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80195619-D4CF-4287-BA59-08077486BE1C}.Release|Any CPU.Build.0 = Release|Any CPU {80195619-D4CF-4287-BA59-08077486BE1C}.Release|Any CPU.Build.0 = Release|Any CPU
{80195619-D4CF-4287-BA59-08077486BE1C}.Release|x64.ActiveCfg = Release|x64
{80195619-D4CF-4287-BA59-08077486BE1C}.Release|x64.Build.0 = Release|x64
{FD33E535-127D-48AC-8788-0F61FA2A251C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FD33E535-127D-48AC-8788-0F61FA2A251C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD33E535-127D-48AC-8788-0F61FA2A251C}.Debug|Any CPU.Build.0 = Debug|Any CPU {FD33E535-127D-48AC-8788-0F61FA2A251C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD33E535-127D-48AC-8788-0F61FA2A251C}.Debug|x64.ActiveCfg = Debug|Any CPU
{FD33E535-127D-48AC-8788-0F61FA2A251C}.Debug|x64.Build.0 = Debug|Any CPU
{FD33E535-127D-48AC-8788-0F61FA2A251C}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD33E535-127D-48AC-8788-0F61FA2A251C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FD33E535-127D-48AC-8788-0F61FA2A251C}.Release|Any CPU.Build.0 = Release|Any CPU {FD33E535-127D-48AC-8788-0F61FA2A251C}.Release|Any CPU.Build.0 = Release|Any CPU
{FD33E535-127D-48AC-8788-0F61FA2A251C}.Release|x64.ActiveCfg = Release|x64
{FD33E535-127D-48AC-8788-0F61FA2A251C}.Release|x64.Build.0 = Release|x64
{D9C038B7-6A62-4945-A030-4AC7597F53CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D9C038B7-6A62-4945-A030-4AC7597F53CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D9C038B7-6A62-4945-A030-4AC7597F53CA}.Debug|Any CPU.Build.0 = Debug|Any CPU {D9C038B7-6A62-4945-A030-4AC7597F53CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D9C038B7-6A62-4945-A030-4AC7597F53CA}.Debug|x64.ActiveCfg = Debug|Any CPU
{D9C038B7-6A62-4945-A030-4AC7597F53CA}.Debug|x64.Build.0 = Debug|Any CPU
{D9C038B7-6A62-4945-A030-4AC7597F53CA}.Release|Any CPU.ActiveCfg = Release|Any CPU {D9C038B7-6A62-4945-A030-4AC7597F53CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D9C038B7-6A62-4945-A030-4AC7597F53CA}.Release|Any CPU.Build.0 = Release|Any CPU {D9C038B7-6A62-4945-A030-4AC7597F53CA}.Release|Any CPU.Build.0 = Release|Any CPU
{D9C038B7-6A62-4945-A030-4AC7597F53CA}.Release|x64.ActiveCfg = Release|Any CPU
{D9C038B7-6A62-4945-A030-4AC7597F53CA}.Release|x64.Build.0 = Release|Any CPU
{E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Debug|Any CPU.Build.0 = Debug|Any CPU {E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Debug|x64.ActiveCfg = Debug|Any CPU
{E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Debug|x64.Build.0 = Debug|Any CPU
{E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Release|Any CPU.ActiveCfg = Release|Any CPU {E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Release|Any CPU.Build.0 = Release|Any CPU {E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Release|Any CPU.Build.0 = Release|Any CPU
{E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Release|x64.ActiveCfg = Release|Any CPU
{E54D1AD4-E935-479D-8A69-FC073E4DB33D}.Release|x64.Build.0 = Release|Any CPU
{E700DF09-42A9-4AC7-9855-400029FBFDBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E700DF09-42A9-4AC7-9855-400029FBFDBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E700DF09-42A9-4AC7-9855-400029FBFDBE}.Debug|Any CPU.Build.0 = Debug|Any CPU {E700DF09-42A9-4AC7-9855-400029FBFDBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E700DF09-42A9-4AC7-9855-400029FBFDBE}.Debug|x64.ActiveCfg = Debug|Any CPU
{E700DF09-42A9-4AC7-9855-400029FBFDBE}.Debug|x64.Build.0 = Debug|Any CPU
{E700DF09-42A9-4AC7-9855-400029FBFDBE}.Release|Any CPU.ActiveCfg = Release|Any CPU {E700DF09-42A9-4AC7-9855-400029FBFDBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E700DF09-42A9-4AC7-9855-400029FBFDBE}.Release|Any CPU.Build.0 = Release|Any CPU {E700DF09-42A9-4AC7-9855-400029FBFDBE}.Release|Any CPU.Build.0 = Release|Any CPU
{E700DF09-42A9-4AC7-9855-400029FBFDBE}.Release|x64.ActiveCfg = Release|Any CPU
{E700DF09-42A9-4AC7-9855-400029FBFDBE}.Release|x64.Build.0 = Release|Any CPU
{85E88201-049C-4E42-AE85-DFEEFA7C533C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {85E88201-049C-4E42-AE85-DFEEFA7C533C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{85E88201-049C-4E42-AE85-DFEEFA7C533C}.Debug|Any CPU.Build.0 = Debug|Any CPU {85E88201-049C-4E42-AE85-DFEEFA7C533C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{85E88201-049C-4E42-AE85-DFEEFA7C533C}.Debug|x64.ActiveCfg = Debug|Any CPU
{85E88201-049C-4E42-AE85-DFEEFA7C533C}.Debug|x64.Build.0 = Debug|Any CPU
{85E88201-049C-4E42-AE85-DFEEFA7C533C}.Release|Any CPU.ActiveCfg = Release|Any CPU {85E88201-049C-4E42-AE85-DFEEFA7C533C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{85E88201-049C-4E42-AE85-DFEEFA7C533C}.Release|Any CPU.Build.0 = Release|Any CPU {85E88201-049C-4E42-AE85-DFEEFA7C533C}.Release|Any CPU.Build.0 = Release|Any CPU
{85E88201-049C-4E42-AE85-DFEEFA7C533C}.Release|x64.ActiveCfg = Release|Any CPU {45777B9F-9CC1-47D7-BD66-C3C194277902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{85E88201-049C-4E42-AE85-DFEEFA7C533C}.Release|x64.Build.0 = Release|Any CPU {45777B9F-9CC1-47D7-BD66-C3C194277902}.Debug|Any CPU.Build.0 = Debug|Any CPU
{45777B9F-9CC1-47D7-BD66-C3C194277902}.Release|Any CPU.ActiveCfg = Release|Any CPU
{45777B9F-9CC1-47D7-BD66-C3C194277902}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -282,6 +206,7 @@ Global
{FD33E535-127D-48AC-8788-0F61FA2A251C} = {4D266288-D49F-46D4-90E0-667E81D6A433} {FD33E535-127D-48AC-8788-0F61FA2A251C} = {4D266288-D49F-46D4-90E0-667E81D6A433}
{D9C038B7-6A62-4945-A030-4AC7597F53CA} = {EC44EE95-8EC9-4EE5-A8A6-E6BE2F32C843} {D9C038B7-6A62-4945-A030-4AC7597F53CA} = {EC44EE95-8EC9-4EE5-A8A6-E6BE2F32C843}
{E54D1AD4-E935-479D-8A69-FC073E4DB33D} = {1A8A7481-2108-496B-802D-39F9C08D86F3} {E54D1AD4-E935-479D-8A69-FC073E4DB33D} = {1A8A7481-2108-496B-802D-39F9C08D86F3}
{45777B9F-9CC1-47D7-BD66-C3C194277902} = {EC44EE95-8EC9-4EE5-A8A6-E6BE2F32C843}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A417E325-71BD-4C29-94F8-F21FB3F5C392} SolutionGuid = {A417E325-71BD-4C29-94F8-F21FB3F5C392}