tmytのらくがき

個人の日記レベルです

NuGetにUWP向けのクラスライブラリを公開したい

どうしてもNuGetにUWP向けのクラスライブラリを公開したくていろいろ調べていたら以下の知見を得ました。

  • nupackに含めるのはAnyCPUだけでいい
    • nativeコンパイルはアプリ本体のビルド時にクラスライブラリを含めて一括で実行されるのでクラスライブラリはAnyCPUだけでよいそうです。
  • nupackに含めるべきファイルは以下の4つないし5つ(プロジェクト構成に応じてもっとたくさん)*1
    • ClassLibrary.dll
    • ClassLibrary.pri
    • ClassLibrary.xr.xml
    • ClassLibrary.rd.xml
    • Themes/Generic.xbf

これをnuspec風に書くとこんな感じです。uap10.0 とすることでUWP向けのライブラリを明示してる感じですね。あとはファイルをよさげな位置に配置。Themesの中身がもっとある場合はそれに合わせてTheemsにファイルを追加する感じでよいと思います。

<files>
  <file src="Properties\ClassLibrary.rd.xml" target="lib\uap10.0\ClassLibrary\Properties\ClassLibrary.rd.xml" />
  <file src="bin\Release\ClassLibrary.xr.xml" target="lib\uap10.0\ClassLibrary\ClassLibrary.xr.xml" />
  <file src="bin\Release\ClassLibrary.pri" target="lib\uap10.0\ClassLibrary.pri" />
  <file src="bin\Release\ClassLibrary.dll" target="lib\uap10.0\ClassLibrary.dll" />
  <file src="bin\Release\Themes\Generic.xbf" target="lib\uap10.0\ClassLibrary\Themes\Generic.xbf" />
</files>

*1:出力ファイルがClassLibrary.dllという前提で書いています