問題タブ [custom-action]
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 - インストーラーがPATH変数を変更し、変更がコマンドシェルに表示されない
インストーラーにカスタムインストールアクションを追加して、インストールディレクトリの1つをSystemPATH環境変数に追加しました。インストーラーを実行した後、PATH変数は変更を反映しますが(コントロールパネル::システムアプレットからアクセスした場合)、新しいコマンドシェルを起動すると、PATH変数は変更を反映しません。私が失敗していることがありますか、それはこれを引き起こしますか?
user-interface - カスタム インストーラ アクション中の UI
カスタム インストーラ アクション中に UI を表示する正しい方法は何ですか?
UI をインストール ダイアログでモーダルにしたい、またはカスタム アクションからのテキスト/進行状況をインストーラーのディスログに表示したい。
インストーラーは VS2005 セットアップ プロジェクトであり、カスタム アクションは C# インストーラー派生クラスです。
c++ - プロセスにアタッチすると Visual Studio 2005 がロックする
WiX インストーラー用のいくつかのカスタム アクションを実装する単純な C++ DLL があります。
通常、カスタム アクションのデバッグは簡単です。アクションの開始時に一時的なダイアログ ボックスを配置し、ダイアログ ボックスが表示されたときにプロセスにアタッチします。
しかし、今日、プロセスに接続するたびに、画面の下部に「Microsoft Visual Studio is Busy」というバブルが表示されます。これがどこから来ているのかわかりません。何か案は?
wix - WiX のアンインストール時にファイルを削除する
アプリケーションをアンインストールするときに、元のインストール後に追加されたすべてのファイルを削除するようにWixセットアップを設定したいと思います。アンインストーラーは、MSI ファイルから最初にインストールされたディレクトリとファイルのみを削除し、後でアプリケーション フォルダーに追加されたものはすべて残したようです。つまり、アンインストール時にディレクトリをパージしたいのです。それ、どうやったら出来るの?
installation - WixUI_Minimal を使用した Wix カスタム アクション
そのため、アプリケーションのインストールが完了した後 (実際には、インストール中にインストールされたファイルと対話しないため、セカンダリ アプリケーションがいつ実行されるかは問題ではありません)、別のプログラムを実行しようとしています。アプリケーションにバンドルされています。関連するコード (さまざまなものを「...」に置き換えたもの):
ディレクトリを確認したところ、ファイルは期待どおりの場所にありましたが、インストール プロセス後に実行されませんでした。実際には、そのファイルをインストールすることさえ望んでおらず、実行してから削除するだけです。しかし、私は今のところそれを無視します。とにかく、ダイアログの後にアクションをトリガーする例をいくつか見てきましたが、現在使用しているので、<UIRef Id="WixUI_Minimal" />
理想的ではないと思います。
c# - 昇格された管理者アカウントとして実行する必要があるように、MSI をマークします。
MSI の一部として CustomAction があります。
ローカル管理者アカウントのメンバーでもあるドメイン アカウントとして実行する必要があります。
ネットワーク リソースにアクセスできないため、NoImpersonate フラグを使用してカスタム アクションを NT Authority\System として実行することはできません。
Vista/2008 で UAC が有効になっている場合、NoImpersonate がオフの場合、実行ユーザーとして実行されますが、権限のないトークンが使用され、.installState などのローカル リソースにアクセスできません。UAC アーキテクチャを参照してください
どちらかの方法を知っている人
昇格したコマンド プロンプトから実行するのと同じ方法で、昇格したトークンを使用して MSI を強制的に実行しますか?
CustomAction を強制的に管理者特権で実行しますか (マニフェストの requireAdministrator が機能していないように見えます)?
UAC が有効になっているかどうか、およびそれが昇格されていないかどうかを確認し、そうであればインストールを警告またはキャンセルしますか?
installation - SelfRegなしでCapicomをインストールする:Wixカスタムアクションが見つかりません(Err 2721)
この質問のアドバイスにうまく従った後、別のカスタムアクション用にコードを数行追加しました。これは、ユーザーのシステムフォルダに入れようとしたcapicomのコピーでzippy32を呼び出すことを目的としています。しかし、私が見たものから、エラー2721が発生します。これは、カスタムアクションが見つからないというエラーのようです。助言がありますか?インストール中にレジストリエントリを追加するだけでなく、zippyを呼び出すことで、インストーラの以前のイテレーションとの一貫性を維持しようとしています。これは、代わりに良いアイデアかもしれません。:::肩をすくめる:::
編集:はい、インストーラーとしてzippy32を使用するのは醜いです。しかし、私がCapicom SDKをダウンロードしたとき、それはMSがそれをインストールするために行うと言ったことです。周りを検索すると、これは愚かな方法だと言う人がたくさんいます...しかし、MSが提供するメカニズムでもあります。より良い方法の提案を聞きます。アプリケーションがアンインストールされたときにCapicomが取り残されても、それが標準のWindowsコンポーネントであることを考えると、大したことではないと思います。
編集:うーん。どうやら、dllでselfregを実行することの1つは、レジストリに追加するランダムシードを作成することです。このシードを生成するためにどのメカニズムを使用するかはわかりませんが、特にすべてのユーザーに同じシードを与えた場合は、自分でシードを生成するだけでは味が悪いと考えられます。わからない....どうやら私がこれをスキップした場合、Capicomはそれ自体でそれを行うので、私は元気です。
wix - (MSI 経由で) アンインストール時にのみ発生する WiX カスタム アクションを追加するには?
MSI インストーラー ( WiXで作成) を変更して、アンインストール時にディレクトリ全体を削除したいと考えています。
RemoveFile
WiX のおよびオプションは理解していRemoveFolder
ますが、インストール後にコンテンツが作成されたフォルダー全体を再帰的に削除するほど堅牢ではありません。
WiX をアンインストールするときにファイルを削除するという同様のスタック オーバーフローの質問に気付きましたが、バッチ スクリプトを呼び出してフォルダーを削除するだけで、これをより簡単に実行できるかどうか疑問に思っていました。
WiX を使用するのはこれが初めてで、まだカスタム アクションのコツをつかんでいます。アンインストール時にバッチ スクリプトを実行するカスタム アクションの基本的な例は何ですか?
.net - .NET カスタム アクションでエンタープライズ ライブラリ ログを使用する方法
アプリケーションから使用され、Visual Studio インストーラー プロジェクトの .NET カスタム アクションでも使用されるライブラリ コードがいくつかあります。ライブラリ コードは、Enterprise Library ログ ブロックを使用してログを記録します。msiexec 内で実行されているカスタム アクションのコンテキストで Enterprise Library の構成情報を取得するにはどうすればよいですか? EntLib を呼び出す前に、コードで構成メカニズムをブートストラップすることは可能ですか?
更新: 動作するように見えるハックを作成しましたが、リフレクションを使用して非公開の静的フィールドを設定することに依存しています。EntLib が .NET ConfigurationManager と非常に緊密に結合されているのは残念です。
更新 2: このハックはテストベッドで機能しますが、msiexec のコンテキストで実行すると、アセンブリ ローダーは構成ファイルで参照されているアセンブリを検出しません。Fuslogvw は、AppBase が Windows の system32 ディレクトリであることを示しています。私が理解していないのは、カスタム アクション アセンブリのマニフェストの依存関係 (カスタム アクション アセンブリと一緒に [TargetDir] ディレクトリにある) が見つかるのに、構成ファイルで呼び出される動的に読み込まれるアセンブリが見つからない理由です。これを回避する方法はありません。
delphi - MSI で使用するカスタム アクション DLL を作成するにはどうすればよいですか?
これは私が自分で答えるつもりの質問ですが、これを達成するための他の方法を自由に追加してください.
さまざまな構成で使用するアプリケーションをパッケージ化していましたが、MSI 内でカスタム ロジックを実行する最も信頼できる方法は、PROPERTY テーブルから読み書きできる独自のカスタム アクション DLL を作成することであると判断しました。 、プロセスを強制終了し、アプリケーションをアップグレードする必要があるかどうかを判断し (その後、PROPERTY テーブルに回答を記録します)、標準の MSI ログに書き込みます。