2

サードパーティ企業に提供するために、新しい Metro Design (WinRT) を使用していくつかの UI コンポーネントを開発しています。コントロールのパッケージを展開する際に問題が発生しています。新しいプロジェクトのコントロールによって生成された .dll ファイルを参照すると、すべてのオブジェクトにアクセスしてインスタンス化できますが、コンパイル時に次のようなエラーが発生します。

"Payload file '...\bin\Debug\Charts\Line\Line.xaml' does not exist.". (/bin .dll を提供する場合)

また

XamlParseException at Windows.UI.Xaml.Application.LoadComponent(Object component, Uri resourceLocator, ComponentResourceLocation componentResourceLocation)(/obj フォルダーの .dll を使用する場合)

「この問題の回避策は、xaml ファイルと .dll を顧客に展開/提供することです。ただし、XAML コードを表示することは避けたいと考えています。

前もって感謝します

NG

4

1 に答える 1

2

XAML ファイルは Windows 8 WinRT/XAML のルーズ ファイルであるため、XAML とコード ビハインドを一緒にバインドする組み込みツールを利用する場合は、XAML ファイルを共有する必要があります。

展開可能なコントロールの構築に関する Tim Heuer の記事は、こちらで読むことができます。彼は、コントロールを共有する 2 つの方法について言及しています。Visual Studio にインストールされる VS Extensions SDK を使用する方法と、NuGet パッケージを共有できる NuGet パッケージとして使用する方法のいずれかです。そうすれば、共有するコンポーネントを最初に見たときにファイルが表示されなくなりますが、ファイルはプロジェクト フォルダーに含まれます。

避けたいと思われる別の方法は、プロジェクトにドロップするファイルとして dll + xaml ファイルを共有することです。ツールで xaml ファイルを見つけるには、dll と同じ名前 (ファイル拡張子を除く) のフォルダーに xaml ファイルを配置する必要があります。ツールを使用するための単なる代替手段です。

ストアからインストールしたアプリを見ると、それらに付属するすべての XAML ファイルを確認できます。現時点では、大量のコードを記述して XAML を何らかの方法でバイナリに埋め込むか、コード ビハインドに置き換える以外に、適切な代替手段はありません。

于 2012-10-31T18:19:51.100 に答える