I was testing a .NET MAUI project template in Visual Studio on a
Windows DevBox, and I noticed a target taking *a lot* of time:
ResizetizeImages 1.302s
Skipping target "ResizetizeImages" because all output files are up-to-date with respect to the input files.
This is happening on incremental builds with no changes. This is even
worse for Android, because it runs twice: one for build and one for
deploy.
The `ResizetizeImages` MSBuild target is *skipped*, why is it slow?!?
To "debug" this, I added this ugly, one-liner between every
`<ItemGroup>` in the target:
<ItemGroup>
</ItemGroup><PropertyGroup><_Time>$([System.DateTime]::Now.ToString('THH:mm:ss.fffffffZ'))</_Time></PropertyGroup><ItemGroup>
<_MauiImageToProcess Include="@(MauiImage)" Exclude="$(DefaultItemExcludes)" />
</ItemGroup><PropertyGroup><_Time>$([System.DateTime]::Now.ToString('THH:mm:ss.fffffffZ'))</_Time></PropertyGroup><ItemGroup>
<!-- more item groups -->
</ItemGroup><PropertyGroup><_Time>$([System.DateTime]::Now.ToString('THH:mm:ss.fffffffZ'))</_Time></PropertyGroup><ItemGroup>
</ItemGroup>
(I found the `/profileevaluation` switch didn't help me here)
This led me to find the problematic line, is this one:
<_MauiImageToProcess Include="@(MauiImage)" Exclude="$(DefaultItemExcludes)" />
Where `$(DefaultItemExcludes)` is:
DefaultItemExcludes = ;bin\Debug\/**;obj\Debug\/**;bin\/**;obj\/**;**/*.user;**/*.*proj;**/*.sln;**/*.vssscc;**/.DS_Store
This was introduced in a92fd1d8 to fix `.DS_Store` files in the folder:
<MauiImage Include="Resources\Images\*" />
(This is in the .NET MAUI project template).
What is happening is:
* MSBuild expands these 9 wildcards to a lot of files
* MSBuild now has to filter out the files that are in `@(MauiImage)`
If I simply reduce this to:
<_MauiImageToProcess Include="@(MauiImage)" Exclude="**/.DS_Store" />
It still takes 177ms after this change, because MSBuild has to
do a recursive file listing of the current project.
So, we can do better. We can use `Condition` instead:
<_MauiImageToProcess Include="@(MauiImage)" Condition=" '%(FileName)%(Extension)' != '.DS_Store' " />
After these changes, the target now takes:
ResizetizeImages 6ms
I can't think of what this would break, as I don't think any of these
files are in `Resources\Images`:
DefaultItemExcludes = ;bin\Debug\/**;obj\Debug\/**;bin\/**;obj\/**;**/*.user;**/*.*proj;**/*.sln;**/*.vssscc;**/.DS_Store
The only problem I can think of would be if someone sets
`$(DefaultItemExcludes)` to a custom value, and I think saving the
build time is worth it.
* Initial Commit
* Solved issue of automation id not picking up
* Renamed files, set correct issue text
* Removed unnecessary variables, comments
* Disabled test for Catalyst as well
* Fixed previous
* Added MovedToAppium tag for original test
* Add UI test
* Update RecalculateSpanPositions
* Update UI test to make it crash regardless of testing iOS device
* Always use original textContainer
* Revert "Always use original textContainer"
This reverts commit f0bf613f6e985b6f618cf22262e1c49948e99201.
* Always use original text container
* change the test to the correct issue and delete extra files that may have happened in the rebase
* remove local uitest changes
* remove linq and change back to correct issue number
---------
Co-authored-by: tj-devel709 <tj.devel709@gmail.com>
* Add test
* Skip binding compilation when path cannot be matched to the data type
* Update outdated tests
* Do not treat XC0045 as error in Xaml.UnitTests
* - fix up for release on some device tests but not all yet
* - fix
* - options
* Update device-tests-steps.yml
* - try me
---------
Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
* fix-19152-Fixed the Clear Button Color issue by adding the clear button keys in TextColorResourceKeys list.
* added UITest - 19152
* Fix-19152-Output images added.
* Fix-19152-Updated Automation ID and test method name.
* Fix-19152-Updated Automation ID.
* Fix-19152-Updated the test image based on the Test method name.
* Added the UI test for collection view group footer template crash issue.
* Updated the variable name
* Added the output image
* Added the snapshot for windows platform.
Changes: e70ae00c...03392836
Context: https://github.com/dotnet/android/commit/bc56b3a8
.NET Android is now using Maestro to push stable-branded builds, and
so a new feed is required for now.
At some point, we can setup a `Microsoft.Android.NET9` and
`Microsoft.Android.NET8` pack that would make it possible to track
*both* .NET 8 & 9 and Maestro could manage the feeds.
* [iOS] Load the correct loop source for carouselview
* [iOS] Add mapper for CarouselViewHandler
* [tests] Enable new handlers
* We need a CarouselViewHandler2 base
* [iOS] Fix no ItemTemplate CollectionView2
* [iOS] When we detach make sure to reset state of InitialPosition
* [iOS] Fix ScrollTo correct item with CarouselView loop
* [iOS] Enable CV2 mappers for Header and Footer and SelectedItems
* Fix public api catalyst
* [iOS] Make sure to arrange and layout header
* [iOS] Handling global Header and Footer with UICollectionViewCompositionalLayout
* [iOS] Disable code to size CollectionView2
* Add UIContainerView2
* Update test image
* Fix test
* [iOS] Make less api changes for now
* Try fix build
* Fix public api
* Try updateintialposition earlier
* Fix tests
* [tests] Dont use new handlers for CollectionView2
* Fixed FlyoutItemIsVisible is n ot working with bindings
* Correct method naming for OnFlyoutItemIsVisibleChanged
* FlyoutItemIsVisible attached property should update bindable property for FlyoutItemIsVisible in BaseShellItem
---------
Co-authored-by: Daniel Hindrikes <daniel.hindrikes@cab.se>
* fix-18443-SelectionLength Property Not Applied to Entry at Runtime
* Added UI test for 18443
* Modified the test case
* Modified test file
* Modified TestCases.Shared.Tests/Tests/Issues/Issue18443.cs
* Modified test file
* Modified test case
* Added image for Entry test
* Remove non-functioning code and instead throw a more helpful platform-not-supported error
Also mark the APIs not supported on Windows.
* Fix build failures
* Update tests for new webauth behavior
* [Android] ToolbarItem font color issue.
* Added UI Tests.
* Modified the test case.
* Updated the test cases.
* Commit for test cases change
* Modified the test samples.
* Modified the test samples.
* Images have been added.
---------
Co-authored-by: Suthi <suthi.yuvaraj@syncfusion.com>
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
From Version 9.0.0-prerelease.24405.1 -> To Version 9.0.0-prerelease.24420.3
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Fix "key was not present in the dictionary" when `OnIdiom` is used in `OnPlatform`
* Add test
---------
Co-authored-by: Mike Corsaro <mikecorsaro@microsoft.com>
Microsoft.Android.Sdk.Windows
From Version 35.0.0-rc.1.49 -> To Version 35.0.0-rc.1.69
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* MAUI hit testing ignores pages loaded by PushModalAsync
Updated VisualTreeElementExtension to get the MauiWinUiWindow Element, as its content member gets modal content in addition to underlying content
* PR Feedback
Update the code to use the UI.Xaml.Window instead of the MauiWinUIWindow