問題タブ [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.

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

c# - COMAdmin相互運用機能を使用してWiXCustomActionを実行する場合のFileNotFoundException

アップグレードインストールの一部としてCOM+パッケージをシャットダウンしてクリアしたり、初期インストールの一部として新しいCOM+パッケージを作成して構成したりできるWiXカスタムアクションを作成しようとしています。以前、これを標準のVisual Studio MSI内でCustomActionとして実行していましたが、これにより、ファイルがコピーされた後にのみカスタムアクションを実行できます。これは、パッケージがまだ実行されているため失敗します。

COMAdmin.dllは、CustomActionプロジェクトへの参照として追加され、CopyLocal=trueに設定されています。カスタムアクションプロジェクトのbinフォルダーには、Interop.COMAdmin.dllがあります。この質問への答えは、それが機能するはずであることを示唆しているようです。

インストールしようとすると、MSIログ内に次の例外が発生します。

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

c# - インストーラーで値を生成して app.config に書き込むことはできますか?

私はインストーラ プロジェクトに取り組んでいます。インストール プロセス中に、ユーザーに「root」アカウントを作成してもらいたいと考えています。root パスワードを app.config ファイルの一部、できれば暗号化されたセクションに含めたいと思います。そのようなことは可能ですか?この問題に対する既知の解決策はありますか?

よろしくお願いします

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

windows - WIX でカスタム アクションをすぐに実行する

最初のダイアログ (ようこそ) が表示されたらすぐに WIX でカスタム アクションを実行する方法はありますか?

要件は前提条件を確認することであり、それらのいくつかはカスタム アクションを必要とします。

カスタム アクションは次のダイアログをクリックして実行できますが、標準の WIX 前提条件はカスタム前提条件とは別に決定されます。

(必要なカスタム アクションは、IIS 6 メタベース互換性がオンになっており、32 ビット インストーラーを使用する x64 マシンでレジストリ検索が機能しないことを確認することです)

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

wix - Wixで空のカスタムテーブルを作成するにはどうすればよいですか?

Wixに行のないCustomTableを最終的なMSIに含めるにはどうすればよいですか?単純にこのようにテーブルを定義すると

Wixはそれを最終出力から省略します。

私のDTFCustomActionは、実行中に行を追加できるように、そこにあることを期待しています。

何か案は?

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

wix - WIX-インストールのキャンセル時にカスタムアクションを実行する

私はWIXを使用してインストーラーを起動しており、ユーザーが「キャンセル」ボタンを押したときにカスタムアクションを実行する必要があります。

カスタムアクションを作成しましたが、そのアクションを使用する場所が見つからないようです。

どうすればそれができますか?

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

installation - Wix-バッチファイルを実行するディレクトリを指定するにはどうすればよいですか?

バッチファイルを実行したいのですが、これは次の方法で実行します。

これによりバッチファイルが実行されますが、C:\ Windows \ System32(またはそのようなもの)で実行されます。ファイルが見つかったディレクトリで実行したいのですが、FileKey属性でDirectory属性を指定することはできません。インストーラーに特定のディレクトリを使い果たすように指示するにはどうすればよいですか。できればディレクトリIDを使用してください。

また、スクリプトを使用してアプリをアンインストールしようとすると、「Windowsインストーラパッケージに問題があります。インストールを完了するために必要なプログラムを実行できませんでした」というエラーメッセージが表示されます。スクリプトが実行されるまでにファイルが削除されているため、これは理にかなっています。質問は:

  1. アクションをアンインストールではなくインストール時にのみ実行するように指定するにはどうすればよいですか?

  2. この現在のコピーをアンインストールするにはどうすればよいですか?

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

c# - .NET 4.0 カスタム アクションが失敗する

インストーラーにはカスタム アクションがあります。プロジェクトを .NET 4.0 フレームワークにアップグレードしました。カスタム アクションを適用すると、インストーラーは、フレームワークのバージョンが無効であることを示す 1001 エラーをスローします。

カスタム アクションは、インストーラーの前のラジオ ボタン ウィンドウからの値を使用します (つまり、CustomActionData を受け取ります)。メインの exe を含む私のプロジェクトでは、Installer から継承し、属性 [RunInstaller(true)] を設定し、Install 関数をオーバーライドするクラスがあります。

インストーラーは、VS 2010 for .NET 3.5 でコンパイルされた状態で問題なく動作します。Windows 7 64 ビットを実行しています。

インストーラー/カスタム アクションを .NET 4.0 で動作するようにアップグレードする方法はありますか?

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

windows-installer - 検証前の Windows インストーラー カスタム アクション

ここにあるチュートリアルに基づいて、Windows インストーラーのカスタム アクションを作成しました: http://www.codeproject.com/kb/install/msicustomaction.aspx

私のカスタムアクションは、ユーザーがまだ開くことができる特定の名前のバックグラウンドプロセスを強制終了しています。その理由は、特定の EXE が実行中であり、セットアップを続行するには閉じる必要があるという警告をユーザーに表示したくないからです。これは、チュートリアルのように「InstallUISequence」テーブルでアクションが作成されるため、MSI が UI シーケンスを通過するときに正常に機能します。
ただし、MSI がサイレント モードで使用されている場合 (右クリックして [修復] または [アンインストール] を選択)、カスタム アクションはもちろん実行されません。

カスタム アクションをサイレント モードで実行した場合でもすぐに実行されるようにするには、どこにカスタム アクションを配置する必要がありますか?

「InstallExecuteSequence」に追加してみましたが、「アプリ実行中」の警告がまだ表示されます。次に、カスタム アクションのシーケンス番号を 5 に下げてみましたが、これも役に立ちませんでした。

注:
Orca を使用して、Visual Studio セットアップ プロジェクトから生成された MSI を変更しています。次に、変換ファイルを使用して適用します。

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

wix - WiX:カスタムアクションでバイナリ文字列を抽出すると、「???gooddata」のような文字列が生成されます

MSIのBinaryテーブルから文字列を抽出しようとすると、奇妙な動作が見つかりました。

を含むファイルがあります。Hello world取得するデータはです???Hello world。(文学的疑問符。)

これは意図したとおりですか?
最初は常に正確に3文字になりますか?


サンプルコード:

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

installation - WiX-CustomAction(DLL)へのパラメーターの受け渡し

WiXで動作させようとしている古いWiSEインストーラーからDLLを取得しているので、DLLはMSIベースのインストーラーで動作すると確信しています。

これが私の定義です:

と使用法:

私のC++関数は次のようになります。

パラメータを正確にどこに渡すことができますか?