Compare commits

...

10 Commits

Author SHA1 Message Date
Dustin L. Howett
dedbffe84d more horrors from beyond the edge of the universe 2024-03-12 15:48:05 -05:00
Dustin L. Howett
5aa26349fa remove ARM build configs 2024-03-12 14:09:54 -05:00
Dustin L. Howett
2dbc5f09b5 Merge remote-tracking branch 'origin/main' into dev/duhowett/interface-projects 2024-03-12 14:09:25 -05:00
Dustin L. Howett
7ba92193a9 Merge remote-tracking branch 'origin/main' into dev/duhowett/interface-projects 2024-02-19 13:36:39 -06:00
Dustin L. Howett
6524eb7012 Merge remote-tracking branch 'origin/main' into dev/duhowett/interface-projects 2023-11-01 22:15:23 -05:00
Dustin L. Howett
22a304454b Merge remote-tracking branch 'origin/main' into dev/duhowett/interface-projects 2023-08-20 23:17:37 -05:00
Dustin L. Howett
ce907ce4cd Merge remote-tracking branch 'origin/main' into dev/duhowett/interface-projects 2023-04-02 14:23:04 -05:00
Dustin Howett
2eb4b2876c Move M.T.Core's *interfaces* to a separate project 2023-02-10 14:00:24 -06:00
Dustin Howett
0420bb21e6 Move M.T.TerminalConnection's *interfaces* to a separate project
This leverages Microsoft.Windows.MidlRT to have a project that only
produces a .winmd file, plus a custom MSBuild target that allows for the
TerminalConnection *DLL* project to statically "link" and re-emit the
interface WinMD as its own.
2023-02-10 13:57:46 -06:00
Dustin Howett
8594e9d751 nuget: add M.W.MidlRT, governed by TerminalMidlRT 2023-02-09 17:05:20 -06:00
29 changed files with 278 additions and 134 deletions

View File

