かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

Windows ストア アプリでユーザーコントロールをライブラリ化するときの注意点

前にはまって解決してたけど、Blogにメモってなくて忘れてて悩んだのでメモメモ。
Windows ストア アプリでは、ユーザーコントロールを含むプロジェクトをビルドして出来たdllを配布するだけでは、他の人からユーザーコントロールが使えません。これが正しいアプローチなのかは謎なのですが、とりあえず動く方法を…。

こんなユーザーコントロールを配りたいとき

こんな風に使う側のプロジェクトは構成する


ポイントは、コンパイルしてできたdllを参照するだけではなく、xamlをプロジェクトに追加してるところです。プロジェクト内では、ちゃんとアセンブリ名と名前空間を保った状態でフォルダを作って、そこにXAMLを置くように心がけます。
あとは、XAMLのビルドアクションをコンテンツとかにして常にコピーにすれば完成です。

まとめ

ユーザーコントロールを配布するのは大変そう。NuGet化するときは、xamlが上記のような構造で追加されるようにパッケージ化してしまいましょう。
カスタムコントロールではどうなのか要確認…。もっといいやり方知ってる人がいたらコメントまってます。