カスタムアクションでインストーラーテーブルからプロパティにアクセスするための情報を見つけることができませんでした。私が見つけたのは、カスタムアクションからテーブルを更新するためのインストーラーSQL構文を記述できるということでしたが、これはやり過ぎであり、機能させることができませんでした。
私ができることは、ISIISPropertyテーブルでプロパティ置換を使用することです。
- プロパティテーブルにASPBITNESSとALLOWTHIRTYTWOBITという2つの新しいプロパティを作成しました。これらは、デフォルトでそれぞれx86とtrueに設定されています。
- 次に、ダイレクトエディタでISIISPropertyテーブルを編集し、 Enable32bitAppOnWin64とAspNetVerBitnessの値をそれぞれ[ALLOWTHIRTYTWOBIT]と[ASPBITNESS]に置き換えました。興味深いことに、[ALLOWTHIRTYTWOBIT]プロパティがデフォルトでtrueに設定されている場合でも、InstallShieldデザイナーで[32ビットアプリケーションを有効にする]設定は「いいえ」と表示されます。
- 最後に、インストールの開始時に条件付きで(REMOVEおよびVersionNT64およびIIS_VERSION> "#6"ではなく)起動して、それに応じてこれらの値を変更するカスタムアクションがあります。
カスタムアクションコードコードは次のとおりです。
On Error Resume Next
' change the properties for x64 systems
if SYSINFO.bIsWow64 <> 0 then
Session.Property("ASPBITNESS") = "x64"
Session.Property("ALLOWTHIRTYTWOBIT") = "false"
end if
MSIログが表示される前:
InstallShield 12:09:19:仮想ディレクトリ
'MyWebApp'、app''の
SetVRootPropertiesInstallShield 12:09:19:IIS7がアプリケーションプール
'MyAPPPool'のASP.NETバージョンビットネスをチェックします。インストールは'x86'を要求してい
ます...
InstallShield 12:09:19:SetAspversion:マシンは64ビットであり、
IISは現在選択されているモード以外のビットモードで実行されています
...
InstallShield 12:09:19:IISRTのエラー:-2172
...
CustomActionISIISInstallが実際のエラーを返しましたコード1603(サンドボックス内で変換が行われた場合、これは100%正確ではない可能性があることに注意してください)
これらの変更後、アプリケーションがインストールされ、ログに次のように表示されます。
MSI(s)(D4:1C)[10:53:18:662]:アクションの実行:Set64Bit
アクション10:53:18:Set64Bit。
アクション開始10:53:18:Set64Bit。
MSI(s)(D4:0C)[10:53:18:678]:PID 912(0x390)でカスタムアクションサーバーを作成しました。
MSI(s)(D4:D0)[10:53:18:709]:サービスとして実行しています。
MSI(s)(D4:D0)[10:53:18:709]:こんにちは、私は32ビットの偽装カスタムアクションサーバーです。
MSI(s)(D4!1C)[10:53:18:725]:プロパティの変更:ASPBITNESSプロパティを変更しています。
現在の値は「x86」です。その新しい値:'x64'。
MSI(s)(D4!1C)[10:53:18:725]:プロパティの変更:ALLOWTHIRTYTWOBIT
プロパティを変更します。現在の値は「true」です。その新しい値:'false'。
その後:
InstallShield 10:53:20:仮想ディレクトリ
'MyWebApp'の
SetVRootProperties、アプリ'' InstallShield 10:53:20:IIS7はアプリケーションプール
'MyAppPool'でASP.NETバージョンのビット数をチェックします。インストールは' x64'InstallShield10:
53を要求しています:20:アプリケーションプールEnable32bitAppOnWin64の値は「false」です
InstallShield 10:53:20:ASP.NETバージョンは64ビットに設定できます。
InstallShield 10:53:20:ASP .NETバージョンの構成:
C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir