インストール後とアンインストールする前に、カスタムセットアップ/ティアダウンの実行ファイルを実行する必要があります。昇格された権限で実行する必要があります。どのようにこれを正しく行うには?昇格された特権でカスタム実行ファイルを実行するには?
答えて
を行う際に、最終的な解決策は、のようだった上、後であなたを助けるカスタムアクションのすべての種類を見てみることをお奨めこれは:
<CustomAction Id="Install" Directory="APPLICATIONROOTDIRECTORY"
Execute="deferred" Impersonate="no" Return="ignore"
ExeCommand="[APPLICATIONROOTDIRECTORY]MyExeName.exe -install" />
<CustomAction Id="Uninstall" Directory="APPLICATIONROOTDIRECTORY"
Execute="deferred" Impersonate="no" Return="ignore"
ExeCommand="[APPLICATIONROOTDIRECTORY]MyExeName.exe -uninstall" />
<InstallExecuteSequence>
<Custom Action='Install' After='InstallFiles' >
$ProductComponent = 3
</Custom>
<Custom Action='Uninstall' After='InstallInitialize' >
?ProductComponent = 3
</Custom>
</InstallExecuteSequence>
改善をお勧めしますか?
は本当にカスタムアクションのすべてのタイプを説明するセクション管理者権限を必要とするカスタムアクションをオーサリングする方法
他linkでこのblogを見てください。 CustomAction Wixの要素。
これはもう少しお手伝いします。あなたはタイプ18のCustomActionをやっているように見えるあなたのソリューションを見た後
は、ここで私は、これらのタイプのために、以前のブログの内容を貼り付け:
カスタムアクションタイプ18 が一緒にインストールされた実行可能ファイルを呼び出します。現在のセッション中のアプリケーション。 CustomActionテーブルのSource列には、Fileテーブルのレコードのキーが含まれています。
CustomActionテーブルの[ターゲット]列には、実行可能ファイルのコマンドライン文字列が含まれています。 すべてのリターン処理、実行スケジューリング、およびスクリプト内実行オプションが適用されます。カスタムアクションへ
If the source file is not already installed on the computer:
Custom action must be sequenced after CostFinalize action because only after this action path to the file can be resolved.
If the source file is not already installed on the computer:
Deferred custom actions of this type must be sequenced after the InstallFiles action.
Non-deferred custom actions of this type must be sequenced after the InstallFinalize action.
エントリポイントは、インストール・セッションへのハンドルを受け取ります。ファイルをアプリケーションと一緒にインストールされているので、カスタムアクションタイプ18の塩基配列決定は制限があり
です。遅延カスタムアクションの実行中にセッションが存在しなくなる可能性があります。プロパティの値を取得するには、CustomActionDataプロパティを使用します。ここで
はウィックスでタイプ18カスタムアクションを追加する方法を次のとおりです。
<Directory Id="TARGETDIR" Name="SourceDir">
<Component Id="Component1"
Guid="*">
<File Id="MyCA" Name="MyCA.exe" />
</Component>
</Directory>
<CustomAction Id="DoSomething"
FileKey="MyCA"
ExeCommand="-switch"
Execute="deferred"
Return="check"
HideTarget="no"
Impersonate="no" />
<InstallExecuteSequence>
<Custom Action="DoSomething" Before="InstallFinalize" />
</InstallExecuteSequence>
まず、我々はファイルのテーブルにMyCA.exeを追加します。
また、CustomActionテーブルにタイプ18のカスタムアクションを追加します。 FileKey属性は、カスタムアクションdllを持つ要素を指します。 ExeCommand属性は、実行可能ファイルのコマンドライン文字列を指定します。
最後に行う必要があるのは、必要なすべてのシーケンステーブルでカスタムアクションをスケジュールすることです。
これが欠けているものを並べ替え、あなたを助ける必要がありますが、私は強くあなたがより多くのインストーラので
:ファイル名
ブートストラップ
から行われます。正しいシーケンスポイントにカスタムアクションをインストールし、アップグレードシナリオ、修理などに適切な条件を使用する必要があります:( – user626528これはあなたの質問に答えるもので、CAの実行方法の明確なガイドラインを示しています。 –
@Yan Sklyarenko、それは本当の答えの10%です – user626528
インストール&修理手順で「削除しない」を追加できます。そして、 'アンインストールシーケンスの場合のみAND(REMOVE = "ALL")をインストールしてください。これはウィックスツールセットに苦しんで誰かに役立つだろう
<InstallExecuteSequence>
<Custom Action='Install' After='InstallFiles' >
NOT REMOVE
</Custom>
<Custom Action='Uninstall' After='InstallFiles' >
Installed AND (REMOVE = "ALL")
</Custom>
</InstallExecuteSequence>
希望 タグ:のCustomAction、がInstallExecuteSequence、実行ウィックスのインストール後にexeファイルの完全な、ウィックス
内のバイナリまたはリソースファイルけれども、どのように見つけることができませんこれは、それが動作させるには十分ではありませんProduct.wxs
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="TestingQtExec" Language="1033" Version="1.0.0.0"
Manufacturer="My Company" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MediaTemplate EmbedCab="yes" />
<Feature Id="ProductFeature" Title="TestingQtExec" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
<Binary Id="WixCA1"
SourceFile="FTDI.exe"/>
<!-- install plugin -->
<CustomAction Id="FTDIInstall"
BinaryKey ="WixCA1"
ExeCommand="/passive"
Execute="commit"
Return="asyncNoWait"
HideTarget="no"
Impersonate="no" />
<InstallExecuteSequence>
<Custom Action="FTDIInstall" Before="InstallFinalize" />
</InstallExecuteSequence>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="TestingQtExec" />
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="cmpSampleTXT" Guid="*">
<File Source="Sample.txt" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
これは元のポスターに関する質問にどのように答えてくれますか? – Kmeixner
- 1. DefaultAppPoolはIISで特権昇格特権で実行されますか?
- 2. 昇格された権限を持つASP.Netからスクリプト(.bat)を実行する
- 3. バッチファイル:昇格された特権を削除する(元のユーザーとしてコマンドを実行する)
- 4. ルビースクリプトを昇格モードで実行する
- 5. powershellで昇格したコマンドプロンプトを実行するには
- 6. 昇格したコマンドプロンプトプロセスの実行
- 7. C#の:特権で実行コマンドと私は出力をキャプチャしながら、昇格権限でコマンドを実行したいのですが、出力
- 8. Windowsで昇格した権限でスクリプトを実行するにはどうすればよいですか?
- 9. 最初に実行/昇格されるデリゲートとイベント?
- 10. 特権昇格のアプリケーションリクエスト
- 11. Javaを使用して昇格された権利を持つ管理者としてcmdを実行する
- 12. 昇格された権限を持つProcessPanelスクリプトを実行しているIzPackを停止します
- 13. 自己昇格スクリプト+実行ポリシー
- 14. LocalSystemではなく昇格された特権でカスタムアクションを呼び出す
- 15. 昇格された権限でWiXで作成されたMSI内でカスタムアクションを実行するにはどうすればよいですか?
- 16. ファイルに格納されたマクロを実行する方法
- 17. Javaパスで特定のファイルを実行/実行するには
- 18. azure Webアプリケーションフロントエンドでazure blobストレージに保存されたPDFファイルでカスタム実行可能ファイルを実行する
- 19. ユーザが昇格された特権で実行されているかどうかを、UACポップアップなしで検出できない
- 20. 昇格されたユーザーとしてバッチファイルを実行するにはどうすればよいですか?
- 21. powershellの昇格モードでコマンドセットを実行する方法
- 22. スケジュールされたイベントの実行にはスーパー特権が必要ですか?
- 23. 昇格して実行する.NETアプリを設定する
- 24. Javaファイルを実行すると、以前に実行されたファイルが再び実行されます
- 25. Openshiftで特権付きドッカーコンテナを実行
- 26. 特定のスコープでロードされたLuaファイルを実行する
- 27. Technician.Dispatch.exeを実行するには昇格されたアクセス許可が必要です
- 28. ファイルの実行権限
- 29. 特権を持つrootで実行されたスクリプトからPythonがFirefoxを実行できない
- 30. 昇格を促さずに管理者としてアプリケーションを実行する
ProductComponentとは何ですか? –