none
Visual Studio Environment 6.0 で依存関係が見つからない RRS feed

  • 質問

  • お世話になります。

    VisualBasicで作成したプログラムを配布用にMicrosoftDevelopmentEnvironment6.0でインストーラファイル(msi)ファイルを作成したところ、c\windows\system32\fbimtn32\fbimtn.dllに対するマージモジュールも依存関係も見つかりませんと表示されます。

     ヘルプを見ると手動で依存関係を追加して下さいとありますが、この方法が分かりません。しかし、ビルドした結果、ソリューションは正常に

    完了しましたと表示され、msiファイルは出来上がっています。

    また、VB6JP.MSM内の1つ以上のファイルがこのマシン上にインストールされているファイルのバージョンと異なりますと表示されます。

    この警告の不具合は何でしょうか?

    まったくの初心者である為、ご迷惑をおかけしますが、宜しくお願いします。

    2013年5月26日 6:58

回答

  • > MicrosoftDevelopmentEnvironment6.0でインストーラファイル(msi)ファイルを作成したところ

    Visual Studio Installer 1.1 で、VB6 製プロジェクト向けの配布用パッケージを作成しておられるのですね。

    > fbimtn.dllに対する

    同じものかどうかは分かりませんが、ファイル名で検索してみると下記が見つかりました。
    http://www.interface.co.jp/catalog/soft/prdc_soft_all.asp?name=gpc-7400

    > マージモジュールも依存関係も見つかりません

    これは、追加の手動操作もしくは確認が必要であることを示しています。

    指定した VB6 のプロジェクトから fbimtn.dll が呼び出されていることが検出されましたが、その DLL に関する情報が不足しているようです。すなわち、「そのDLL が他にどのようなファイルに依存しているのかが分からない」ので「必要なファイルが他にもあれば、手動で登録してください」という意味のメッセージです。

    もしこれが、VBで標準的なファイル(たとえば、コモンダイアログのCOMCTL32.OCXなど)であれば、依存関係ファイル(COMCTL32.DEP)や、マージモジュール(COMDLG32.MSM)などから依存関係が判断され、他に必要なファイル(コモンダイアログなら、ComCat.dll や CmDlgJp.dll など)が、インストーラーに追加されるのですが……お使いの fbimtn.dll には、そういった「依存情報ファイル」が用意されていなかったようです。

    今回の DLL が単独で配布して使えるファイルなのか、それとも他にも再頒布すべきファイルがあるのかは、こちらでは分かりませんので、DLL の提供元に連絡して確認をとってみてください。単にコピーするだけで動くものであれば、警告を無視して先に進んでもらって構いません

    しかし、他にも必要なファイルがある場合には、[ソリューション エクスプローラ]を開き、ツリー内の[ファイル]を右クリックして、必要なファイルを手動で追加してください。追加されたファイルは、[ターゲット マシン]-[ファイルシステム]の項目を使い、適切な場所に配置する必要があります。

    製品によっては、ランタイムライセンスの追加購入が必要なものや、配布方法に制限があるものも稀に存在します(たとえば、自作のインストーラーに含めてはならず、DLLの提供元が用意した SETUP.EXE からインストールすることが求められる物など)。今回の DLL がどういったものかは分かりませんが、念のため DLL 付属のマニュアルに配布方法に関する注意書きが無いか調べるか、提供元にお問い合わせいただくのが安全かと思います。

     

    > VB6JP.MSM内の1つ以上のファイルがこのマシン上にインストールされているファイルのバージョンと異なりますと表示されます。

    VB6JP.MSM は、VB6JP.DLL を配布するために使われるファイルです。現在使用している MSVBVM60.DLL のバージョンと、MSVBVM60.MSM 内の MSVBVM60.DLL のバージョンの不一致が原因で警告が発生しています。

    .MSM は「マージモジュール」とも呼ばれるファイルであり、複数の製品から利用されるファイルの配布に使われるパッケージです。Visual Studio 6.0 Service Pack 6 付属のマニュアルに、MSM のファイル配置方法が記載されているはずなので確認してみてください。

    SP5 のときのマニュアルなら、Webキャッシュにありましたが…。ココの 4.7.6 の項です。
    マージモジュールは通常、Program Files 配下の
    Microsoft Visual Studio\Common\Tools\VSInst\BuildRes\
    Microsoft Visual Studio\Common\Tools\VSInst\BuildRes\1041\
    の下に配置して使うようになっています。

    あるいは、以下で提供されている MSM 群を使うことも出来ます。
    Visual Basic 6.0 および Visual C++ 6.0 の Service Pack 6 用マージ モジュール

    これらのマージモジュールには、それ以降の各種セキュリティ修正で配布されたバージョンは含まれていませんので、これを使っても警告が消えない場合があります。ただし、更新されたものについては OS の更新(Windows Update/Microsoft Update)にて配布されますので、基本的には、「SP6用の MSM」を利用しておけば問題無いでしょう。

    • 回答の候補に設定 星 睦美 2013年5月28日 6:49
    • 回答としてマーク 星 睦美 2013年5月31日 4:27
    2013年5月26日 15:03

