我有一个UWP应用程序,它给了我幻像XAML编译器错误。
在这个例子中,我在Win2D控件上出错:
<win2D:CanvasControl x:Name="MapCanvas"
RelativePanel.Below="UpButton" RelativePanel.Above="DownButton" RelativePanel.RightOf="LeftButton" RelativePanel.LeftOf="RightButton"
Draw="{x:Bind Vm.OnDrawCanvas}"
CreateResources="{x:Bind Vm.OnCreateResources}"
KeyUp="{x:Bind Vm.MapVm.OnKeyReleased}"
PointerMoved="{x:Bind Vm.OnPointerMoved}"
PointerPressed="{x:Bind Vm.OnPointerPressed}"
PointerReleased="{x:Bind Vm.OnPointerReleased}"
PointerExited="{x:Bind Vm.OnPointerExited}"
DoubleTapped="{x:Bind Vm.OnDoubleTapped}"
/>
控件的命名空间是:
xmlns:win2D="using:Microsoft.Graphics.Canvas.UI.Xaml"
编译器出现以下错误:
The name "CanvasControl" does not exist in the namespace "using:Microsoft.Graphics.Canvas.UI.Xaml".
问题当然是确实存在。事实上,该程序运行正常,但由于这个幻像错误,XAML设计器将无法运行。
更糟糕的是,自从将VS 2015升级到Update 3后,这些幻像错误已成为真正的错误。如果我在调试模式和发布模式之间切换,我的所有用户控件现在都会抛出相同的错误,除了它会阻止应用程序建造。如果我将XAML切掉并将其粘贴回来(没有其他更改),它会构建并运行良好。最大的问题是,我在很多地方都有用户控件,我需要为它们中的每一个执行此操作才能使其工作。
如果有人对此为何发生以及如何解决这些问题有任何见解,我将非常感激。
答案 0 :(得分:2)
在这种情况下,有一些问题被描述。
与Win2D问题相关的主要问题是有2个冲突的DLL被引用。第二个DLL(Microsoft.Graphics.Canvas)干扰了Win2D。当从项目中删除对DLL的引用时,Win2D错误消失了。