Microsoft-ui-xaml: Question: how to use the inner loop solution file?

Created on 9 Mar 2020  路  5Comments  路  Source: microsoft/microsoft-ui-xaml


While working on an API change for the TreeView control, I quickly realized that any change in the Microsoft.UI.Xaml project is causing a bunch of things to be rebuild again.

The repo contains another solution file MUXControlsInnerLoop.sln but it's unclear how this should be used. It looks like the InnerLoopAreas.props needs to be edited, but I'm not sure how exactly.

It would also be nice to document this in the README.md somewhere. I'm happy to do this part once I understand how to setup the inner loop thing :-)

documentation question

Most helpful comment

@teaP Tammy Paine FTE Do we have any existing documentation for this ? Can we add it to the developer guide section ?

I created a PR to add this info to the guide: #2083

All 5 comments

@japf Yes. You have it right. You can open the MuxControlsInnerLoop.sln and it will only load up features that are specified in the InnerLoopAreas.props. You can look at FeatureAreas.props as an example. That is what gets built when you load MuxControls.sln. 'true' -> product and tests for the feature will be included in the build. 'productOnly' - just the feature will be built without tests. 'productOnly' is useful when a feature is dependent on other features. For example, if you are working on NavigationView, you might want to set NavigationView to 'true' and ItemsRepeater to 'productOnly'. Notice that not all combinations have been tested, so we might have to do some cleanup of these flags as we go.

@teaP Do we have any existing documentation for this ? Can we add it to the developer guide section ?

@teaP Tammy Paine FTE Do we have any existing documentation for this ? Can we add it to the developer guide section ?

I created a PR to add this info to the guide: #2083

Thanks for the quick feedback and thanks @teaP for doing the PR.

I'm now building with this (in InnerLoopAreas.props):

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See LICENSE in the project root for license information. -->
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- Feature to include for inner loop build -->
  <PropertyGroup Condition="$(SolutionName) == 'MUXControlsInnerLoop'">
    <FeatureRepeaterEnabled>productOnly</FeatureRepeaterEnabled>
    <FeatureTreeViewEnabled>true</FeatureTreeViewEnabled>
  </PropertyGroup>
</Project>

Build is successful but the sample app doesn't show anything. I was expecting the demo of the TreeView control to be shown:

image

This is actually working fine after a proper Rebuild All :-)

@japf Thanks for confirming that it works. I think your build intermediates might have gotten into a bad state. Couple of ways to get out of it would be to either do a build clean or completely remove the BuildOutput folder and try rebuilding everything.

Was this page helpful?
0 / 5 - 0 ratings