ユニバーサル アプリでは Shared プロジェクトという仕組みを使って Windows と Windows Phone のコードを共有することができます。
でも、ちょっと真面目に両対応アプリを作ろうとすると 困ったことがあります。
例えば NuGet で Json.NET のような便利なライブラリを持ってこようとしたとき...
あれ? 「NuGet パッケージの管理」が出てくるのは Windows / Windows Phone プロジェクトだけですね。外部ライブラリを共有するにはどうすれば...? *1
PCL の追加
とりあえず新たに クラスライブラリ (ユニバーサル アプリ用ポータブル クラス ライブラリ) を追加すると NuGet が使えるようです。
厳密には Shared プロジェクトで作るクラスと PCL は違うんでしょうけど、 ここで作った PCL は Windows 8.1 と Windows Phone 8.1 用になっているので ぼほ同等の機能が使える...はずですよね?
あとはこのクラスライブラリを Windows / Windows Phone プロジェクトの両方で参照に追加すれば完了。
でも、この方法で進めていくと Shared プロジェクトの中身が App.xaml だけになりそうです。(と言うか なっています) みなさんはどんな分割をしていますか?
追記
この記事の投稿後 3 分で こんな方法を教えてもらいました。ソリューション名 右クリックで 「ソリューションの NuGet パッケージの管理」を選ぶことで、それぞれのプロジェクトに適した外部ライブラリが追加されるようです。
@kazuakix スッ... pic.twitter.com/A77gKNwLj5
— しばやん (@shibayan) 2014, 9月 29
外部ライブラリの共有という目的では PCL あまり意味なかったですね...。
*1:両方のプロジェクトで外部ライブラリを個別に追加...というのもアリだとは思いますが