インストール後とアンインストールする前に、カスタムセットアップ/ティアダウンの実行ファイルを実行する必要があります。昇格された権限で実行する必要があります。どのようにこれを正しく行うには?昇格された特権でカスタム実行ファイルを実行するには?
答えて
を行う際に、最終的な解決策は、のようだった上、後であなたを助けるカスタムアクションのすべての種類を見てみることをお奨めこれは:
<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. バッチファイル:昇格された特権を削除する(元のユーザーとしてコマンドを実行する)
- 3. ルビースクリプトを昇格モードで実行する
- 4. 最初に実行/昇格されるデリゲートとイベント?
- 5. 特権昇格のアプリケーションリクエスト
- 6. 昇格された権限を持つProcessPanelスクリプトを実行しているIzPackを停止します
- 7. 昇格された権限でWiXで作成されたMSI内でカスタムアクションを実行するにはどうすればよいですか?
- 8. ユーザが昇格された特権で実行されているかどうかを、UACポップアップなしで検出できない
- 9. powershellの昇格モードでコマンドセットを実行する方法
- 10. 昇格して実行する.NETアプリを設定する
- 11. 特権を持つrootで実行されたスクリプトからPythonがFirefoxを実行できない
- 12. 昇格を促さずに管理者としてアプリケーションを実行する
- 13. UACが昇格しました。昇格していないコードを実行しました
- 14. ファイルアクセスのためのWeb環境での特権昇格
- 15. MatlabがWindowsで昇格された権限で実行されているかどうかを確認できますか?
- 16. Macで管理者権限を持つ実行可能ファイルを実行する
- 17. 実行上昇過程
- 18. 権限昇格 - エラー「template.cを」
- 19. Lua - テーブルに格納された関数を実行する
- 20. 変数に格納されたコマンドを実行する
- 21. 指定されたファイルでテストケースを実行するには?
- 22. ダブルクリックで実行ファイルを実行する
- 23. 昇格または昇格しない - それはクエストです
- 24. UIWebViewで実行されるHTML + javascriptファイルの実行方法。 ?
- 25. ルートシェルで特権のないコマンドを実行する
- 26. テスト実行/ JPAのための異なるpersistence.xmlの特権
- 27. Windows 7で昇格された権限でWin32 APIを呼び出す方法
- 28. root権限でスクリプトを実行する
- 29. 昇格された特権を必要とするWindowsシェルコマンドの例を教えてください。
- 30. 低特権でNode.JSを実行できますか?
ProductComponentとは何ですか? –