[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/03/08(Tue) 00:17
投稿者名:はこ
Eメール:
URL :
タイトル:
コマンドラインオプションの構文エラーです
いつもお世話になっております。

「Microsoft ActiveX Data Objects 2.8 Library」を参照設定している
プログラムのセットアップディスクをディストリビューションウィザード
を使って作成しているのですが。

ユーザ名にダブルバイト文字が使用されている環境でセットアップを
実行すると、「MDAC_TYP.EXE」をインストールする際に、
「コマンドラインオプションの構文エラーです。」というエラーに
なってしまいます。
そのメッセージでOKボタンを押下すると、アプリのセットアップ自体は
完了するのですが、エラーメッセージがどうも気になります。

ユーザ名にダブルバイト文字が含まれていない環境では、エラーメッセージは
表示されません。

以前、「File not found」メッセージが表示される件については、
Setup1.vbpを修正することにより、回避できるという情報があったのですが、
今回のエラーはどうしても回避できない問題なのでしょうか?

ご存知の方いらっしゃいましたら、ご教授ください。
よろしくお願いします。

<セットアップディスク作成環境>
 WindowsXP SP2、Visual Basic 6.0 SP5
<セットアップ実行環境>
 WindowsXP SP2(ログインしているユーザ名にダブルバイト文字が含まれている)

投稿時間:2005/03/08(Tue) 07:53
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: コマンドラインオプションの構文エラーです
> 以前、「File not found」メッセージが表示される件については、
> Setup1.vbpを修正することにより、回避できるという情報があったのですが、
> 今回のエラーはどうしても回避できない問題なのでしょうか?

Setup1.vbp を修正されたのですか?
今回のエラーについても原因は同じようですが?
エラーメッセージをキーワードにして検索して見てください。

hhttp://www.google.com/search?q=%83%52%83%7D%83%93%83%68%83%89%83%43%83%93%83%49%83%76%83%56%83%87%83%93%82%CC%8D%5C%95%B6%83%47%83%89%81%5B%82%C5%82%B7&num=50&hl=ja&filter=0&lr=lang_ja&ie=Shift_JIS

投稿時間:2005/03/08(Tue) 09:54
投稿者名:はこ
Eメール:
URL :
タイトル:
Re^2: コマンドラインオプションの構文エラーです
花ちゃんさん

ご回答どうもありがとうございます。

Setup1.vbpの修正は実施致しました。
(「File not found」のエラーメッセージは表示されません)

修正後のSetup1を用いてセットアップディスクも作成しなおしてみたのですが、
やはり同じエラー(「コマンドラインオプションの・・・」)が表示されてしまいます。
MDAC_TYP.EXEを手動で単体で実行した場合には、ダブルバイト文字が使われている
ユーザ環境でも正常にインストールが完了しました。

エラーメッセージで検索もしてみたのですが、やはりダブルバイト文字を使用
していないユーザでセットアップを実行しなければいけない、とか、
セットアップにMDACを含まないようにする、といった情報ばかりで根本的な
解決策を見つけることができませんでした。

投稿時間:2005/03/08(Tue) 09:14
投稿者名:だい
Eメール:dee_bassist@hotmail.com
URL :
タイトル:
Re: コマンドラインオプションの構文エラーです

> ユーザ名にダブルバイト文字が使用されている環境でセットアップを
> 実行すると、「MDAC_TYP.EXE」をインストールする際に、
> 「コマンドラインオプションの構文エラーです。」というエラーに
> なってしまいます。


(1)実行環境の環境変数 TMP をシングルバイトのパスに変更するとどうなりますか?


(2)配布パッケージに含まれているMDAC_TYP.EXEは日本語版のVer2.8ですか?
MDAC2.8は以下から入手できます。
hhttp://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-
185d0506396c&displaylang=ja
参照設定がADO2.8だとしても、
通常状態では、MDAC2.5が配布パッケージに含まれています。
それを日本語版2.8に差し替えてパッケージを再作成し、
実行環境へセットアップしてもエラーが出ますか?

投稿時間:2005/03/08(Tue) 09:59
投稿者名:はこ
Eメール:
URL :
タイトル:
Re^2: コマンドラインオプションの構文エラーです
だいさん

ご回答どうもありがとうございます。

> (1)実行環境の環境変数 TMP をシングルバイトのパスに変更するとどうなりますか?

環境変数TMPをシングルバイトパスに変更すると、セットアップは正常に終了します。

> (2)配布パッケージに含まれているMDAC_TYP.EXEは日本語版のVer2.8ですか?

Ver2.5でした。
Ver2.8をダウンロードして、それがインストールされるようにパッケージを
作成しなおしてみたのですが、やはりMDACをインストールしようとした瞬間に
同じエラーメッセージ(「コマンドラインオプションの・・・」)が表示されて
しまいます。

MDACを単体でインストールする場合には、環境変数TMPのパスにダブルバイト文字が
含まれていても正常に終了するようです。

投稿時間:2005/03/08(Tue) 10:27
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: コマンドラインオプションの構文エラーです
> > (1)実行環境の環境変数 TMP をシングルバイトのパスに変更するとどうなりますか?
>
> 環境変数TMPをシングルバイトパスに変更すると、セットアップは正常に終了します。

だったら、マイクロソフト サポート技術情報 - 416585  [VB] 作成したパッケージを
Windows2000にセットアップするときのエラー 
hhttp://support.microsoft.com/default.aspx?scid=kb;ja;416585
に書いてあるインストーラ パッケージ作成時の対策をされていないと言う事じゃないのですか?

投稿時間:2005/03/08(Tue) 11:53
投稿者名:はこ
Eメール:
URL :
タイトル:
Re^4: コマンドラインオプションの構文エラーです
花ちゃんさん

> だったら、マイクロソフト サポート技術情報 - 416585  [VB] 作成したパッケージを
> Windows2000にセットアップするときのエラー 
> hhttp://support.microsoft.com/default.aspx?scid=kb;ja;416585
> に書いてあるインストーラ パッケージ作成時の対策をされていないと言う事じゃないのですか?

対策はしています。
SETUP1.vbp内のfrmSetup1のForm_Load()で以下のように修正し、setup1.exeを
作り直したうえで、パッケージを作成しております。

    '使用する一時ディレクトリを取得します。
'    gsTEMPDIR = String$(255, 0)
'    lChar = GetTempPath(255, gsTEMPDIR)
'    gsTEMPDIR = Left$(gsTEMPDIR, lChar)
'    AddDirSep gsTEMPDIR
'    gsTEMPDIR = gsTEMPDIR & ReadIniFile(gstrSetupInfoFile, gstrINI_BOOT, gsINI_TEMPDIR)
'    AddDirSep gsTEMPDIR
    gsTEMPDIR = String$(255, 0)
    lChar = GetTempPath(255, gsTEMPDIR)
    Dim s As String
    s = StrConv(gsTEMPDIR, vbFromUnicode)
    s = LeftB(s, lChar)
    gsTEMPDIR = StrConv(s, vbUnicode)
    AddDirSep gsTEMPDIR
    gsTEMPDIR = gsTEMPDIR & ReadIniFile(gstrSetupInfoFile, gstrINI_BOOT, gsINI_TEMPDIR)
    AddDirSep gsTEMPDIR

投稿時間:2005/03/08(Tue) 11:00
投稿者名:だい
Eメール:dee_bassist@hotmail.com
URL :
タイトル:
Re^3: コマンドラインオプションの構文エラーです

> 環境変数TMPをシングルバイトパスに変更すると、セットアップは正常に終了します。

> MDACを単体でインストールする場合には、環境変数TMPのパスにダブルバイト文字が
> 含まれていても正常に終了するようです。

SETUP1.EXE内でコマンドライン引数をつけてmdac_typ.exeを呼んでいるところがあり、
その部分に対する2バイト文字の影響が考えられます。
根本的に解決するには、SETUP1.EXEのカスタマイズが必要と思われます。

現在テンポラリ作業用パスgsTEMPDIRをGetTempPathで求めている部分を
ユーザ名に依存しないような他の手段に置き換える。
等が思いつきますが、当方では未検証です。

投稿時間:2005/03/08(Tue) 12:56
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^4: コマンドラインオプションの構文エラーです
実際のインストール時の gsTEMPDIR の値がどのようになっているのか気になりますが。

他のインストーラを使用したらどうなりますか?

hhttp://www.microsoft.com/japan/msdn/vs_previous/vstudio/vsi/download.asp

hhttp://dobon.net/vb/installer/index.html



投稿時間:2005/03/08(Tue) 17:30
投稿者名:はこ
Eメール:
URL :
タイトル:
Re^5: コマンドラインオプションの構文エラーです
だいさん
花ちゃんさん

いろいろどうもありがとうございます。

結局Setup1.exeを改造することにしました。
ちょっと強引なのですが、gsTEMPDIRに環境変数のTMPパスではなく、
固定でCドライブの直下にセットアップ用のTEMPフォルダを参照する
ようにSetup1を改造することで対応することにしました。

>花ちゃんさん
他のインストーラが手元にないため確認できませんでした。
せっかく情報をいただいているのに、申し訳ありません。