2016-10-11 22 views
1

InstallShieldに問題があり、ギアを粉砕しています。私は専門家ではありませんが、私は3年以上ISを使用しています。InstallShieldがProgramDataにコピーすることができません

私のプログラムは、C:\ ProgramData \ [CompanyName] \ [Product Name] \に設定ファイルをインストールします。アップデートをインストールするときに、古い.cfgファイルの名前を.bakファイルに変更して、.cfgファイルも更新する必要があります。しかし、明白な理由がない場合、これはもはや機能しません。それは古いIS2012と何年も働いていましたが、現在は動作を停止しています。私はMoveFile Tableと他の方法で、InstallScriptで試してみました。何も働かなかった。

しかし、ファイルをインストールフォルダ(ProgramFiles)にリネーム(コピー)しようとすると、動作しています。しかし、それは他のところで働いていません。

なぜこのフォルダに書き込めないのですか?私は非常に失望しており、アイデアはもうありません...

私の悪い英語をおかげで申し訳ありません。

+0

どのようにファイルをコピーしようとしているのか、詳細なWindowsインストーラのログに何について言及しているのか、および/またはプロセスモニタが実際に発生したことを確認することができますか?あまりにも多くの落書きがあってはいけません。特に以前のビルドでこれがすでに動作していた場合は、 –

+0

コメントありがとうございます。以前の作業方法は、MoveFileテーブルのエントリでした。 TFSとInstallShieldをアップグレードするまでうまくいきました。現時点では、私は "CopyFile"コマンドを使用するinstallscriptで作業しています。これは、installdirをターゲットディレクトリとして設定している限り動作します。今私は正常に保存されたファイルを正しいディレクトリにコピーする必要がある2番目のスクリプトを追加しました。しかし、これはうまくいきません。インストールのログファイルには、「Note:1:2727 2:」というエラーメッセージが表示されますが、何も見つかりませんでした。 –

答えて

0

MsiDiffなどのツールを使用して、.msiパッケージのビルドの間で変更された内容を分離したい場合があります。冗長ログのエラーは非常に重要です。

注:2727:2:1

あなたがWindows Installer Error Messagesを検索し、2727を検索した場合は、このエラーが

にディレクトリエントリを意味見つけることができます '[2]'ディレクトリテーブルに存在しません。

[2]はメッセージの空の値に対応しているため、ディレクトリ識別子が間違っているテーブルが存在することが示唆されます。問題を特定するために、検証の実行など、通常の疑わしいものを試すことができます。 MoveFile tableと言いますが、ディレクトリの代わりにプロパティが必要なので、このメッセージが出るかどうかは不明です。

問題を見つけて解決するのに十分ではない場合は、さらに具体的な内容で質問を更新する必要があります。

+0

私はその問題の解決策を見つけました。主な問題は、コマンドRenameFile()でした。このコマンドには、スクリプトを実行する場所に設定されていないソースおよびINSTALLDIR変数が必要です。 ISTALLDIRパラメータを避けるために、パラメータにPathを直接設定します。この(モノラル)変更後、スクリプトは正常に動作しました。ご協力ありがとうございました。エラーメッセージのヒントが私の問題を解決しました! :) –

関連する問題