かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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

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

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

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


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

まとめ

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