简体   繁体   English

应用程序(MSI)修复失败,但正常安装成功

[英]Repair of application (msi) fails but normal installation is successfull

have web setup project created by VS 2010, when i setup this project all works fine, but when i check "repair" option i get error during installation. 具有由VS 2010创建的Web安装项目,当我安装该项目时,所有项目都可以正常工作,但是当我选中“修复”选项时,安装过程中会出错。

MSI log file 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.

I couldnt uderstand why both 32-bit and 64-bit versions of aspnet_regiis not compatible to application? 我无法理解为什么32位和64位版本的aspnet_regiis与应用程序都不兼容?

When i check "setup" not "repair" option, path param is set to my application and setup works fine, so maybe i have to change something in my setup project? 当我选择“设置”而不是“修复”选项时,路径参数已设置为我的应用程序,并且安装程序运行正常,因此也许我必须在安装项目中进行某些更改?

IIS6 is set to 64-bit mode by the way ;) IIS6设置为64位模式;)

Thanks 谢谢

If you support 32 and 64-bit systems you need separate setups for both. 如果您支持32位和64位系统,则两者都需要单独的设置。

http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx

so you'd run the appropriate aspnet exe for the system, that might solve some problems. 因此,您将为系统运行适当的aspnet exe,这可能会解决一些问题。 You haven't said if your setup is x86 or x64, so it's hard to say what the exact issue might be. 您没有说安装是x86还是x64,所以很难说出确切的问题是什么。 32-bit processes cannot call 64-bit Dlls (and vice versa) so the 32-bit aspnet_regiis.exe can't call 64-bit assemblies in a 64-bit IIS, that's probably something to do with it. 32位进程无法调用64位Dll(反之亦然),因此32位aspnet_regiis.exe无法在64位IIS中调用64位程序集,这可能与它有关。

That doesn't look like an MSI log file because it hasn't got all the info in there, like the MSI (s) (74:1C) [12:14:05:000]: type of intro, plust suff that would tell you if the call to the ProgramFiles folder is being redirected (look for WIN64DUALFOLDERS in the log). 它看起来不像MSI日志文件,因为它没有在那里存储所有信息,例如MSI(s)(74:1C)[12:14:05:000]:介绍类型,加上后缀会告诉您是否重定向了对ProgramFiles文件夹的调用(在日志中查找WIN64DUALFOLDERS)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM