相互運用による IDE の問題

こんなことする人、殆どいないでしょうが、WPF Window と Windows フォームを同じプロジェクト内で開発しています。WindowsForms と WPF は全く違うアーキテクチャなので本来別プロジェクトにすべきなんですが、WindowsForms から WPF への「緩やかな移行」を目指し、同じプロジェクト内でちくちく作成してるわけなんです。


同一プロジェクト内に Form と Window が混在


相互運用のイメージ図


しかし、VisualStudio の IDE 自体が相互運用を想定したつくりになってないせいか、ソリューションの規模が大きくなるにつれ(10プロジェクト)、私の開発環境(XP/SP3・VS2008)で様々な問題が発生しております。ただし実行時は、特に問題は起きていません。
以下、本日現在まで気が付いた問題と対処法を挙げてみました。後から気が付いたことがあれば、このエントリーに追加していく予定です。

# なお VisualStudio 2010 は、一部のライブラリが .NET 4.0 未対応ということもあり、まだ試せていません。

VisualStudio 2008 起動時のエラー

前回 VS を終了するまではエラーがなかったのに、VisualStudio 起動するとエラーが大量に表示されてる場合がありますが、ソリューションをリビルドするとエラーは消えます。

「デザイナの表示」が消える?

WPF Window を編集していると、ソリューションエクスプローラーで Form を選択し右クリックしたときのメニューアイテムから「デザイナの表示」が消えてしまいます。どのタイミングでメニューアイテムが消えるのかはまだ判りませんが、VisualStudio を再起動すると表示されるようになります。

デザイナのエラー

Window を編集中に Form をデザイナで開こうとすると

サービス System.Windows.Forms.Design.IEventHandlerService は既にサービス コンテナに存在します。
パラメータ名: serviceType

というエラーが発生する場合があります。これも VisualStudio を再起動するとオッケー。


また気づいたことがあれば、追加・編集します。