2

最近、Windows RT(C#)を対象とするプロジェクトの作業を開始しました。SilverlightとWPFのバックグラウンドを持ち、後で使用するためにUserControlsやPagesなどの一部を保持するアセンブリ(ライブラリ)を作成しました。再利用。

そのアセンブリに空のページを追加しました。

(ナビゲーションメカニズムを使用して)そのページに移動するたびに、コンストラクターが正しく呼び出されますが、InitializeComponent()の呼び出し中に説明のないXamlParseExceptionが発生します。

Message: XAML parsing failed
InnerException : null
StackTrace:    at Windows.UI.Xaml.Application.LoadComponent(Object component, Uri resourceLocator, ComponentResourceLocation componentResourceLocation)
   at Project.Modules.ImagesModule.Pages.CameraPage.InitializeComponent() in c:\Users\misztalm\Documents\Visual Studio 2012\Projects\VirtualEye\trunk\Sources\Project.Modules.ImagesModule\obj\Debug\Pages\MyPage.g.i.cs:line 30
   at Project.Modules.ImagesModule.Pages.MyPage..ctor() in c:\Users\misztalm\Documents\Visual Studio 2012\Projects\VirtualEye\trunk\Sources\Project.Modules.ImagesModule\Pages\MyPage.xaml.cs:line 20

原因を特定できていないので、指導をお願いすることにしました。

他の誰かがこれに遭遇しますか?

4

2 に答える 2

1

どうやら、WinRTのコード生成にバグがあります。このブログ投稿では、この問題を回避する方法について説明しています。私のために働いた。

http://blog.excastle.com/2012/09/06/xamlparseexception-in-winrt/

于 2012-10-15T13:31:33.800 に答える
0

次のシナリオを使用して、同様のインシデントが発生しました。

1-winRTのプロジェクトを作成します(ソリューションが作成されます)

2-ソリューションに別のwinRTプロジェクトを追加します

3-プロジェクト2にUserControlを作成します

4-プロジェクト1のページにコントロールをドロップします。

5-アプリを実行してXamlパーサーエラーを取得する

これには、さまざまなビジネスニーズに使用した2つのソリューションがありました。

1-コントロールをプロジェクト2から、コントロールと呼ばれるサブフォルダー/サブネームスペースのメインプロジェクトにコピーします。userControlsがそれらを使用するプロジェクトに配置されている場合、問題は残りません。

2-プロジェクト2のコントロールをプロジェクト1から分離する必要がある場合ライブラリ間で使用されるコントロールは、より一般的なユーザーコントロールタイプではなく、テンプレートユーザーコントロールタイプである必要があります。

なぜこれが発生したのかを私は主張していません...XAMLコンパイラの観点からは両方の変更が受け入れられたというだけです。

于 2012-10-15T18:40:06.357 に答える