問題タブ [installscript-msi]

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 に答える
2508 参照

windows - Installshield Installscript-MSI プロジェクトのレジストリ キー/値が指すディレクトリにファイルをインストールするにはどうすればよいですか?

インストール内のファイルの 1 つを、ユーザーの宛先マシンのレジストリ キーと値のペアが指す場所にコピーする必要があります。

現在、コンポーネント ビューでファイルを [TempFolder] にコピーするように設定し、レジストリから値を取得する OnFirstUIBefore() 関数でいくつかのカスタム InstallScript コードを使用する、一種の厄介なソリューションがあります。 [TempFolder] の MSIGetProperty と、最後に [TempFolder] から以前にレジストリから取得したパスへの CopyFile()。

これは機能しますが、少し面倒です。同僚は、 MY_RSRC_DIRのようなカスタム プロパティ名で MSISetProperty を実行し、コンポーネント ペインでそのカスタム プロパティを使用してファイルを正しい場所にコピーできるようにすべきだと考えていると言っています。

OnBegin() 関数で MSISetProperty を実行することはできますが、そのプロパティを Components ビューにプラグインしようとすることは、まだ機能していません。

誰かがこれを行ったことがありますか?もしそうなら、どのように?

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

installation - InstallScriptの単体テスト

InstallScriptには、単体テストに適した関数がいくつかあります。私のプロジェクトはInstallScriptMSIプロジェクトです。カスタムICEを使用してカスタムアクションを単体テストする方法に関する記事を見つけましたが、単体テストするコードはカスタムアクションではなく、UIシーケンスにあります。

この種のInstallScriptコードを単体テストする方法はありますか?

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

.net - カスタムアクションスクリプトでのVSDCA​​_Launchの意味

Visual Studioのセットアップと展開の出力を使用して、インストール後にアプリケーションを起動したい。「VisualStudioセットアッププロジェクトにインストールした後にアプリケーションを起動するにはどうすればよいですか」という記事に従い ます。カスタムアクションを使用してチェックボックスを追加し、インストール後にアプリケーションを起動するという解決策があります。しかし、まだ問題があります。アプリケーションが起動し、作業ディレクトリがターゲットディレクトリと異なっていました。したがって、XML構成ファイルを読み取ることはできません。カスタムアクションタイプのカスタムアクションについて詳しく読んだので、アクション34または35を使用する必要があると思いますが、それでも使用方法がわかりません。

スクリプト内の元の挿入アクションステートメントは次のとおりです。sql=" INSERTINTO CustomActionAction、、、 )VALUES('VSDCA​​_Launch' Type、'210'、'" + fileId + "'、'')";SourceTarget

210が18+192であることは知っていましたが、VSDCA​​_Launchの意味がわかりません。ターゲットディレクトリを使用してアプリを起動するにはどうすればよいですか。ありがとうございました。

編集

226 = 34 + 192に変更しましたが、正常に動作します。

sql = "INSERT INTO CustomActionAction、、、 )VALUES('VSDCA​​_Launch' Type、'226'、'TARGETDIR'、'[TARGETDIR] \ App.exe')" Source;Target

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

installation - Microsoft インストーラー: バージョン番号を変更せずに製品をアップグレードできますか?

major.minor.update.build_number一般的なバージョン管理スキームを使用したいと考えています。次回の製品アップデートはバージョン 1.0.1 になります。

社内の構成管理メカニズムはリリース ビルドとデイリー ビルドを生成し、それらはすべて MSI として自動的にパックされます。開発者と QA は定期的にビルドをダウンロードし、バグ修正などを検証するためにテスト リグを更新します。

CM ビルドごとにbuild_numberフィールドがインクリメントされるため、ビルド バージョンは次のようになります。

私たちの問題は、ProductVersionが変更されないため、Microsoft のインストーラ テクノロジでは、これらの MSI をテスト リグで更新として実行できないことです。既存の製品を完全にアンインストールし、目的の MSI を再インストールする必要があります。

ProductVersion スタンプに関係なく、MSI を作成して更新を適用する方法はありますか?

私たちはInstallShieldを使用しています。私たちが望むことを可能にする代替のインストール技術はありますか?

ありがとう!

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

windows - Visual Studio 2010 セットアップ MSI コンテンツ ファイルのパスをレジストリに追加する方法

現在のユーザーの製造元のプログラム ファイル パスの下にあるレジストリに、1 つまたは複数のコンテンツ ファイル パスを追加する簡単な方法はありますか? 実行可能ファイルに対してはこれを行うことができましたが、追加されたコンテンツ ファイルに対してはできませんでした。

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

