こんにちはねこねこです。
初心者質問ですがよろしくお願いいたします。
VB.NETでインストーラを作成しようと思い、
セットアッププロジェクトの作成途中で
次のようなメッセージが表示されました。
"次のファイルは自動的に判断できない依存関係を
持っている可能性があります。
プロジェクトに全ての依存関係が追加されているか確認して下さい。
C:\winnt\system32\msflxgrd.ocx "
このメッセージ内容は具体的にどう意味なのでしょうか?
当方の開発環境はWin2000,VB.NETです。
またインストーラの作成ができたとして、
このEXEをWin98の指定したフォルダにインストールして
起動させることは可能でしょうか?
Win98マシン上で.NETがインストールされていない
状態で動くのでしょうか?
実際にインストールして確認したいのですが
上記のメッセージ内容をクリアしないと
先に進めない状態です。
どうぞアドバイスをお願いいたします。
"次のファイルは自動的に判断できない依存関係を
持っている可能性があります。
プロジェクトに全ての依存関係が追加されているか確認して下さい。
C:\winnt\system32\msflxgrd.ocx
とは、
直訳すると、クライアントには、存在しない可能性を持つOCXがあるよ。
んでもってインストーラーにこういったOCXを追加してね。
と言う話です。
運用ライセンス云々も、ここで関係してきますので、慎重に・・・。
>.NETがインストールされていないマシン。とは
VB.NETがインストールされていないマシン、というわけでしょうか?
それとも、.NET FrameWorkがインストールされていないマシン、というわけでしょうか?
結論は以下の説明を参考に・・・。
--Microsoft ダウンロード センターより引用--
NET Framework Version 1.1 再頒布可能パッケージおよび .NET Framework Version 1.1 LanguagePack をインストールすることにより、
.NET Framework を使用して開発されたアプリケーションを実行することができます。
おはようございます。
いな様回答ありがとうございました。
フレックスグリッドのOCXをインストーラーに追加してみます。
>.NETがインストールされていないマシン。とは
> VB.NETがインストールされていないマシン、というわけでしょうか?
> それとも、.NET FrameWorkがインストールされていないマシン、というわけでし>ょうか?
上記の件ですが、VB.NETもVBも.NET FrameWorkもインストールされていない
マシンです。
.NET自体をまだ一部しか把握していません。
.NET FrameWork又はVB.NETをインストールさせないと
インストーラでインストールしたEXEは起動しないのでしょうか?
あと、昨日ですが、
"次のファイルは自動的に判断できない依存関係を
持っている可能性があります。
プロジェクトに全ての依存関係が追加されているか確認して下さい。
C:\winnt\system32\msflxgrd.ocx "
のメッセージを無視して、プロジェクトにセットアッププロジェクトを
ソリューションに追加しました。
しかしメッセージのことが気になり、追加したセットアッププロジェクトだけを
削除して、もとのプロジェクトに戻したのですが、
フレックスグリッドを使っている画面だけが、デザインフォームを見ることができず
「ドキュメントを読込中にエラーが発生しました。このエラーを修正してから、
再度ドキュメントを 読み込んでください。
エラーメッセージは以下の通りです。
指定されたモジュールが見つかりません。」
と言われてしまいます。
この状態でデバッグするとexceptionで
「System.IO.FileNotFoundException'のハンドルされていない例外が
system.windows.forms.dll で発生しました。
追加情報:指定されたモジュールが見つかりません。」
と言われます。
上記のメッセージはコントロールが無いから言われるのは
わかるのですが、フレックスグリッドだけを使用している画面全体の
デザインが見えなくなる理由(指定されたモジュールが見つからない)
がわかりません。
その部分だけをバックアップしていたものを
かぶせても同じようなメッセージが出ます。
これはどこが原因なのでしょか?
そもそもフレックスグリッドを追加した画面は
私が担当したわけではないので
その辺がわかっていないというのも原因があると思います。
ActiveXコントロールを追加しているという事は
理解しているのですが・・・そこからが勉強不足な為
解消法が見出せていない状態です。。。
おはようございますねこねこです。
OCXの件解消しました。
フォームが見ないという現象ですが、ライセンスが
からんでいました。
FlexGridでしたのでVB6.0のActiveXをインストール
することで解消できました。
Win98マシンにインストーラを用いて
TEST.EXEのインストールを試みました。
.Frameworkの環境がインストールされていないので
Microsoft.NET Famework Version 1.1 日本語Language Pack
をインストールした後、インストーラで起動してみました。
その後下記のメッセージが表示されました。
これは.Framewarkの環境がまだ足りないということでしょうか?
タイトル:TEST.EXE-Common Language Runtime Debugging Services
Application has generated an exception that could not be handled.
Process id=0xffe30a2b(-1897941), Thread id =0xffe2c84f(-1914801)
Click OK to terminate the application
Click CANCEL to debug the application
他のWinXP,Win2000のマシンではインストーラが正常に起動しているのを
確認しています。
ご教授お願いいたします。
ねこねこ
> FlexGridでしたのでVB6.0のActiveXをインストール
> することで解消できました。
FlexGridとMSFlexGridは別物です。
VB6に付属しているActiveXコントロールは、MSFlexGridですね。
さて、幾つか確認させてください。
1. どのようなクラスを利用されていますか?
→.NET Frameworkのクラスは、全てのOSで動作するわけではありません。
そのため、Win98でサポートされていないクラスが利用されていた場合、
そのexeは動作しない事になります。
2. VB6の開発環境を購入してありますか?
→VB6付属版のmsflxgrd.ocxをVB.NETで利用して開発するには、
VB6のデザインタイムライセンスが必要になるため、実質上、
VB6の開発環境を所持している必要があると思われます。
(なお、exeの実行環境には、ランタイムライセンスだけで十分です)
3. そのコントロールを、どのようにして頒布しましたか?
→msflxgrd.ocx単体を、VB6製アプリと共に再頒布する事は可能ですが、
VB.NET製exeとocxだけといった形態での再頒布や、ocxを単体で
再頒布したりする事は、おそらくライセンス違反となります。
補足:
VS.NET 2002/2003の再頒布可能ファイル一覧(redist.txt)を見ると、
チャートコントロールやマスクエディットの名は見つかりますが、
フレキシブルグリッドのファイル名と思しき物を見つける事が
出来ませんでした。おそらく、msflxgrd.ocxを再頒布する時は、
VB6のライセンス定義に従う必要があるのではないでしょうか。
ツイート | ![]() |