Fix missing .xaml references (#11805)
I'm working on making the FastUpToDate check in Vs work for the Terminal project. This is one of a few PRs in this area. FastUpToDate lets vs check quickly determine that it doesn't need to do anything for a given project. However, a few of our projects don't produce all the right artifacts, or check too many things, and this eventually causes the `wapproj` to rebuild, EVERY TIME YOU F5 in VS. This second PR deals with some projects MYSTERIOUSLY depending on the `.xaml` files from `Terminal.Control`, even when they by all accounts shouldn't. TerminalSettingsModel ISN'T EVEN A XAML project, so I have no idea why it thinks it needs these xaml files. The TerminalAppLib project thinking it needs them - makes more sense, but is still confusing. Below are my verbatim notes, which led to the solution in this PR. ``` 34>------ Up-To-Date check: Project: Microsoft.Terminal.Settings.Model.Lib, Configuration: Debug x64 ------ 34>Project is not up-to-date: build output 'c:\users\migrie\dev\public\terminal\bin\x64\debug\microsoft.terminal.settings.model.lib\microsoft.terminal.control\searchboxcontrol.xaml' is missing ``` * Just copying the xaml files from `bin\x64\debug\microsoft.terminal.control\microsoft.terminal.control\*.xaml` to `bin\x64\debug\microsoft.terminal.settings.model.lib\microsoft.terminal.control` seemed to fix this. * the .xbfs were already there * It's very unclear why these were ever needed? They aren't used in the build for `Microsoft.Terminal.Settings.Model.Lib`. They aren't copied as a part of the build either - no .xaml files are copied at all in fact * [ ] Does TSE have these .xamls in it's output? * UPDATE: checking out main, and building again - ran into this again. WHY?? * Cleaned again, then built TerminalApp.vcxproj. File is no longer needed? nothing makes sense. * `obj\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsof.CA5CAD1A.tlog\Microsoft.Terminal.Settings.Model.Lib.write.1u.tlog`: ``` C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\SearchBoxControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TermControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TSFInputControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.UI.Xaml\Assets\NoiseAsset_256X256_PNG.png C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\SearchBoxControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TermControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TSFInputControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\SearchBoxControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TermControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TSFInputControl.xbf C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\SearchBoxControl.xaml C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TermControl.xaml C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TSFInputControl.xaml ``` From the build: ``` 18>Target _CopyOutOfDateSourceItemsToOutputDirectory: 18> Skipping target "_CopyOutOfDateSourceItemsToOutputDirectory" because all output files are up-to-date with respect to the input files. 18> Input files: 18> C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Control\Microsoft.Terminal.Control\SearchBoxControl.xbf 18> C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Control\Microsoft.Terminal.Control\TermControl.xbf 18> C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Control\Microsoft.Terminal.Control\TSFInputControl.xbf 18> C:\Users\migrie\dev\public\terminal\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\runtimes\win10-x64\native\Microsoft.UI.Xaml\Assets\NoiseAsset_256X256_PNG.png 18> Output files: 18> C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\SearchBoxControl.xbf 18> C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TermControl.xbf 18> C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.Terminal.Control\TSFInputControl.xbf 18> C:\Users\migrie\dev\public\terminal\bin\x64\Debug\Microsoft.Terminal.Settings.Model.Lib\Microsoft.UI.Xaml\Assets\NoiseAsset_256X256_PNG.png ``` * Hmm, `21>Project is not up-to-date: build output 'c:\users\migrie\dev\public\terminal\bin\x64\debug\terminalapplib\microsoft.terminal.control\searchboxcontrol.xaml' is missing` as well.
This commit is contained in:
parent
dc01926e3e
commit
a98d18c030
|
@ -318,7 +318,29 @@
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
<!-- For whatever reason, we can't include the TerminalControl and
|
<!-- For whatever reason, we can't include the TerminalControl and
|
||||||
TerminalSettings projects' winmds via project references. So we'll have to
|
TerminalSettings projects' winmds via project references. So we'll have to
|
||||||
manually include the winmds as References below -->
|
manually include the winmds as References below
|
||||||
|
|
||||||
|
BODGY: we do need to add a ProjectReference to TerminalControl.vcxproj,
|
||||||
|
with Private=true, ReferenceOutputAssembly=false, so that Visual Studio's
|
||||||
|
"Fast Up-to-date Check" will work with this project. If we don't, the Fast
|
||||||
|
Up-to-date Check will look for the .xaml files from that project in our
|
||||||
|
output, which won't actually be there.
|
||||||
|
|
||||||
|
We do still need to separately reference the winmds manually below, which is annoying.
|
||||||
|
-->
|
||||||
|
<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
|
||||||
|
project will compile correct, and that we won't roll up the TermControl
|
||||||
|
xbf's into the packaging project twice. -->
|
||||||
|
<Private>true</Private>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettingsEditor\Microsoft.Terminal.Settings.Editor.vcxproj">
|
||||||
|
<Private>true</Private>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!-- This is a hack to get the ARM64 CI build working. See
|
<!-- This is a hack to get the ARM64 CI build working. See
|
||||||
|
|
|
@ -197,9 +197,29 @@
|
||||||
<Project>{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
|
<Project>{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
|
||||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
|
||||||
<!-- For whatever reason, we can't include the TerminalControl and
|
<!-- For whatever reason, we can't include the TerminalControl and
|
||||||
TerminalSettings projects' winmds via project references. So we'll have to
|
TerminalSettings projects' winmds via project references. So we'll have to
|
||||||
manually include the winmds as References below -->
|
manually include the winmds as References below
|
||||||
|
|
||||||
|
BODGY: we do need to add a ProjectReference to TerminalControl.vcxproj,
|
||||||
|
with Private=true, ReferenceOutputAssembly=false, so that Visual Studio's
|
||||||
|
"Fast Up-to-date Check" will work with this project. If we don't, the Fast
|
||||||
|
Up-to-date Check will look for the .xaml files from that project in our
|
||||||
|
output, which won't actually be there.
|
||||||
|
|
||||||
|
We do still need to separately reference the winmds manually below, which is annoying.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<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
|
||||||
|
project will compile correct, and that we won't roll up the TermControl
|
||||||
|
xbf's into the packaging project twice. -->
|
||||||
|
<Private>true</Private>
|
||||||
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||||
|
</ProjectReference>
|
||||||
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<!-- Manually add references to each of our dependent winmds. Mark them as
|
<!-- Manually add references to each of our dependent winmds. Mark them as
|
||||||
|
@ -266,4 +286,5 @@
|
||||||
</Target>
|
</Target>
|
||||||
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
|
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
|
||||||
<Import Project="..\..\..\packages\Microsoft.VisualStudio.Setup.Configuration.Native.2.3.2262\build\native\Microsoft.VisualStudio.Setup.Configuration.Native.targets" Condition="Exists('..\..\..\packages\Microsoft.VisualStudio.Setup.Configuration.Native.2.3.2262\build\native\Microsoft.VisualStudio.Setup.Configuration.Native.targets')" />
|
<Import Project="..\..\..\packages\Microsoft.VisualStudio.Setup.Configuration.Native.2.3.2262\build\native\Microsoft.VisualStudio.Setup.Configuration.Native.targets" Condition="Exists('..\..\..\packages\Microsoft.VisualStudio.Setup.Configuration.Native.2.3.2262\build\native\Microsoft.VisualStudio.Setup.Configuration.Native.targets')" />
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
|
||||||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\dll\TerminalControl.vcxproj">
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\dll\TerminalControl.vcxproj">
|
||||||
<!-- Private:false and ReferenceOutputAssembly:false, in combination with
|
<!-- Private:true and ReferenceOutputAssembly:false, in combination with
|
||||||
the manual reference to TerminalControl.winmd below make sure that this
|
the manual reference to TerminalControl.winmd below make sure that this
|
||||||
project will compile correct, and that we won't roll up the TermControl
|
project will compile correct, and that we won't roll up the TermControl
|
||||||
xbf's into the packaging project twice. -->
|
xbf's into the packaging project twice. -->
|
||||||
|
|
Loading…
Reference in a new issue