@@ -410,6 +410,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MidiAudio", "src\audio\midi
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TerminalStress", "src\tools\TerminalStress\TerminalStress.csproj", "{613CCB57-5FA9-48EF-80D0-6B1E319E20C4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interfaces", "Interfaces", "{6F4CC67D-6FC5-435E-885D-9FC3624BDF2F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Terminal.Connection.Interfaces", "src\cascadia\ITerminalConnection\ITerminalConnection.vcxproj", "{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Terminal.Core.Interfaces", "src\cascadia\ITerminalCore\ITerminalCore.vcxproj", "{40503EDC-E3E4-46AB-BC26-D293B956CAE8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RenderingTests", "src\tools\RenderingTests\RenderingTests.vcxproj", "{37C995E0-2349-4154-8E77-4A52C0C7F46D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UIHelpers", "src\cascadia\UIHelpers\UIHelpers.vcxproj", "{6515F03F-E56D-4DB4-B23D-AC4FB80DB36F}"
@@ -2342,6 +2348,56 @@ Global
{613CCB57-5FA9-48EF-80D0-6B1E319E20C4}.Release|x64.ActiveCfg = Release|Any CPU
{613CCB57-5FA9-48EF-80D0-6B1E319E20C4}.Release|x64.Build.0 = Release|Any CPU
{613CCB57-5FA9-48EF-80D0-6B1E319E20C4}.Release|x86.ActiveCfg = Release|Any CPU
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.AuditMode|x64.ActiveCfg = AuditMode|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.AuditMode|x64.Build.0 = AuditMode|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.AuditMode|x86.Build.0 = AuditMode|Win32
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Debug|Any CPU.ActiveCfg = Debug|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Debug|ARM64.ActiveCfg = Debug|ARM64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Debug|ARM64.Build.0 = Debug|ARM64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Debug|x64.ActiveCfg = Debug|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Debug|x64.Build.0 = Debug|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Debug|x86.ActiveCfg = Debug|Win32
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Debug|x86.Build.0 = Debug|Win32
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Fuzzing|x64.ActiveCfg = Fuzzing|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Release|Any CPU.ActiveCfg = Release|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Release|ARM64.ActiveCfg = Release|ARM64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Release|ARM64.Build.0 = Release|ARM64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Release|x64.ActiveCfg = Release|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Release|x64.Build.0 = Release|x64
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Release|x86.ActiveCfg = Release|Win32
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}.Release|x86.Build.0 = Release|Win32
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.AuditMode|x64.ActiveCfg = AuditMode|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.AuditMode|x64.Build.0 = AuditMode|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.AuditMode|x86.Build.0 = AuditMode|Win32
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Debug|Any CPU.ActiveCfg = Debug|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Debug|ARM64.Build.0 = Debug|ARM64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Debug|x64.ActiveCfg = Debug|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Debug|x64.Build.0 = Debug|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Debug|x86.ActiveCfg = Debug|Win32
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Debug|x86.Build.0 = Debug|Win32
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Fuzzing|x64.ActiveCfg = Fuzzing|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Release|Any CPU.ActiveCfg = Release|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Release|ARM64.ActiveCfg = Release|ARM64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Release|ARM64.Build.0 = Release|ARM64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Release|x64.ActiveCfg = Release|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Release|x64.Build.0 = Release|x64
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Release|x86.ActiveCfg = Release|Win32
{40503EDC-E3E4-46AB-BC26-D293B956CAE8}.Release|x86.Build.0 = Release|Win32
{37C995E0-2349-4154-8E77-4A52C0C7F46D}.AuditMode|Any CPU.ActiveCfg = AuditMode|Win32
{37C995E0-2349-4154-8E77-4A52C0C7F46D}.AuditMode|ARM64.ActiveCfg = Release|ARM64
{37C995E0-2349-4154-8E77-4A52C0C7F46D}.AuditMode|x64.ActiveCfg = Release|x64
@@ -2535,6 +2591,9 @@ Global
{40BD8415-DD93-4200-8D82-498DDDC08CC8} = {89CDCC5C-9F53-4054-97A4-639D99F169CD}
{3C67784E-1453-49C2-9660-483E2CC7F7AD} = {40BD8415-DD93-4200-8D82-498DDDC08CC8}
{613CCB57-5FA9-48EF-80D0-6B1E319E20C4} = {A10C4720-DCA4-4640-9749-67F4314F527C}
{6F4CC67D-6FC5-435E-885D-9FC3624BDF2F} = {59840756-302F-44DF-AA47-441A9D673202}
{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17} = {6F4CC67D-6FC5-435E-885D-9FC3624BDF2F}
{40503EDC-E3E4-46AB-BC26-D293B956CAE8} = {6F4CC67D-6FC5-435E-885D-9FC3624BDF2F}
{37C995E0-2349-4154-8E77-4A52C0C7F46D} = {A10C4720-DCA4-4640-9749-67F4314F527C}
{6515F03F-E56D-4DB4-B23D-AC4FB80DB36F} = {61901E80-E97D-4D61-A9BB-E8F2FDA8B40C}
{2C836962-9543-4CE5-B834-D28E1F124B66} = {A10C4720-DCA4-4640-9749-67F4314F527C}

View File

@@ -0,0 +1,49 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OpenConsoleGetUtilityProjectWinMDReferencesDependsOn></OpenConsoleGetUtilityProjectWinMDReferencesDependsOn>
<OpenConsoleGetUtilityProjectWinMDReferencesDependsOn Condition="'$(TerminalCppWinRT)'=='true'">
GetCppWinRTProjectWinMDReferences;
$(OpenConsoleGetUtilityProjectWinMDReferencesDependsOn)
</OpenConsoleGetUtilityProjectWinMDReferencesDependsOn>
<OpenConsoleGetUtilityProjectWinMDReferencesDependsOn Condition="'$(TerminalMidlRT)'=='true'">
GetMidlRTProjectWinMDReferences;
$(OpenConsoleGetUtilityProjectWinMDReferencesDependsOn)
</OpenConsoleGetUtilityProjectWinMDReferencesDependsOn>
<CppWinRTResolveReferencesDependsOn>$(CppWinRTResolveReferencesDependsOn);OpenConsoleSwitchUpMergeInputs;</CppWinRTResolveReferencesDependsOn>
<MidlRTResolveReferencesDependsOn>$(MidlRTResolveReferencesDependsOn);OpenConsoleSwitchUpMergeInputs;</MidlRTResolveReferencesDependsOn>
</PropertyGroup>
<Target Name="OpenConsoleGetUtilityProjectWinMDReferences"
DependsOnTargets="ResolveProjectReferences;$(OpenConsoleGetUtilityProjectWinMDReferencesDependsOn)"
Returns="@(OpenConsoleUtilityProjectWinMDReferences)">
<ItemGroup>
<_OpenConsoleUtilityProjectReferences Remove="@(_OpenConsoleUtilityProjectReferences)"/>
<_OpenConsoleUtilityProjectReferences Include="@(_ResolvedProjectReferencePaths)"
Condition= "'%(_ResolvedProjectReferencePaths.ProjectType)'=='Utility' AND
'%(_ResolvedProjectReferencePaths.WinMDFile)' == 'true' AND
'%(_ResolvedProjectReferencePaths.OpenConsoleImplementInterface)' == 'true'"/>
</ItemGroup>
<ItemGroup>
<OpenConsoleUtilityProjectWinMDReferences Remove="@(OpenConsoleUtilityProjectWinMDReferences)" />
<OpenConsoleUtilityProjectWinMDReferences Include="@(_OpenConsoleUtilityProjectReferences)">
<WinMDPath>%(FullPath)</WinMDPath>
</OpenConsoleUtilityProjectWinMDReferences>
</ItemGroup>
</Target>
<!-- Calculates the input files and metadata directories to be passed to MdMerge -->
<Target Name="OpenConsoleSwitchUpMergeInputs"
DependsOnTargets="OpenConsoleGetUtilityProjectWinMDReferences">
<ItemGroup>
<!-- Utility projects should be consumed statically, not as dynamic references. -->
<CppWinRTDynamicProjectWinMDReferences Remove="@(OpenConsoleUtilityProjectWinMDReferences)" />
<CppWinRTStaticProjectWinMDReferences Include="@(OpenConsoleUtilityProjectWinMDReferences)" />
<MidlRTDynamicProjectWinMDReferences Remove="@(OpenConsoleUtilityProjectWinMDReferences)" />
<MidlRTStaticProjectWinMDReferences Include="@(OpenConsoleUtilityProjectWinMDReferences)" />
</ItemGroup>
</Target>
</Project>

View File

@@ -10,6 +10,7 @@
<package id="Microsoft.UI.Xaml" version="2.8.4" targetFramework="native" />
<package id="Microsoft.Web.WebView2" version="1.0.1661.34" targetFramework="native" />
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.240122.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.Windows.MidlRT" version="2.0.200924.1" targetFramework="native" />
<!-- Managed packages -->
<package id="Appium.WebDriver" version="3.0.0.2" targetFramework="net45" />

View File

@@ -30,4 +30,15 @@ namespace Microsoft.Terminal.TerminalConnection
Guid SessionId { get; };
ConnectionState State { get; };
};
interface ITerminalConnectionWithWindow
{
void ShowHide(Boolean show);
void ReparentWindow(UInt64 newParent);
};
interface ITerminalConnectionWithBufferState
{
void ClearBuffer();
};
}

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<ProjectName>Microsoft.Terminal.Connection.Interfaces</ProjectName>
<TargetName>Microsoft.Terminal.Connection.Interfaces</TargetName>
<ConfigurationType>Utility</ConfigurationType>
<RootNamespace>Microsoft.Terminal.TerminalConnection</RootNamespace>
<TerminalMidlRT>true</TerminalMidlRT>
<!-- Force our output directory -->
<OpenConsoleCppWinRTProject>true</OpenConsoleCppWinRTProject>
</PropertyGroup>
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
<Import Project="$(OpenConsoleDir)src\common.nugetversions.props" />
<Import Project="$(OpenConsoleDir)src\common.build.pre.props" />
<ItemGroup>
<Midl Include="ITerminalConnection.idl" />
</ItemGroup>
<!-- Careful reordering these. Some default props (contained in these files) are order sensitive. -->
<Import Project="$(OpenConsoleDir)src\common.build.post.props" />
<Import Project="$(OpenConsoleDir)src\common.nugetversions.targets" />
</Project>

View File

@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
import "..\ICoreAppearance.idl";
import "ICoreAppearance.idl";
namespace Microsoft.Terminal.Core
{

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{40503EDC-E3E4-46AB-BC26-D293B956CAE8}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<ProjectName>Microsoft.Terminal.Core.Interfaces</ProjectName>
<TargetName>Microsoft.Terminal.Core.Interfaces</TargetName>
<ConfigurationType>Utility</ConfigurationType>
<RootNamespace>Microsoft.Terminal.Core</RootNamespace>
<TerminalMidlRT>true</TerminalMidlRT>
<!-- Force our output directory -->
<OpenConsoleCppWinRTProject>true</OpenConsoleCppWinRTProject>
</PropertyGroup>
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
<Import Project="$(OpenConsoleDir)src\common.nugetversions.props" />
<Import Project="$(OpenConsoleDir)src\common.build.pre.props" />
<ItemGroup>
<Midl Include="ICoreSettings.idl" />
<Midl Include="ICoreAppearance.idl" />
</ItemGroup>
<!-- Careful reordering these. Some default props (contained in these files) are order sensitive. -->
<Import Project="$(OpenConsoleDir)src\common.build.post.props" />
<Import Project="$(OpenConsoleDir)src\common.nugetversions.targets" />
</Project>

View File

@@ -417,12 +417,7 @@
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<!-- TODO VALIDATE DELETION -->
<Reference Include="$(WindowsSDK_MetadataPathVersioned)\Windows.UI.Xaml.Hosting.HostingContract\*\*.winmd">
<WinMDFile>true</WinMDFile>
<CopyLocal>false</CopyLocal>

View File

@@ -68,6 +68,10 @@
include Settings and Connection, since Control will include them for us) -->
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalConnection\TerminalConnection.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\dll\TerminalControl.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalCore\ITerminalCore.vcxproj">
<Private>false</Private>
<Project>{40503EDC-E3E4-46AB-BC26-D293B956CAE8}</Project>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettingsEditor\Microsoft.Terminal.Settings.Editor.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettingsModel\dll\Microsoft.Terminal.Settings.Model.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\UIHelpers\UIHelpers.vcxproj">
@@ -83,18 +87,6 @@
</ItemGroup>
<ItemGroup>
<!-- Manually include the Terminal.Core winmd, so we know where those types
are defined. We don't want to include it as a project reference, because
that would make us link that lib into our own binary. -->
<Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
</ItemGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(OpenConsoleDir)\dep\jsoncpp\json;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>

View File

@@ -65,14 +65,6 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
return AzureConnectionType;
}
// This function exists because the clientID only gets added by the release pipelines
// and is not available on local builds, so we want to be able to make sure we don't
// try to make an Azure connection if its a local build
bool AzureConnection::IsAzureConnectionAvailable() noexcept
{
return (AzureClientID != L"0");
}
void AzureConnection::Initialize(const Windows::Foundation::Collections::ValueSet& settings)
{
if (settings)

View File

@@ -16,7 +16,6 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
struct AzureConnection : AzureConnectionT<AzureConnection>, BaseTerminalConnection<AzureConnection>
{
static winrt::guid ConnectionType() noexcept;
static bool IsAzureConnectionAvailable() noexcept;
AzureConnection() = default;
void Initialize(const Windows::Foundation::Collections::ValueSet& settings);

View File

@@ -1,14 +1,11 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
import "ITerminalConnection.idl";
namespace Microsoft.Terminal.TerminalConnection
{
[default_interface] runtimeclass AzureConnection : ITerminalConnection
{
static Guid ConnectionType { get; };
static Boolean IsAzureConnectionAvailable();
AzureConnection();
};

View File

@@ -1,8 +1,6 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
import "ITerminalConnection.idl";
namespace Microsoft.Terminal.TerminalConnection
{
[default_interface] runtimeclass ConnectionInformation

View File

@@ -1,25 +1,17 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
import "ITerminalConnection.idl";
namespace Microsoft.Terminal.TerminalConnection
{
delegate void NewConnectionHandler(ConptyConnection connection);
[default_interface] runtimeclass ConptyConnection : ITerminalConnection
[default_interface] runtimeclass ConptyConnection : ITerminalConnection, ITerminalConnectionWithWindow, ITerminalConnectionWithBufferState
{
ConptyConnection();
String Commandline { get; };
String StartingTitle { get; };
UInt16 ShowWindow { get; };
void ClearBuffer();
void ShowHide(Boolean show);
void ReparentWindow(UInt64 newParent);
static event NewConnectionHandler NewConnection;
static void StartInboundListener();
static void StopInboundListener();

View File

@@ -1,8 +1,6 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
import "ITerminalConnection.idl";
namespace Microsoft.Terminal.TerminalConnection
{
[default_interface]

View File

@@ -55,7 +55,6 @@
</ItemGroup>
<ItemGroup>
<Midl Include="ConnectionInformation.idl" />
<Midl Include="ITerminalConnection.idl" />
<Midl Include="ConptyConnection.idl" />
<Midl Include="EchoConnection.idl" />
<Midl Include="AzureConnection.idl" />
@@ -83,6 +82,10 @@
<ProjectReference Include="..\..\winconpty\lib\winconptylib.vcxproj">
<Project>{58a03bb2-df5a-4b66-91a0-7ef3ba01269a}</Project>
</ProjectReference>
<ProjectReference Include="..\ITerminalConnection\ITerminalConnection.vcxproj">
<Project>{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}</Project>
<OpenConsoleImplementInterface>true</OpenConsoleImplementInterface>
</ProjectReference>
</ItemGroup>
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
<ItemDefinitionGroup>
@@ -96,6 +99,7 @@
</Link>
</ItemDefinitionGroup>
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
<Import Project="$(SolutionDir)build\rules\ConsumeWinRTInterfacesStatically.targets" />
<!-- This -must- go after cppwinrt.build.post.props because that includes many VS-provided props including appcontainer.common.props, which stomps on what cppwinrt.targets did. -->
<Import Project="$(OpenConsoleDir)src\common.nugetversions.targets" />

View File

@@ -290,9 +290,9 @@ namespace winrt::Microsoft::Terminal::Control::implementation
newConnection.Resize(height, width);
}
// Window owner too.
if (auto conpty{ newConnection.try_as<TerminalConnection::ConptyConnection>() })
if (auto withWindow{ newConnection.try_as<TerminalConnection::ITerminalConnectionWithWindow>() })
{
conpty.ReparentWindow(_owningHwnd);
withWindow.ReparentWindow(_owningHwnd);
}
// This event is explicitly revoked in the destructor: does not need weak_ref
@@ -360,9 +360,9 @@ namespace winrt::Microsoft::Terminal::Control::implementation
if (_owningHwnd != 0)
{
if (auto conpty{ _connection.try_as<TerminalConnection::ConptyConnection>() })
if (auto withWindow{ _connection.try_as<TerminalConnection::ITerminalConnectionWithWindow>() })
{
conpty.ReparentWindow(_owningHwnd);
withWindow.ReparentWindow(_owningHwnd);
}
}
@@ -2044,12 +2044,12 @@ namespace winrt::Microsoft::Terminal::Control::implementation
if (clearType == Control::ClearBufferType::Screen || clearType == Control::ClearBufferType::All)
{
// Send a signal to conpty to clear the buffer.
if (auto conpty{ _connection.try_as<TerminalConnection::ConptyConnection>() })
// Send a signal to clear the buffer.
if (auto withBuffer{ _connection.try_as<TerminalConnection::ITerminalConnectionWithBufferState>() })
{
// ConPTY will emit sequences to sync up our buffer with its new
// contents.
conpty.ClearBuffer();
withBuffer.ClearBuffer();
}
}
}
@@ -2253,9 +2253,9 @@ namespace winrt::Microsoft::Terminal::Control::implementation
if (_initializedTerminal.load(std::memory_order_relaxed))
{
// show is true, hide is false
if (auto conpty{ _connection.try_as<TerminalConnection::ConptyConnection>() })
if (auto withWindow{ _connection.try_as<TerminalConnection::ITerminalConnectionWithWindow>() })
{
conpty.ShowHide(showOrHide);
withWindow.ShowHide(showOrHide);
}
}
}
@@ -2317,9 +2317,9 @@ namespace winrt::Microsoft::Terminal::Control::implementation
{
if (owner != _owningHwnd && _connection)
{
if (auto conpty{ _connection.try_as<TerminalConnection::ConptyConnection>() })
if (auto withWindow{ _connection.try_as<TerminalConnection::ITerminalConnectionWithWindow>() })
{
conpty.ReparentWindow(owner);
withWindow.ReparentWindow(owner);
}
}
_owningHwnd = owner;

View File

@@ -168,11 +168,13 @@
<ProjectReference Include="..\..\renderer\uia\lib\uia.vcxproj" />
<ProjectReference Include="..\..\terminal\parser\lib\parser.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\terminal\input\lib\terminalinput.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalCore\lib\TerminalCore-lib.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalConnection\TerminalConnection.vcxproj">
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
<ProjectReference Include="..\ITerminalConnection\ITerminalConnection.vcxproj">
<Project>{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}</Project>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\WinRTUtils\WinRTUtils.vcxproj">
<Project>{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
@@ -182,6 +184,7 @@
<Private>false</Private>
</ProjectReference>
</ItemGroup>
<!-- ====================== Compiler & Linker Flags ===================== -->
<ItemDefinitionGroup>
<ClCompile>
@@ -195,6 +198,9 @@
<!-- ========================= Globals ======================== -->
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
<Import Project="$(SolutionDir)build\rules\ConsumeWinRTInterfacesStatically.targets" />
<!-- TODO DH troubleshoot why ITerminalCore isn't rolling up into our winmd so our dependers don't need to know about it; namespace decollision? -->
<!-- This -must- go after cppwinrt.build.post.props because that includes many VS-provided props including appcontainer.common.props, which stomps on what cppwinrt.targets did. -->
<Import Project="$(OpenConsoleDir)src\common.nugetversions.targets" />

View File

@@ -70,26 +70,16 @@
<Project>{6515F03F-E56D-4DB4-B23D-AC4FB80DB36F}</Project>
<Private>false</Private>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<!-- Manually add a reference to TerminalControl here. We need this so
MDMERGE will know where the TermControl types are defined. However, we need
to do it exactly like this so the packaging project won't roll up
TermControl's .xbf's from both the TermControl project and this one. -->
<Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<!-- Dependency Interfaces -->
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalCore\ITerminalCore.vcxproj">
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Reference Include="Microsoft.Terminal.TerminalConnection">
<HintPath>$(OpenConsoleCommonOutDir)TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Project>{40503EDC-E3E4-46AB-BC26-D293B956CAE8}</Project>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalConnection\ITerminalConnection.vcxproj">
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Project>{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}</Project>
</ProjectReference>
</ItemGroup>
<ItemDefinitionGroup>

View File

@@ -13,13 +13,19 @@
</PropertyGroup>
<PropertyGroup Label="NuGet Dependencies">
<TerminalCppWinrt>true</TerminalCppWinrt>
<TerminalMidlRt>true</TerminalMidlRt>
</PropertyGroup>
<Import Project="..\..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
<Import Project="$(OpenConsoleDir)src\common.nugetversions.props" />
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.pre.props" />
<ItemDefinitionGroup>
<ClCompile>
<CompileAsWinRT>false</CompileAsWinRT>
</ClCompile>
</ItemDefinitionGroup>
<!-- DONT ADD NEW FILES HERE, ADD THEM TO terminalcore-common.vcxitems -->
<Import Project="$(OpenConsoleDir)src\cascadia\TerminalCore\terminalcore-common.vcxitems" />
@@ -46,12 +52,12 @@
<ProjectReference Include="$(OpenConsoleDir)src\audio\midi\lib\midi.vcxproj">
<Project>{3c67784e-1453-49c2-9660-483e2cc7f7ad}</Project>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalCore\ITerminalCore.vcxproj">
<Project>{40503EDC-E3E4-46AB-BC26-D293B956CAE8}</Project>
<OpenConsoleImplementInterface>true</OpenConsoleImplementInterface>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Midl Include="..\ICoreSettings.idl" />
<Midl Include="..\ICoreAppearance.idl" />
</ItemGroup>
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
@@ -69,6 +75,8 @@
<!-- Careful reordering these. Some default props (contained in these files) are order sensitive. -->
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
<Import Project="$(SolutionDir)build\rules\ConsumeWinRTInterfacesStatically.targets" />
<!-- This -must- go after cppwinrt.build.post.props because that includes many VS-provided props including appcontainer.common.props, which stomps on what cppwinrt.targets did. -->
<Import Project="$(OpenConsoleDir)src\common.nugetversions.targets" />
</Project>

View File

@@ -375,6 +375,11 @@
<Private>false</Private>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)src\cascadia\ITerminalCore\ITerminalCore.vcxproj">
<Private>false</Private>
<Project>{40503EDC-E3E4-46AB-BC26-D293B956CAE8}</Project>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\dll\TerminalControl.vcxproj">
<!-- Private:false and ReferenceOutputAssembly:false, in combination with
the manual reference to TerminalControl.winmd below make sure that this
@@ -399,12 +404,6 @@
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
</ItemGroup>
<ItemDefinitionGroup>

View File

@@ -11,7 +11,8 @@
using namespace ::Microsoft::Terminal::Settings::Model;
using namespace winrt::Microsoft::Terminal::Settings::Model;
using namespace winrt::Microsoft::Terminal::TerminalConnection;
static constexpr winrt::guid AzureConnectionType = { 0xd9fcfdfa, 0xa479, 0x412c, { 0x83, 0xb7, 0xc5, 0x64, 0xe, 0x61, 0xcd, 0x62 } };
std::wstring_view AzureCloudShellGenerator::GetNamespace() const noexcept
{
@@ -27,13 +28,10 @@ std::wstring_view AzureCloudShellGenerator::GetNamespace() const noexcept
// - a vector with the Azure Cloud Shell connection profile, if available.
void AzureCloudShellGenerator::GenerateProfiles(std::vector<winrt::com_ptr<implementation::Profile>>& profiles) const
{
if (AzureConnection::IsAzureConnectionAvailable())
{
auto azureCloudShellProfile{ CreateDynamicProfile(L"Azure Cloud Shell") };
azureCloudShellProfile->StartingDirectory(winrt::hstring{ DEFAULT_STARTING_DIRECTORY });
azureCloudShellProfile->DefaultAppearance().DarkColorSchemeName(L"Vintage");
azureCloudShellProfile->DefaultAppearance().LightColorSchemeName(L"Vintage");
azureCloudShellProfile->ConnectionType(AzureConnection::ConnectionType());
profiles.emplace_back(std::move(azureCloudShellProfile));
}
auto azureCloudShellProfile{ CreateDynamicProfile(L"Azure Cloud Shell") };
azureCloudShellProfile->StartingDirectory(winrt::hstring{ DEFAULT_STARTING_DIRECTORY });
azureCloudShellProfile->DefaultAppearance().DarkColorSchemeName(L"Vintage");
azureCloudShellProfile->DefaultAppearance().LightColorSchemeName(L"Vintage");
azureCloudShellProfile->ConnectionType(AzureConnectionType);
profiles.emplace_back(std::move(azureCloudShellProfile));
}

View File

@@ -276,29 +276,27 @@
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalConnection\ITerminalConnection.vcxproj">
<Private>false</Private>
<Project>{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}</Project>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalCore\ITerminalCore.vcxproj">
<Private>false</Private>
<Project>{40503EDC-E3E4-46AB-BC26-D293B956CAE8}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<!-- Manually add references to each of our dependent winmds. Mark them as private=false and CopyLocalSatelliteAssemblies=false, so that we don't
propagate them upwards (which can make referencing this project result in
duplicate type definitions)-->
<Reference Include="Microsoft.Terminal.TerminalConnection">
<HintPath>$(OpenConsoleCommonOutDir)TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Reference Include="Microsoft.Terminal.Control">
<HintPath>$(OpenConsoleCommonOutDir)Microsoft.Terminal.Control\Microsoft.Terminal.Control.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
</ItemGroup>
<!-- ====================== Compiler & Linker Flags ===================== -->
<ItemDefinitionGroup>

View File

@@ -83,10 +83,6 @@
<!-- The midl compiler however, _will_ aggregate our winmd dependencies
somehow. So make sure to only include top-level dependencies here (don't
include Settings and Connection, since Control will include them for us) -->
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalConnection\TerminalConnection.vcxproj">
<Private>false</Private>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\dll\TerminalControl.vcxproj">
<!-- Private:true and ReferenceOutputAssembly:false, in combination with
the manual reference to TerminalControl.winmd below make sure that this
@@ -102,6 +98,16 @@
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettingsModel\Microsoft.Terminal.Settings.ModelLib.vcxproj">
<Private>true</Private>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalConnection\ITerminalConnection.vcxproj">
<Private>false</Private>
<Project>{EFC0B7EF-BB0D-44EC-BFC9-772AE4391D17}</Project>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalCore\ITerminalCore.vcxproj">
<Private>false</Private>
<Project>{40503EDC-E3E4-46AB-BC26-D293B956CAE8}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
@@ -115,13 +121,7 @@
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<!-- TODO DH validate removal -->
</ItemGroup>
<ItemDefinitionGroup>

View File

@@ -41,7 +41,6 @@
#include <winrt/Microsoft.Terminal.Core.h>
#include <winrt/Microsoft.Terminal.Control.h>
#include <winrt/Microsoft.Terminal.TerminalConnection.h>
// Including TraceLogging essentials for the binary
#include <TraceLoggingProvider.h>

View File

@@ -91,6 +91,11 @@
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\Remoting\dll\Microsoft.Terminal.Remoting.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettingsEditor\Microsoft.Terminal.Settings.Editor.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\ITerminalCore\ITerminalCore.vcxproj">
<Private>false</Private>
<Project>{40503EDC-E3E4-46AB-BC26-D293B956CAE8}</Project>
</ProjectReference>
<ProjectReference Include="$(OpenConsoleDir)src\types\lib\types.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\WinRTUtils\WinRTUtils.vcxproj">
<Project>{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
@@ -98,19 +103,6 @@
</ProjectReference>
</ItemGroup>
<!-- Manually add a reference to Core here. We need this so MDMERGE will know
where the Core types are defined. However, we need to do it exactly like this,
because the Core project is a lib not a dll, so it can't be ProjectReference'd
like everything else. It does get built into TerminalControl.dll, so we don't
need to worry about that. -->
<ItemGroup>
<Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
</ItemGroup>
<!--
This ItemGroup and the Globals PropertyGroup below it are required in order
to enable F5 debugging for the unpackaged application

View File

@@ -6,6 +6,9 @@
<!-- CppWinrt -->
<Import Project="$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props" Condition="'$(TerminalCppWinrt)' == 'true' and Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props')" />
<!-- MidlRT -->
<Import Project="$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.MidlRT.2.0.200924.1\build\native\Microsoft.Windows.MidlRT.props" Condition="'$(TerminalMidlRT)' == 'true' and Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.MidlRT.2.0.200924.1\build\native\Microsoft.Windows.MidlRT.props')" />
<!-- TAEF -->
<PropertyGroup>
<TAEFPackagePathRoot>$(MSBuildThisFileDirectory)..\packages\Microsoft.Taef.10.60.210621002</TAEFPackagePathRoot>

View File

@@ -64,6 +64,9 @@
<!-- WIL (so widely used that this one does not have a TerminalWIL opt-in property; it is automatic) -->
<Import Project="$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
<!-- MidlRT -->
<Import Project="$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.MidlRT.2.0.200924.1\build\native\Microsoft.Windows.MidlRT.targets" Condition="'$(TerminalMidlRT)' == 'true' and Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.MidlRT.2.0.200924.1\build\native\Microsoft.Windows.MidlRT.targets')" />
</ImportGroup>
<Target Name="Terminal_EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
@@ -95,6 +98,10 @@
<!-- WIL (so widely used that this one does not have a TerminalWIL opt-in property; it is automatic) -->
<Error Condition="!Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
<!-- MidlRT -->
<Error Condition="'$(TerminalMidlRT)' == 'true' and !Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.MidlRT.2.0.200924.1\build\native\Microsoft.Windows.MidlRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.MidlRT.2.0.200924.1\build\native\Microsoft.Windows.MidlRT.props'))" />
<Error Condition="'$(TerminalMidlRT)' == 'true' and !Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.MidlRT.2.0.200924.1\build\native\Microsoft.Windows.MidlRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.MidlRT.2.0.200924.1\build\native\Microsoft.Windows.MidlRT.targets'))" />
</Target>
</Project>