問題タブ [installscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1931 参照

encryption - InstallScriptを使用して文字列を暗号化する方法

InstallScriptMSIプロジェクトを使用してインストーラーを構築しています。インストール中に、いくつかの情報をローカルファイルに保存します。このファイルはユーザーの好みに基づいて作成され、機密情報が含まれている場合があります。

この情報を暗号化したいのですが、これを処理するInstallScript関数が見つかりませんでした。機能ファイルを暗号化できることは知っていますが、このファイルはインストール中に作成され、特定の機能の一部ではありません。

InstallScriptを使用して文字列を暗号化する方法を知っている人はいますか?

ありがとう!

0 投票する
2 に答える
3688 参照

windows-installer - Installshield - 実行時に指定されたファイルに従ってレジストリを更新します

私は、installshield 2010 を使用して基本的な MSI インストーラーを作成しています。別の会社が、インストーラーが実行時に読み取り、それに応じてレジストリを更新する .reg ファイルを提供します。

これを達成する方法がわかりません。

これを実現するInstallscriptを使用してスクリプトを作成することができましたが、このスクリプトがDiffered実行で実行されている場合、setup.exeが置かれているソースディレクトリ(および.regファイル)にアクセスする方法がわかりません。

MSIGetproperty が機能せず、SETUPEXEDIR で取得できるのは "" だけです。

0 投票する
2 に答える
3086 参照

registry - バッチ ファイルが、InstallShield スクリプトによって作成された環境変数をすぐに認識できない

製品のインストールにはInstallShield 2008を使用しています。製品はいくつかのコンポーネントで構成されています。コンポーネントがインストールされると、このコンポーネントに固有のポスト インストール ルーチンを含むバッチ ファイルが実行されます。

問題: インストール後のバッチ ファイルは、 InstallScriptを介して製品のインストール中に設定されるいくつかの環境変数を使用します。しかし、バッチファイルは、レジストリ (および新しく作成された環境変数) の変更をすぐに確認できないようです。

システムを再起動せずにインストールを完了する方法はありますか?

潜在的に役立つ情報: ターゲット システム - Windows XP、現在ログインしているユーザーは管理者グループに属しています。

0 投票する
1 に答える
125 参照

windows-installer - 再起動後に新しいユーザーのアセンブリを再インストールするのはなぜですか?

Installshield InstallScript MSI 別名「フル」セットアップと Installshield Basic MSI 別名「パッチ」セットアップがあります。

完全なセットアップでは、一部のファイルが GAC にコピーされ、一部はフォルダーにコピーされます。

パッチのセットアップにより、GAC の一部のファイルとインストール フォルダーの一部のファイルが置き換えられます。なんて独創的ですね。:)

また、パッチのセットアップは、インストール後にそのアクションが表示されないように設計されています。そのためにいくつかのプロパティをシーケンスで変更しています(くそー、どのプロパティか思い出せません、調べます)。

パッチを適用すると、アプリケーションは正常に動作しますが (管理者ユーザー)、コンピューターを再起動して別の (管理者ではなくドメインのみ) ユーザーとしてログインすると、アプリケーションが動作しません。

トレースで、コンポーネントの 1 つ (正確には、ファイルを GAC に配置するコンポーネント) のインストールが失敗したことを示すエラー行を見つけました。それのインストールソースがないと言っています...

これはなぜですか?セットアップは全員にインストールするように設定されています。パッチは一部のファイルを置き換えているだけですが、新しいユーザーがログインしたときに何かを「インストール」する必要があるのはなぜですか?

ありがとう、マルコ

0 投票する
1 に答える
1832 参照

windows-services - InstallShieldアップグレードインストールを介してサービス設定を保持する方法

IS2010にInstallScriptプロジェクトがあります。インストールされるサービスがいくつかあります。一部はC++exeであり、「NTサービス用のInstallShieldオブジェクト」を使用します。その他は、LaunchAppAndWaitコマンドライン呼び出しを介してJavaServiceWrapperを使用してサービスとしてインストールされるJavaアプリです。Tomcatも、service.batの呼び出しを通じてサービスとしてインストールされています。

インストーラーがアップグレードモードで実行されると、サービスが再インストールされ、設定(自動起動と手動起動、失敗時の再起動、ログオンアカウントなど)がデフォルトに戻ります。

ファイル転送の前にサービス設定を保存し、後で再入力したいのですが、これを行うための適切なメカニズムを見つけることができませんでした。サービス設定を保存および復元するにはどうすればよいですか?

0 投票する
1 に答える
1534 参照

merge-module - アップグレード時にエラー1706を与えるInstallScriptプロジェクト

InstallShield 2010でゼロから作成されたInstallScriptプロジェクトがあります。これには、特に、MSMファイルをラップする3つのネイティブInstallShieldオブジェクトと4つのInstallShieldマージモジュールホルダーオブジェクトが含まれています。

プロジェクトを最初にテストしたときは、クリーンな環境に正常にインストールされましたが、新しいバージョンにアップグレードしようとすると、4つのマージモジュールホルダーオブジェクトのそれぞれで「エラー1706。製品XXXXの有効なソースが見つかりません」というメッセージが表示されました。 。

ネットで調べてみたところ、これはWindowsインストーラーのエラーであり、元のインストールメディアがなくなった後でも、MSIファイルがマシン上に存在している必要があるために発生します。これを確認するための推奨される方法は、[マージモジュールホルダーオブジェクト]プロパティダイアログの[msiパッケージをローカルにキャッシュする]チェックボックスをオンにすることです。