c# - VisualStudio 2005 アプリケーションを使用して MySQL サーバーをデプロイする

MySQL をデータ ストレージ エンジンとして使用する Visual Studio 2005 プロジェクト (C#) があります。アプリケーションをインストールする MSI パッケージを作成し、MySQL をサイレント インストールした後に作成したいと考えています。調べてみましたがあまり情報がありませんでした。

MySQL パッケージをサイレント モードでインストールし、CMD でこの 2 つのステートメントを使用して構成した後、

インストール:

構成、設定:

しかし、今では、アプリケーションをインストールする前または後に Visual Studio がそれを行うと言う方法がわかりません。私はそれをグーグルで検索してきましたが、有用なヘルプが見つかりませんでした。

あなたが私を導くことができることを願っています:)

編集:カスタム アクションを使用してソリューションを回避してきました。カスタム インストーラー クラスを使用してカスタム アクションを実行するこの記事を見つけました。最初は問題ないように見えますが、MSI パッケージが 2 番目の MSI インストーラー (MySQL) を起動しようとすると、「アクセスが拒否されました」というコード 2869 のエラーが発生するため、問題が発生しています。

私もこの問題を探していましたが、最初の MSI が 2 番目の MSI を実行しようとすると、適切な権限が適用されず、インストールが失敗するように見えます...

私に何ができるか知っていますか?または、2 番目の MSI インストーラーを起動するにはどうすればよいですか? 完全な権限を持つ (または少なくとも最初のインストーラーと同じ)

これは、Process オブジェクトを作成するために使用しているコードです。

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

visual-studio - MSIはTARGETDIRをテキストファイルに書き込みます

MSITARGETDIRをテキストファイルに書き込む方法は? 私のプログラムがそこに書かれたパスを参照できるようにします。

0 投票する
3 に答える
3909 参照

windows-installer - MSIまたはInstallShield

アプリケーションのインストーラーを作成する必要があります。現在、VisualStudio2010で無料のInstallShieldLEを使用しています。InstallShieldの無料ではない機能のいくつかが必要であり、フルバージョンへのアップグレードを検討していました。

ただし、アップグレードする前に、他のオプションを検討したいと思います。オフィスの周りの他の人と話すことから、彼らはMSIに言及しました。私はインストーラーの世界に慣れていないので、MSIまたはInstallShieldについて意見があるかどうか興味がありました。

インストーラーの要件:
1。カスタムアクションをサポートする必要があり
ます2.ダイアログをサポートする必要があります
3.実行時にユーザーから情報を取得し、それを構成ファイルに入れる必要もあります。これがどのように行われるかわからない。Install Shieldにはインストールスクリプトがあると思いますか?
4.複数の言語をサポートしている場合、それは大きなボーナスになります

任意の入力をいただければ幸いです。

ありがとう

0 投票する
3 に答える
1412 参照

windows-installer - InstallShieldファイルのシーケンス番号

既存のInstallShieldMSIプロジェクトにファイルを追加し、MSIを構築してから、そこからMSPを作成して、既存のインストールに適用します。

問題は、MSIプロジェクトに新しいファイルを追加するときに、シーケンス番号が段階的に設定されないことです。ダイレクトエディターに移動し、シーケンス番号を編集して、古いものが停止したところから開始するようにしましたが、プロジェクトをビルドするときに、入力したシーケンス番号は無視されます。このようにシーケンス番号が異なると、MSPが正しくインストールされません。

InstallShieldによって上書きされるシーケンス番号を修正する方法はありますか?プロジェクトに新しいファイルを追加しない場合、既存のファイルのシーケンス番号は同じままです。追加する新しいファイルが「途中」にインストールされているようです。

何かご意見は?

ありがとう

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

c# - msi インストーラーは、アップグレード時にユーザーにプロンプ​​トを表示しません

シンプルな msi インストーラー setup.exe (VS2010 で作成) があります。最初のインストールではすべて問題ありませんが、問題は 2 番目のインストールにあります。2.セットアップ バージョン (2 回目のインストール用) 番号をアップグレードし、製品コードをアップグレードするかどうかを尋ねられたときに [OK] を押しました。

この時点で、msi を再コンパイルし、setup.exe をダブルクリックしました。問題: 以前のバージョンが既にインストールされていることをインストーラーが検出し、それを削除またはアップグレードするかどうかを尋ねてくると思います。何が起こるかというと、インストーラーは何も確認せずに、インストールされた製品を新しいバージョンに自動的にアップグレードします...

「アップグレード\削除」画面を表示するためにmsiプロジェクトを構成する方法はありますか????

どうもありがとう..