VS 2010 によって作成された Web セットアップ プロジェクトがあります。このプロジェクトをセットアップするとすべて正常に動作しますが、「修復」オプションをチェックすると、インストール中にエラーが発生します。
MSI ログ ファイル
- プロセス 'c:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe' をパラメーター ' -norestart -sn ""' でサイレント モードで実行しています...
- プロセス呼び出し結果コード: '0' プロセス終了コード: '1'。
- このエラーは、IIS が 32 ビット モードであることを示していますが、このアプリケーションは 64 ビット アプリケーションであるため、互換性がありません。
- 「aspnet_regiis.exe」の 32 ビット バージョンを試しています...
- キー 'HKLM\Software\Microsoft\ASP.NET\4.0.30319.0' からレジストリ値パスを読み取っています...
- 結果パス =
- プロセス 'c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe' をパラメーター ' -norestart -sn ""' でサイレント モードで実行しています...
- プロセス呼び出し結果コード: '0' プロセス終了コード: '1'。
- このエラーは、IIS が 64 ビット モードであることを示していますが、このアプリケーションは 32 ビット アプリケーションであるため、互換性がありません。
aspnet_regiis の 32 ビット バージョンと 64 ビット バージョンの両方がアプリケーションと互換性がないのはなぜですか? どういう理由ですか?空白の「パス」パラメータか何か?
-sn オプションを指定して aspnet_regiis.exe を実行すると、特定のアプリケーションのみが更新され、サブアプリケーションは更新されませんが、アプリケーションが指定されていない場合 (パス パラメータが空白の場合) はどうなりますか? 「修復」オプションではなく「セットアップ」オプションをチェックすると、パス パラメータがアプリケーションに設定され、セットアップが正常に機能するため、セットアップ プロジェクトで何かを変更する必要があるのではないでしょうか?
このエラーは iis6 でのみ表示されます。iis7.5 では問題なく動作します。iis6 は 64 ビット モードに設定されています。
ありがとう