NuGetのインストール時に拡張SDKを参照させる方法 #win8dev_jp #wpdev_jp
以前に書いたWindows ストアアプリのActionライブラリをUniversalApp向けにalphaリリースしました。
Windows ストアアプリとWindowsPhoneで共通のViewにActionを配置できます。また、前はBhaviors SDKを手動で参照するようにお願いしてましたが、自動化できました!
- WinRTのためのActionやBehaviorのライブラリをnuget化しました #win8dev_jp - KatsuYuzuのブログ
- NuGet Gallery | Citrus.Interactions 1.1.1-alpha
サンプルプロジェクトやライブラリ内容の充実、アプリはいずれ……。あと、codeplexがreadme.mdの日本語リンクで文字化けしたり、結局project pageは別途編集だったりで不便なのでgithubに移行しました。
NuGetのインストール時に拡張SDKを参照させる方法
通常の方法(nuspecへの記述)ではGACまたは同梱のライブラリしか追加できませんので、拡張SDKを参照させるにはNuGetのインストールをPowerShellで拡張します。
パッケージに下記のtools\install.ps1
を含めます。
param($installPath, $toolsPath, $package, $project) Write-Host "Adding Behaviors SDK (XAML)" $project.Object.References.AddSDK("Behaviors SDK (XAML)", "BehaviorsXamlSDKManaged, version=12.0")
NuGetのインストール時にPowerShellが実行され、プロジェクトにSDKReference
が追加されます。
<SDKReference Include="BehaviorsXamlSDKManaged, version=12.0"> <Name>Behaviors SDK %28XAML%29</Name> </SDKReference>
NuGetのバージョン2からinstall.ps1でインストールを拡張できて、さらにVS2012からプロジェクトのインターフェイスが拡張されていたようです。
記事末の参考サイトでは$frameworkName.Version.Build
で条件分岐してますが、WindowsPhoneのプロジェクトのバージョン情報がが8.1で条件に合わないこと、そもそもnugetの対象プロジェクトを合わせていることから、無条件でAddSDKするようにしました。
参考
githubにnuspecとかinstall.ps1とかあるのでみてください。