microsoft-ui-xaml icon indicating copy to clipboard operation
microsoft-ui-xaml copied to clipboard

Custom Control not working in WinUI 3 preview 3 (desktop)

Open wbokkers opened this issue 5 years ago • 14 comments

Describe the bug After adding and using a Custom Control, I get a XAML error: WMC0610, The XAML Binary Format (XBF) generator reported syntax error '0x03e9'

Steps to reproduce the bug

  1. Get and install the WinUI 3 preview 3 templates
  2. Open Visual Studio 2019 Community Preview (Version 16.9.0 Preview 1.0)
  3. Create an empty WinUI (C#) project for Desktop
  4. Add a custom control.
  5. Use the custom control in MainWindow.xaml
  6. Try to run the app (F5)

Expected behavior The project should compile and run.

Screenshots image

image

Version Info

NuGet package version: [Microsoft.WinUI 3.0.0-preview3.201113.0]

Windows app type:

UWP Win32
Yes
Windows 10 version Saw the problem?
May 2020 Update (19041) Yes
Device form factor Saw the problem?
Desktop Yes

Additional context I can compile and run when moving the XAML namespace declaration of the custom control style to the ResourceDictionary, but then I get this runtime error: image

In the output window I see the following errors: D:\a\1\s\dev\MRTCore\mrt\Core\src\MRM.cpp(276)\MRM.dll!7C1ADEA1: (caller: 7C1AF6A8) ReturnHr(1) tid(65e4) 80073B17 NamedResource Not Found. D:\a\1\s\dev\MRTCore\mrt\Core\src\MRM.cpp(403)\MRM.dll!7C1AF6C5: (caller: 571BBF9E) ReturnHr(2) tid(65e4) 80073B17 NamedResource Not Found. D:\a\1\s\dev\MRTCore\mrt\Core\src\MRM.cpp(755)\MRM.dll!7C1AF8E0: (caller: 571BBF9E) ReturnHr(3) tid(65e4) 80073B17 NamedResource Not Found. Exception thrown at 0x76AE9AB2 (KernelBase.dll) in App1.exe: WinRT originate error - 0x80073B17 : 'NamedResource Not Found.'. onecore\com\combase\winrt\error\restrictederror.cpp(1016)\combase.dll!768623ED: (caller: 767C5126) ReturnHr(1) tid(65e4) 8007007E The specified module could not be found. Exception thrown at 0x76AE9AB2 in App1.exe: Microsoft C++ exception: winrt::hresult_error at memory location 0x02DDE268.

wbokkers avatar Nov 19 '20 18:11 wbokkers

Adding @alwu for FYI.

what does the controls namespace map to? this worked fine for me locally, although I did hit the first chance exception you see. You can disable this exception, and your app should still run:

image

stevenbrix avatar Nov 19 '20 22:11 stevenbrix

This is my solution structure: image

There is no controls namespace. It's called local2 and it maps as follows: xmlns:local2="using:App1.Controls"

wbokkers avatar Nov 20 '20 13:11 wbokkers

Not breaking on the exception works for me. But I can't leave the namespace declaration in the control. So, I need to specify it as follows: image

The auto generated code (below) does not work: image

wbokkers avatar Nov 20 '20 13:11 wbokkers

Just so I understand this properly, you're saying that the auto-generated code results in the following compiler error?

image

And you're able to workaround it by moving the local2 namespace declaration to the top of the file?

stevenbrix avatar Nov 20 '20 22:11 stevenbrix

Yes, exactly!

wbokkers avatar Nov 21 '20 22:11 wbokkers

Thanks @wbokkers, I'm glad you have a workaround, even though I'm sure it's annoying.

Do you know if this is a regression in WinUI3, or if this happens in WinUI2.x as well?

stevenbrix avatar Nov 30 '20 18:11 stevenbrix

Never saw this happen with UWP, but I never tested with WinUI2, unfortunately.

wbokkers avatar Nov 30 '20 18:11 wbokkers

@wbokkers I just tested this with a UWP project and it does look like it's happening, although maybe there was some regression in UWP that was missed?

stevenbrix avatar Jan 08 '21 23:01 stevenbrix

The problem is still present in 1.0 release. The proposed workaround also works

Not breaking on the exception works for me. But I can't leave the namespace declaration in the control. So, I need to specify it as follows: image

The auto generated code (below) does not work: image

KonstantinKhabarlak avatar Dec 29 '21 07:12 KonstantinKhabarlak

Still relevant for 1.2

clembu avatar Dec 09 '22 14:12 clembu

Still relevant for 1.3 Preview1

iamhazel avatar Mar 30 '23 05:03 iamhazel

Can someone explain to me the workaround? I end up on image

TekuSP avatar Jun 23 '23 14:06 TekuSP

If I ignore exception I end with image

TekuSP avatar Jun 23 '23 14:06 TekuSP

I've just experienced this exact problem after adding a ContentDialog to an existing WinUi3 project.

ruimaciel avatar Oct 19 '24 07:10 ruimaciel