すべての返信

  • > MicrosoftDevelopmentEnvironment6.0でインストーラファイル(msi)ファイルを作成したところ

    Visual Studio Installer 1.1 で、VB6 製プロジェクト向けの配布用パッケージを作成しておられるのですね。

    > fbimtn.dllに対する

    同じものかどうかは分かりませんが、ファイル名で検索してみると下記が見つかりました。
    http://www.interface.co.jp/catalog/soft/prdc_soft_all.asp?name=gpc-7400

    > マージモジュールも依存関係も見つかりません

    これは、追加の手動操作もしくは確認が必要であることを示しています。

    指定した VB6 のプロジェクトから fbimtn.dll が呼び出されていることが検出されましたが、その DLL に関する情報が不足しているようです。すなわち、「そのDLL が他にどのようなファイルに依存しているのかが分からない」ので「必要なファイルが他にもあれば、手動で登録してください」という意味のメッセージです。

    もしこれが、VBで標準的なファイル(たとえば、コモンダイアログのCOMCTL32.OCXなど)であれば、依存関係ファイル(COMCTL32.DEP)や、マージモジュール(COMDLG32.MSM)などから依存関係が判断され、他に必要なファイル(コモンダイアログなら、ComCat.dll や CmDlgJp.dll など)が、インストーラーに追加されるのですが……お使いの fbimtn.dll には、そういった「依存情報ファイル」が用意されていなかったようです。

    今回の DLL が単独で配布して使えるファイルなのか、それとも他にも再頒布すべきファイルがあるのかは、こちらでは分かりませんので、DLL の提供元に連絡して確認をとってみてください。単にコピーするだけで動くものであれば、警告を無視して先に進んでもらって構いません

    しかし、他にも必要なファイルがある場合には、[ソリューション エクスプローラ]を開き、ツリー内の[ファイル]を右クリックして、必要なファイルを手動で追加してください。追加されたファイルは、[ターゲット マシン]-[ファイルシステム]の項目を使い、適切な場所に配置する必要があります。

    製品によっては、ランタイムライセンスの追加購入が必要なものや、配布方法に制限があるものも稀に存在します(たとえば、自作のインストーラーに含めてはならず、DLLの提供元が用意した SETUP.EXE からインストールすることが求められる物など)。今回の DLL がどういったものかは分かりませんが、念のため DLL 付属のマニュアルに配布方法に関する注意書きが無いか調べるか、提供元にお問い合わせいただくのが安全かと思います。

     

    > VB6JP.MSM内の1つ以上のファイルがこのマシン上にインストールされているファイルのバージョンと異なりますと表示されます。

    VB6JP.MSM は、VB6JP.DLL を配布するために使われるファイルです。現在使用している MSVBVM60.DLL のバージョンと、MSVBVM60.MSM 内の MSVBVM60.DLL のバージョンの不一致が原因で警告が発生しています。

    .MSM は「マージモジュール」とも呼ばれるファイルであり、複数の製品から利用されるファイルの配布に使われるパッケージです。Visual Studio 6.0 Service Pack 6 付属のマニュアルに、MSM のファイル配置方法が記載されているはずなので確認してみてください。

    SP5 のときのマニュアルなら、Webキャッシュにありましたが…。ココの 4.7.6 の項です。
    マージモジュールは通常、Program Files 配下の
    Microsoft Visual Studio\Common\Tools\VSInst\BuildRes\
    Microsoft Visual Studio\Common\Tools\VSInst\BuildRes\1041\
    の下に配置して使うようになっています。

    あるいは、以下で提供されている MSM 群を使うことも出来ます。
    Visual Basic 6.0 および Visual C++ 6.0 の Service Pack 6 用マージ モジュール

    これらのマージモジュールには、それ以降の各種セキュリティ修正で配布されたバージョンは含まれていませんので、これを使っても警告が消えない場合があります。ただし、更新されたものについては OS の更新(Windows Update/Microsoft Update)にて配布されますので、基本的には、「SP6用の MSM」を利用しておけば問題無いでしょう。

    • 回答の候補に設定 星 睦美 2013年5月28日 6:49
    • 回答としてマーク 星 睦美 2013年5月31日 4:27
    2013年5月26日 15:03
  • フォーラム オペレーターの星 睦美です。
    masumasu さん、こんにちは

    質問のDLLの取り扱いに関して、魔界の仮面弁士 さんからの返信が参考になるのではないかと思いますので今回は私のほうで[回答としてマーク] させていただきました。

    回答の内容に引き続き質問がありましたら、いつでも[回答としてのマークの解除]をして返信できます。

    それではこれからもMSDN フォーラムをよろしくお願いします。


    日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美


    • 編集済み 星 睦美 2013年5月31日 4:28 編集
    2013年5月31日 4:27