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

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

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

参照設定のパスを動的に変更する方法

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

■83596 / inTopicNo.1)  参照設定のパスを動的に変更する方法
  
□投稿者/ 惹起 (13回)-(2017/03/30(Thu) 10:53:09)

分類:[.NET 全般] 



http://bbs.wankuma.com/index.cgi?mode=al2&namber=83350

このページでImageMagick を使うために
ImageMagickObject.dll (ImageMagic Object x.x Type Library)を参照設定して、
 Dim mi As New ImageMagickObject.MagickImage()
のように、固有の型で宣言する方法を教えていただきました。

このDLLのあるフォルダーなのですが
C:\Program Files (x86)\ImageMagick-7.0.4-Q16\ImageMagickObject.dll
のように、フォルダー名にImageMagick のバージョンが含まれており、
PCによってパスを変更する必要があります。

そのため、参照設定のパスを動的に変更したいのですが
どのようにすれば良いですか?






引用返信 編集キー/
■83600 / inTopicNo.2)  Re[1]: 参照設定のパスを動的に変更する方法
□投稿者/ Hongliang (517回)-(2017/03/30(Thu) 11:22:21)
Type LibraryってことはCOM参照ですよね?
COM参照の場合、DLLのパスがプロジェクトに含まれることはないはずですが?

あと、Image Magickは、.NET用ライブラリであるMagick.NETというのがNuGetで公開されているようです。
こちらを使えばパッケージ管理が楽になるかも知れません。
引用返信 編集キー/
■83601 / inTopicNo.3)  Re[2]: 参照設定のパスを動的に変更する方法
□投稿者/ 惹起 (15回)-(2017/03/30(Thu) 11:34:57)
ありがとうございます。

> COM参照の場合、DLLのパスがプロジェクトに含まれることはないはずですが?

これはどういうことですか?
EXEを実行するPCによってDLLのパスが違った場合は
どうやって参照する仕組みになっていますか?

Magick.NETは初めて知りました
調べてみたところ、アルファ版しか公開されておらず、
更新も2014年で停止しているみたいなので、
やはりImageMagickを使いたいと考えております。
 
引用返信 編集キー/
■83602 / inTopicNo.4)  Re[3]: 参照設定のパスを動的に変更する方法
□投稿者/ Hongliang (518回)-(2017/03/30(Thu) 12:03:05)
> これはどういうことですか?
> EXEを実行するPCによってDLLのパスが違った場合は
> どうやって参照する仕組みになっていますか?
レジストリで管理されています。
参照する側はGUIDを使用し、そのGUIDを元にDLLが検索されます。
*.vbprojをメモ帳などのテキストエディタで開いてみればGUIDが確認できるかと。

> Magick.NETは初めて知りました
> 調べてみたところ、アルファ版しか公開されておらず、
> 更新も2014年で停止しているみたいなので、
> やはりImageMagickを使いたいと考えております。
NuGetで公開しているので、それ以外のチャネルを更新していないだけでは。
Visual Studioの
ツール>NuGetパッケージマネージャ>ソリューションのNuGetパッケージの管理
からmagickで検索すると、各パッケージの最新版v7.0.4.701が2017/02/13に公開されていますね。
引用返信 編集キー/
■83605 / inTopicNo.5)  Re[3]: 参照設定のパスを動的に変更する方法
□投稿者/ PANG2 (167回)-(2017/03/30(Thu) 16:26:53)
開発環境と実行環境でImageMagicのバージョンが異なるのであれば、エラーになるのでは?
遅延バインディングにすることになるでしょう。

--
元の質問の回答 No83377

VBプログラムで開発環境と実行環境のExcelのバージョンが異なるとき
http://qiita.com/carbonated3030/items/0e64a8206a8d5e3be923


引用返信 編集キー/
■83606 / inTopicNo.6)  Re[4]: 参照設定のパスを動的に変更する方法
□投稿者/ 魔界の仮面弁士 (1229回)-(2017/03/30(Thu) 16:49:44)
No83605 (PANG2 さん) に返信
> 開発環境と実行環境でImageMagicのバージョンが異なるのであれば、エラーになるのでは?
> 遅延バインディングにすることになるでしょう。

COM コンポーネント側の実装次第ですね。

Excel の場合、ディスパッチID を変更しないまま、Sub が Function になったり、
省略可能な引数が追加されるケースがあるので、レイトバインドに依存せざるを得ませんが、
バイナリー互換性が正しく維持されている COM コンポーネントなら大丈夫でしょう。


ImageMagic の場合については、情報を持ち合わせていません。(ImageMagic を使ったことがない…)
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