4つのマージモジュールすべてについてそのボックスにチェックマークを付けて再テストしましたが、問題は解決しませんでした。次に、これらのマージモジュールが実際にハードディスクのどこに配置されているかを調べました。プロパティダイアログには、実行時に{ProductGUID}<DISK1TARGET>に解決されると書かれています。テストマシンを見ると、4つのマージモジュールすべてが同じ場所に書き込んでいるように見え、それによって互いのMSIファイルが上書きされていました。C:\Program Files\InstallShield Installation Information\

これを回避するために、各マージモジュールを編集して、一意のパス<DISK1TARGET>\{Name}にキャッシュしました。コンパイルして再度テストしたところ、各マージモジュールが実際に一意のサブフォルダーに保存されていることがわかります。ただし、アップグレードしても、4つのエラー1706メッセージすべてが引き続き表示されます。

誰かアイデアはありますか?明らかな何かが欠けていると確信していますが、それはどこにも文書化されていないようです。:-)

アップデート:

InstallShieldフォーラムの多くの投稿によると、InstallShieldは、InstallScriptプロジェクトをビルドするたびに、埋め込まれたMSIごとに新しい製品GUIDを生成するようです。更新プロセス中に、InstallShieldエンジンはターゲットマシンにキャッシュされた各MSIファイルを新しいバージョンで上書きしますが、それらを実行する場合、Windowsインストーラーは「これは新しい製品です。古い製品のMSIはどこにあるので、それをアンインストールできますか?」、したがってエラー。

ビルドごとに組み込みMSIごとに製品GUIDを再生成しないようにInstallShieldに指示することはできますか?確かに、この動作は、マージモジュールをInstallScriptプロジェクトに埋め込むというアイデア全体を嘲笑しますか?:-(

0 投票する
1 に答える
656 参照

windows-vista - XP ではなく、Vista と Win7 でアプリケーションをアンインストールするときの問題

アプリケーションを Vista と Win7 でアンインストールすると問題が発生しますが、XP では問題が発生しません。エラー メッセージは「ファイル 'C:\Windows\system32\mfc40.dll で次のエラーが発生しました」です。アクセスが拒否されました。(0x5)

Installshield 2010 で installscript プロジェクトを使用してアプリケーションのインストーラーを作成しましたが、そのエラー メッセージで [無視] ボタンを選択すると、アプリケーションをアンインストールできます。その問題を解決するための解決策が見つかりません。だから私は別のアイデアを見つけようとします.installshieldのスクリプトを使用してそのエラーメッセージをバイパスすることはできますか? 誰かがスクリプトについて私を助けることができますか? 前もって感謝します。

0 投票する
1 に答える
880 参照

installshield - 機能ビューからアイテムの選択を解除しますか?

InstallShield の installscript に取り組んでいる場合。「機能ビュー」があり、リスト内のすべてがデフォルトで選択されている場合にも、この状態に遭遇する可能性があります。どうすればそれらを選択解除できますか?

ありがとう。

0 投票する
1 に答える
1062 参照

installation - Installshield 2010で32ビットまたは64ビットのみのインストーラーを作成するにはどうすればよいですか?

これは、InstallScriptプロジェクトで実行することを意味します。これにより、インストーラーは、正しいプロセッサータイプで実行されていない場合、最初に終了します。

InstallScript MSIプロジェクトの場合は、[テンプレートの概要]フィールドを変更するだけで簡単ですが、このオプションはInstallScriptプロジェクトにはありません。

InstallScriptプロジェクトタイプで完全に満たすことができるいくつかの要件があるので、それをgitupできません。

アドバイスを事前にUに感謝します。

0 投票する
1 に答える
8363 参照

xml - InstallScriptを使用してXMLファイルの属性を更新する方法

質問:

InstallScriptを使用してXMLファイルのいくつかの属性を更新する方法を理解しようと苦労しています。適切なXML解析関数を使用したいのですが、このバージョンのInstallScriptがそれを実行できることを示唆するものは何も見つかりません。これどうやってするの?FileInsertLineとFileGrepの組み合わせにフォールバックする必要がありますか?不足しているライブラリはありますか?

バックグラウンド:

どのソフトウェアバージョンですか?
Windows Server2003R2でInstallShield11を使用しています。

既存の「XMLファイルの変更」機能を使用しないのはなぜですか?
私はアップグレードを行っていて、このバグに遭遇しているからです。コンポーネントに関連付けられているため、XMLファイル変更機能に影響します(まあ、それは私の推測です)。私は公式の回避策を試すのに時間がかかりすぎましたが、それをうまく機能させることができませんでした。最終的に、InstallScript+1行のバッチファイルを使用してファイルをコピーする方がはるかに簡単で信頼性が高いことがわかりました。少しハッキーな感じがしますが、実際に機能するものです。

今、私は、InstallScriptの「XMLファイルの変更」機能の効果を複製するための最も簡単で最も簡単な数年後の方法を見つけようとしています。

さらに情報が必要な場合はお知らせください。喜んで提供させていただきます。

編集:

結局、InstallScriptの方法でそれを行うことになりました。これは、このインストーラープロジェクトの他のすべてが実装される方法である傾向があり、非常に迅速に実行できるように見えました(そして、それが判明しました)。そのスレッドでTheTravelerによって示されているコードから始めて、ニーズに合わせて変更しました。

コードは次のとおりです。