問題タブ [orca]
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.
windows-installer - Orcaを使用したセットアップへのコンボボックスの追加
コンポーネントのセットアップ中にダイアログにコンボボックスを表示しようとしています。現在、ラジオボタングループがあります。MSIの「ComboBox」テーブルと「Control」テーブルに適切なエントリを追加し、適切なダイアログボックスでラジオボタングループへの参照をコンボボックスに置き換えるだけで、コンボボックスに置き換えることができると思いました。ただし、これは機能していません。セットアップが失敗し、エラー#2885が発生します。[Windowsインストーラエラー2885:ダイアログ[2]でコントロール[3]を作成できませんでした。ここから。]
これを行う方法についてのアイデアはありますか?私はどうやらOrcaしか使用できません(誰もが覚えているのでそれが使用されています)。
windows-installer - MSI内の小さなファイルを置き換える最も簡単なソリューションは?
当社のお客様の多くは、InstallShield、WISE、または AdminStudio にアクセスできます。これらは問題ありません。私は、商用の再パッケージ ツールにアクセスできない小規模な顧客に、ファイルの置き換えを自分で行うための無料で利用できる一連のツールと手順を提供できる方法があることを望んでいます。
圧縮された MSI 内の 1 つの構成ファイルを置き換えるだけで済みます。ターゲット ユーザーは既に Orca をインストールしていると想定でき、これを使用してプロパティ テーブルをカスタマイズする方法 (GPO 展開のライセンスの詳細を埋め込むため) を知っており、MST ファイルを生成しています。 .
免責事項:これは別の質問と非常に似ていますが、そのスレッドの質問と回答の両方が明確ではありません.
wix - MSI「ファイル」テーブルからデータ (ファイル数) を抽出する方法
私たちのビルド プロセスでは、現在、コード ベースではないファイル (イメージ ファイルなど) が Web プロジェクトに追加される可能性がありますが、WiX によってビルドされた MSI インストーラーには含まれません。
これを防ぐために、WiX プロジェクトの AfterBuild ターゲットで次のことを実行します。
- ビルドされたすべてのファイルの数を取得します (Web 配置プロジェクトからの出力)
- MSI に組み込まれているすべてのファイルの数を取得します (MSI の「ファイル」テーブルから)
- カウントを比較し、一致しない場合はビルドに失敗します
Orca を起動すると、ファイル テーブルとカウントを簡単に確認できますが、MSBuild からこれを自動化する方法がわかりません。この情報を MSI から取得するための API またはその他のメカニズムはありますか?
MSI ファイル テーブル カウントを抽出するために、カスタム MSBuild タスクを作成してもかまいません。
visual-studio-2008 - Orca を使用してコマンド ラインから msi を編集しますか?
Visual Studio 2008 を使用しており、アプリケーションのセットアップ プロジェクトを作成しました。アプリケーションには、高解像度のアイコンがあります (Vista 用)。Visual Studio にバグがあり、インストーラーが低解像度のアイコンでデスクトップ ショートカットを作成します。
このバグを Microsoft Connect ( https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=338258 ) に記録し、最終的に回答を得ました。それは、Orca を使用して msi ファイルを編集し、アイコンを置き換えることです。 . そのソリューションは正常に機能します。
ここで、そのプロセスを自動化したいので、ビルド スクリプトに含めることができます。それを行う方法はありますか?
visual-studio-2008 - 特殊文字とMSI
Visual Studio 2008を使用して作成したmsiにパスワードを入力する必要があります。ただし、パスワードに「」文字が含まれている場合は注意が必要です。FileNotFoundExceptionが発生します。これを修正できる設定はOrcaにありますか?他の特殊文字を試しましたが、正常に機能します。
visual-studio - VS セットアップ プロジェクト。アンインストール時にレジストリ値を復元する方法は?
Visual Studio にセットアップ プロジェクトがあります。通常のインストールの一環として、Windows レジストリにいくつかのキーと値を作成/更新します。更新を元に戻すにはどうすればよいですか?
「リバーシブル」と言うかもしれませんが、私はそうは思いません。VS デザイナーを使用して、必要なレジストリ キーと値を指定します。これらのキーと値は、インストール中に書き込まれ、アンインストール中に削除されます。単純。可逆的でないものは何ですか?
インストール中に書き込まれたキーの 1 つに既存の値がある場合に問題が発生します。値が 1 であるとします。次に、新しいインストールで値が 100 になります。アンインストール後、値はまったくなくなります。値はなくなります。
「カスタムアクション」でこれを回避しようとしました。
インストール中にユーザーが確認すると、msiexec は値をレジストリに書き込みます。以前にレジストリ キーにあったものはすべてなくなりました。(これを「アップデート A」と呼びましょう)
その値を保持するために、インストール時に、「前」の設定を読み取って保持するカスタム アクションがあります。「アップデート A」の前に実行されます。ここまでは順調ですね。
アンインストール時の通常の手順は、インストール中に追加された通常のレジストリ キーと値を削除することです。これはうまくいきます。これを「更新 B」と呼びます。
元のレジストリ値を復元するために、別の「カスタム アクション」があります。これはアンインストール時に実行されます。元の値がレジストリに正常に復元されます。レジストリは、元のインストール前とまったく同じように見えます。ProcMon (レジストリの更新などを監視できるツール) を使用して、これが機能することを確認しました。これを「更新 C」と呼びます。
1つだけ問題があります。アンインストール時に、更新 C の後に更新 B が実行されます。つまり、カスタム アクションが元のレジストリ設定を復元した後、msi は、他のすべてのレジストリ更新と同様に、復元された値を消去します。
その結果、レジストリには、復元された値ではなく空の値が含まれます。
何か助けはありますか?アップデートを再注文するにはどうすればよいですか? これにはオルカが必要ですか?これを実現するために別のツールをインストールして学習したくありません。それも自動化してほしい。これを実現するために、MSI エディターを視覚的にクリックする必要は絶対にありません。
WindowsInstaller.Installerクラス を使用する Javascript ビルド後のイベントでこれを行うことはできますか? Aaron Stebnerは、「インストール後にアプリケーションを起動しますか?」を追加するスクリプトを公開しました。Visual Studio によって生成された MSI へのダイアログ。Windows インストーラーは「アプリの起動」機能をサポートしていますが、VS2008/2005 のデザイナーでは公開されていません。[Launch] ダイアログに追加された、VS のビルド後のステップとして実行されるクイック biolerplate スクリプト。
カスタムアクションの順序付けで同様のことが可能ですか?
visual-studio-2008 - ビルドのたびにカスタムアクションのバイナリを更新する必要がありますか?
VS Team System2008でsetup-projectアプリケーション用のc++カスタムアクションを作成しました。ORCAを使用して実装し、カスタムアクションのバイナリイメージを挿入しました。これは問題なく動作します。バイナリオブジェクトは、後続の各ビルド後もそのまま残りますか?つまり、カスタムアクションバイナリに変更を加えない限り、バイナリデータを更新する必要はないと思います。それはどのように機能しますか?前もって感謝します。
windows-installer - パッチ作成プロパティ (.pcp) ファイルをプログラムで変更しますか?
msiexec.exe および msimsp.exe とパッチ作成プロパティ ファイルを使用して、ホットフィックス ビルドの完全なプロセスをスクリプト化する方法はありますか?
msiexec.exe を使用して、前後の msi ファイルのネットワーク インストールを作成し、Orca を使用して .pcp ファイルを作成し、msimsp.exe を使用してパッチ ファイルを作成します。
以下の 2 つの記事の手順に従っています。
VS.NET 展開プロジェクトのインストール パッチを作成する方法
1.0 から 1.1 へのパッチを作成した後、1.1 から 1.2 (または 1.0 から 1.2) へのパッチを作成したいとします。Orca で作成した .pcp ファイルを再利用したいのですが、そのファイルへの変更は、誰かが Orca で再度開くのではなく、スクリプト (VBScript など) を使用して行う必要があります。私が理解していることから、少なくとも PatchGUID 値を変更する必要があります。
スクリプトを使用してこのような変更を行うにはどうすればよいですか?
windows-installer - MSI は、アップグレードのインストール時に必要なアセンブリを削除しますが、修復時に置き換えます
MSI インストールのアップグレードに関連する奇妙な現象が発生しています。おそらく誰かが私を助けてくれます:
オリジナルとアップグレードの 2 つの MSI があります。
- MSI バージョン 1.0
- GAC にインストールされる .NET アセンブリ foo.dll が含まれています。
- foo.dll は、MSI ファイル システム GUI 内で「アセンブリ」タイプ (「出力」ではありません) です。
- MSI バージョン 2.0
- foo.dll (同じバージョン) と追加のアセンブリも含まれています。
- MSI 2.0 で 1.0 を完全に置き換えたいので、RemovePerviousVersion を False に設定します。
2 つのインストール シナリオ:
MSI 1.0 を実行しています。Foo.dll が GAC に正しくインストールされている。次に MSI 2.0 を実行すると、Foo.dll が GAC から削除されたように見えますが、追加のアセンブリがそこにあります。方法がわかりません。ただし、[プログラムの追加と削除] に移動して [修復] をクリックすると、Foo.dll が挿入されます。
MSI 1.0 はインストールされておらず、MSI 2.0 を実行しています。予想どおり、Foo.dll (および追加のアセンブリ)が存在します。
アップグレード中に foo.dll が削除される理由はありますか?? 前もって感謝します!
-ケン
更新更新 /再構築の後、現在は機能しているようです。ただし、プロパティ「Permanent」が false に設定されていても、MSI をアンインストールしても foo.dll は削除されません。それほど大きな問題ではありませんが、何が起こっているのかを知ることができれば幸いです。