C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: VisioのCOMの参照ができない


(過去ログ 81 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■47772 / inTopicNo.1)  VisioのCOMの参照ができない
  
□投稿者/ jose (3回)-(2010/03/14(Sun) 18:05:34)

分類:[C#] 

お世話になります。

Visio(2007 Professional)のデータベースモデル図をC#/VB.NETから操作したいと思っています。
単なる図形オブジェクトの操作でしたらCOM経由でApplication->Documents->Document->Pages->Page->Shapesで操作できました。
操作したいと思っているのが、エンティティやリレーションをクリックした際に「データベースプロパティ」ペインに
表示される情報です。(エンティティでいえば物理名・概念名、リレーションでいえば物理名などです。)

COMでそれらしき「Microsoft Visio Database Modeling Engine Type Library」を試しに参照に追加してみたのですが、
COMからCLRに変換するタイプライブラリインポータ(Tlbimp.exe)でエラーが起きてそうなエラーメッセージがでて、
コンパイルに失敗します。

何か情報をお持ちでしたら教えていただけませんでしょうか。よろしくお願いいたします。

○ 環境
Visual Studio 2005(C#)
Visio 2007 Professional

エラー 4 "ResolveComReference" タスクが予期せずに失敗しました。
System.SystemException: タイプ ライブラリ インポータで型の検証中にエラーが発生しました。クラス メンバなしでインポートしてください。 ---> System.TypeLoadException: アセンブリ 'Interop.MODELENGLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null' からの型 'MODELENGLib.VMEERModelClass' のメソッド 'IVMEERModel_UpdateVerbalizer' は、オーバーライドされたメソッドをオーバーライドしようとしています。
場所 System.Reflection.Module._InternalLoadInMemoryTypeByName(String className)
場所 System.Runtime.InteropServices.TypeLibConverter.TypeResolveHandler.ResolveEvent(Object sender, ResolveEventArgs args)
場所 System.AppDomain.OnTypeResolveEvent(String typeName)
--- 内部例外スタック トレースの終わり ---
引用返信 編集キー/
■47773 / inTopicNo.2)  Re[1]: VisioのCOMの参照ができない
□投稿者/ やじゅ (1553回)-(2010/03/14(Sun) 19:25:42)
やじゅ さんの Web サイト
No47772 (jose さん) に返信
> COMでそれらしき「Microsoft Visio Database Modeling Engine Type Library」を試しに参照に追加してみたのですが、
> COMからCLRに変換するタイプライブラリインポータ(Tlbimp.exe)でエラーが起きてそうなエラーメッセージがでて、
> コンパイルに失敗します。
>
> 何か情報をお持ちでしたら教えていただけませんでしょうか。よろしくお願いいたします。

「MODELENGLib VMEERModelClass」で検索してみました。

I used the "tlbimp"
http://www.eggheadcafe.com/forumarchives/vsnetenterprisetools/Nov2005/post24311527.asp

Tlbimp.exeは、COMコンポーネントからマネージ・ラッパーを生成するためのツール
http://www.atmarkit.co.jp/fdotnet/aspmigrt/aspmigrt03/aspmigrt03_04.html
引用返信 編集キー/
■47778 / inTopicNo.3)  Re[2]: VisioのCOMの参照ができない
□投稿者/ jose (4回)-(2010/03/15(Mon) 10:02:41)
No47773 (やじゅ さん) に返信
> 「MODELENGLib VMEERModelClass」で検索してみました。
>
> I used the "tlbimp"
> http://www.eggheadcafe.com/forumarchives/vsnetenterprisetools/Nov2005/post24311527.asp

やじゅさん返信ありがとうございます。
私も上記のサイトは真っ先に見たのですが、この方も解決できていないようです。

他にも有用な情報がございましたら、教えていただければと思います。
私の方ではtlbimpでCLRラッパを作成できないパターンがどういうときにあるのかを調べて
みたいと思っています。

引用返信 編集キー/
■47779 / inTopicNo.4)  Re[3]: VisioのCOMの参照ができない
□投稿者/ jose (5回)-(2010/03/15(Mon) 10:02:59)
2010/03/15(Mon) 10:04:22 編集(投稿者)
2010/03/15(Mon) 10:04:16 編集(投稿者)

操作を間違ってしまったので削除します。
引用返信 編集キー/
■47781 / inTopicNo.5)  Re[4]: VisioのCOMの参照ができない
□投稿者/ 中博俊 (1372回)-(2010/03/15(Mon) 11:30:54)
VisioのモデリングはVisualStudioの上位エディションによる追加アドオンだったと思いますが、違いますか?
もしそれを意味しているなら、それを操作できるかどうかは微妙かもしれませんよ<ライセンス的に
引用返信 編集キー/
■47871 / inTopicNo.6)  Re[5]: VisioのCOMの参照ができない
□投稿者/ jose (6回)-(2010/03/16(Tue) 21:58:25)
No47781 (中博俊 さん) に返信
> VisioのモデリングはVisualStudioの上位エディションによる追加アドオンだったと思いますが、違いますか?
> もしそれを意味しているなら、それを操作できるかどうかは微妙かもしれませんよ<ライセンス的に

中さん返信ありがとうございます。いつもサイトを活用させていただき、ありがとうございます。

上位エディションとはVisual Studio.NET Enterprise Architectのことでしょうか。
こちらはVisual Studio 2003の上位エディションのようですので、.NET 2.0ではないのかな、と。
確かにこれはVisio2003からDDLのフォワードエンジニアリングがアプリケーションとして可能なようです。
が、私が行いたかったのはアプリケーションの機能としてのデータベース操作ではなく、
Visioからデータベース情報を取得して制御することになります。

http://www.microsoft.com/japan/office/previous/2003/visio/techinfo/pro_vsnet.mspx

Visual Studio 2005ではTeam Edition for Database ProfessionalsがEnterprise Architectに近いものかとは
思いましたが、Visioとの関連に関する記事が見つけられませんでした。

http://www.microsoft.com/japan/msdn/vstudio/products/vsts/dbpro/details/
http://codezine.jp/article/detail/1724?p=4

ExcelをCOM経由で操作するのには何の苦労もした覚えがないのですが(遅かったですが)、
同様にVisioのデータベースモデルが操作できないものか引き続き探してみます。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -