Yea just follow #1042 on github for status

So current state:

  1. If you try to add a `Reference` to all of MUX.Markup, TerminalControl and
     TerminalSettings, then mdmerge will complain about all   the types from
     TerminalSettings being defined twice. In this magic scenario, the
     dependencies of TerminalControl are used directly   for some reason:

```
  12>    Load input metadata file ...OpenConsole\x64\Debug\TerminalSettings\Microsoft.Terminal.Settings.winmd.
  12>    Load input metadata file ...OpenConsole\x64\Debug\TerminalControl\Microsoft.Terminal.Settings.winmd.
  12>    Load input metadata file ...OpenConsole\x64\Debug\TerminalControl\Microsoft.Terminal.TerminalConnection.winmd.
  12>    Load input metadata file ...OpenConsole\x64\Debug\TerminalControl\Microsoft.Terminal.TerminalControl.winmd.
  12>    Load input metadata file ...OpenConsole\x64\Debug\Microsoft.UI.Xaml.Markup\Microsoft.UI.Xaml.Markup.winmd.
```

  2. If you don't add a `Reference` TerminalControl, then it'll complain about
     being unable to find the type TitleChangedEventArgs,   which is defined in
     TerminalControl.

  3. If you don't add a `Reference` TerminalSettings, then it'll complain about
     being unable to find the type KeyChord and other   types from
     TerminalSettings. In this scenario, it doesn't recurse on the other
     dependencies from TerminalControl for whatever   reason.

  4. If you instead try to add all 3 as a `ProjectReference`, then it'll
     complain about being unable to find TitleChangedEventArgs,   as in 2.
     Presumably, it;ll have troubles with the other types too, as none of the 3
     are actually included in the midlrt.rsp file.

  5. If you add all 3 as a `ProjectReference`, then also add TerminalControl as
     a `Reference`, you'll get a `MIDL2011: [msg]  unresolved type declaration
     Microsoft.UI.Xaml.Markup.XamlApplication`

  6. If you add all 3 as a `ProjectReference`, then also add TerminalControl AND
     MUX.Markup as a `Reference`, you'll get the same   result as 3.
This commit is contained in:
Mike Griese
2019-05-29 11:17:51 -05:00
parent 0f8b41196c
commit 606116880a
2 changed files with 44 additions and 6 deletions

View File

@@ -233,6 +233,11 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests_TerminalApp", "src\cascadia\ut_app\TerminalApp.UnitTests.vcxproj", "{CA5CAD1A-9333-4D05-B12A-1905CBF112F9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TerminalAppLib", "src\cascadia\TerminalApp\lib\TerminalAppLib.vcxproj", "{CA5CAD1A-9A12-429C-B551-8562EC954746}"
ProjectSection(ProjectDependencies) = postProject
{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED} = {CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}
{CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907} = {CA5CAD1A-D7EC-4107-B7C6-79CB77AE2907}
{015A0047-772D-4F1A-88C9-45C18F0ADFB6} = {015A0047-772D-4F1A-88C9-45C18F0ADFB6}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@@ -90,15 +90,47 @@
you also update all the consumers
-->
<ProjectReference Include="$(OpenConsoleDir)src\types\lib\types.vcxproj" />
<!-- <ProjectReference Include="$(OpenConsoleDir)src\cascadia\terminalsettings\terminalsettings.vcxproj" /> -->
<!-- <ProjectReference Include="..\..\Microsoft.UI.Xaml.Markup\Microsoft.UI.Xaml.Markup.vcxproj">
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\terminalsettings\terminalsettings.vcxproj" />
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\TerminalControl.vcxproj" />
<ProjectReference Include="..\..\Microsoft.UI.Xaml.Markup\Microsoft.UI.Xaml.Markup.vcxproj">
<Project>{015a0047-772d-4f1a-88c9-45c18f0adfb6}</Project>
</ProjectReference> -->
<!-- <Private>true</Private> -->
<!-- <CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies> -->
</ProjectReference>
<!-- <ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\TerminalControl.vcxproj" /> -->
<!-- This is needed to be able to reference the XamlApplication type. -->
</ItemGroup>
<PropertyGroup>
<_BinRoot>$(OpenConsoleDir)$(Platform)\$(Configuration)\</_BinRoot>
</PropertyGroup>
<!-- <ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'UAP'"> -->
<ItemGroup>
<Reference Include="Microsoft.UI.Xaml.Markup">
<Reference Include="$(_BinRoot)Microsoft.UI.Xaml.Markup\Microsoft.UI.Xaml.Markup.winmd">
<IsWinMDFile>true</IsWinMDFile>
<Implementation>Microsoft.UI.Xaml.Markup.dll</Implementation>
</Reference>
<ReferenceCopyLocalPaths Include="$(_BinRoot)Microsoft.UI.Xaml.Markup\Microsoft.UI.Xaml.Markup.dll" />
<Reference Include="$(_BinRoot)TerminalControl\Microsoft.Terminal.TerminalControl.winmd">
<IsWinMDFile>true</IsWinMDFile>
<Implementation>TerminalControl.dll</Implementation>
</Reference>
<ReferenceCopyLocalPaths Include="$(_BinRoot)TerminalControl\TerminalControl.dll" />
<!-- <Reference Include="$(_BinRoot)TerminalSettings\Microsoft.Terminal.Settings.winmd">
<IsWinMDFile>true</IsWinMDFile>
<Implementation>TerminalSettings.dll</Implementation>
</Reference>
<ReferenceCopyLocalPaths Include="$(_BinRoot)TerminalSettings\TerminalSettings.dll" /> -->
</ItemGroup>
<ItemGroup>
<!-- <Reference Include="Microsoft.UI.Xaml.Markup">
<HintPath>..\..\..\..\x64\Debug\Microsoft.UI.Xaml.Markup\Microsoft.UI.Xaml.Markup.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
</Reference>
@@ -111,8 +143,9 @@
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
</Reference> -->
</ItemGroup>
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
@@ -152,4 +185,4 @@
</PropertyGroup>
<Error Condition="!Exists('$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.1.190405001-prerelease\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.1.190405001-prerelease\build\native\Microsoft.UI.Xaml.targets'))" />
</Target>
</Project>
</Project>