システム階層を表す自動化された視覚化ツールとして、アプリケーションに埋め込まれた Visio 描画コントロールを使用しています。コード ビハインドでは、Visio 相互運用機能を使用して、すべての図形を作成およびレイアウトします。Visio ドキュメントが埋め込まれた "デザイナー" 部分は、WindowsFormsHost コントロール内の (ActiveX) Visio Drawing コントロールを使用するカスタム コントロールによって実現されます。
このアプローチは、現在まで数年間うまく機能しています。最初に VS2008/Visio 2007 に実装し、次に VS2010 に移行し、次に Visio 2010 に移行しました。VS2010/O2010 に移行した後、x64 をターゲットとする別のビルドを追加しました。
これを行うには、ActiveX コントロールを再構築する必要がありました。VS デザイナーは 64 ビット バージョンの Visio Drawing コントロールをサポートしていないため、単純に WindowsFormsHost を作成して Visio Drawing コントロールをそこにドロップすることはできません。WPF コントロールは、32 ビット バージョンとは異なる方法で構築する必要があります。どうやってやったか正確には覚えていませんが、基本的にはこれだったと思います(おそらくこれに基づいています):
- 32 ビット Visio がインストールされたビルド環境で WPF フォームを作成する
- Visio Drawing コントロールをツールボックスから WindowsFormsHost 内のフォームにドラッグ アンド ドロップします。この手順を実行すると、VS は AxMicrosoft.Office.Interop.VisOcx 型の新しい DLL「Microsoft Visio 15.0 Drawing Control Type Library」を作成 (および参照を追加) します。この DLL は、プロジェクトの下の /obj/Release ディレクトリに配置されます。
- プロジェクトをビルドして、最終的な x86 ソリューション ビルド用の WPF コントロール DLL を作成します。
- 32 ビット ソリューションの場合、{your control} .dllとAxMicrosoft.Office.Interop.VisOcx.dll の両方をコピーして参照します。
- 64 ビット Visio がインストールされたビルド環境で、このコントロール プロジェクトを保存、コピー/移動、および開く
- ビルド ターゲットを x64 に変更します
- プロジェクトをビルドして、最終的な x64 ソリューション ビルド用の WPF コントロール DLL を作成します。
- /bin/Release/ {custom control} .dll および /obj/Release/AxMicrosoft.Office.Interop.VisOcx.dll をコピーして参照します。
32 ビット バージョン用にビルドできますが、これは Visio 2013 64 ビットでは機能しません。これを行う方法の手がかりはありますか?