2016-07-11 2 views
3

필자는 환상적인 XAML 컴파일러 오류를 제공하는 UWP 애플리케이션이 있습니다. 이 예에서 UWP Phantom 컴파일러 오류

, 나는 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 디자이너는이 팬텀 오류로 인해 실행되지 않습니다.

비록 VS2015를 업데이트 3으로 업그레이드 한 후 이러한 팬텀 오류가 실제 오류가 발생했지만, 디버그 모드와 릴리스 모드간에 전환하면 모든 사용자 컨트롤이 이제는 응용 프로그램을 방해한다는 점을 제외하면 동일한 오류가 발생합니다. 건물에서. XAML을 잘라내어 다른 변경 사항없이 붙여 넣으면 빌드되고 제대로 실행됩니다. 이 문제의 가장 큰 문제점은 여러 곳에서 사용자 정의 컨트롤을 사용할 수 있으므로 작업을 수행하기 위해 각 사용자마다이 작업을 수행해야한다는 것입니다.

누군가가 이런 일이 발생하는 이유와 해결 방법에 대한 통찰력이 있다면 저는 매우 감사하게 생각합니다.

+0

'win2D'에 대한 네임 스페이스 선언은 무엇입니까? – IInspectable

+0

네임 스페이스를 포함하도록 원래 질문을 업데이트했습니다. –

+0

해결책을 시도해 보셨습니까? 2. 프로젝트에서 * bin *, * obj *를 삭제하고 3.reopen하고 솔루션을 빌드 하시겠습니까? XAML 디자이너에 몇 가지 문제가있는 것 같습니다. 그래도 문제가 해결되지 않으면 Visual Studio를 복구하고 Windows SDK를 제거/다시 설치해보십시오. –

답변

2

이 상황에서 설명한 몇 가지 문제가 있습니다.

Win2D 문제와 관련된 주요 문제는 참조되는 충돌 DLL이 2 개 있다는 것입니다. 두 번째 DLL (Microsoft.Graphics.Canvas)은 Win2D를 방해합니다. DLL에 대한 참조가 프로젝트에서 제거되면 Win2D 오류가 사라졌습니다.