拥有由VS 2010创建的Web安装项目,当我设置此项目时一切正常,但是当我检查“修复”选项时,我在安装过程中出错。
MSI日志文件
Running process 'c:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe' with parameters ' -norestart -sn ""' silently...
Process Call Result Code: '0' Process Exit Code: '1'.
The error indicates that IIS is in 32 bit mode, while this application is a 64 bit application and thus not compatible.
Trying 32 bit version of 'aspnet_regiis.exe'...
Reading registry value Path from key 'HKLM\Software\Microsoft\ASP.NET\4.0.30319.0'...
RESULT Path =
Running process 'c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe' with parameters ' -norestart -sn ""' silently...
Process Call Result Code: '0' Process Exit Code: '1'.
The error indicates that IIS is in 64 bit mode, while this application is a 32 bit application and thus not compatible.
我无法理解为什么32位和64位版本的aspnet_regi都与应用程序不兼容?
当我检查“setup”而非“修复”选项时,路径参数设置为我的应用程序并且设置正常,所以也许我必须在我的设置项目中更改某些内容?
顺便说一下,IIS6设置为64位模式;)
由于
答案 0 :(得分:1)
如果您支持32位和64位系统,则需要对两者进行单独设置。
所以你要为系统运行适当的aspnet exe,这可能会解决一些问题。你还没有说过你的设置是x86还是x64,所以很难说出确切的问题。 32位进程无法调用64位Dll(反之亦然),因此32位aspnet_regiis.exe无法在64位IIS中调用64位程序集,这可能与某些事情有关它。
它看起来不像MSI日志文件,因为它没有得到所有信息,如MSI(74:1C)[12:14:05:000]:如果正在重定向对ProgramFiles文件夹的调用(在日志中查找WIN64DUALFOLDERS),则会告诉您介绍的类型。