私のマシン (Win 7 32 ビット) では正常に動作する Inno Setup インストーラーがありますが、テスト マシン (Win 7 32 ビット) ではまったく動作しませんでした。調査の結果、UAC がNever notify me以外に設定されていると何か問題が発生することが原因であることがわかりました。ただし、インストーラーを右クリックしてRun as Administratorを選択すると、インストーラーは正常に動作します。
次に、インストーラーの埋め込みマニフェスト (以下で説明する方法) を変更して、常に管理者として実行されるようにしましたが、期待どおりに動作しません。コマンドを使用して元のマニフェストを取得しました
mt.exe -inputresource:installer.exe -out:installer.exe.manifest
次に、抽出したマニフェストをテキスト エディターで開き、行を変更しました。
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
に
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
次に、コマンドを実行して、結果のマニフェストを適用しようとしました
mt.exe -manifest installer.exe.manifest -updateresource:installer.exe;#1
しかし、マニフェストツールでエラーが発生しました
mt.exe : マニフェスト オーサリング エラー c1010001: 属性 "レベル" の値が異なるマニフェスト スニペットで等しくありません。
また、コマンドを次のように変更してみました
mt.exe -manifest installer.exe.manifest -outputresource:installer.exe;#1
しかし、これにより、インストーラー全体がリソースだけで上書きされました (つまり、実際のインストーラーが失われました)。
また、Visual Studio (リソース エディター) を使用してインストーラーの実行可能ファイルを開き、マニフェストを変更してファイルを保存しようとしましたが、2 番目に使用したmt.exeコマンドと同じ結果になりました。
私が間違っていること、または何かを見逃していることを誰かが知っていますか?