かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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

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

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

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


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

まとめ

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