我正在尝试容纳我们的安装软件,将VSTO 2010 Runtime(v.10.0.40303)作为安装我们软件之前的先决条件。当我们尝试在客户端计算机(Win7和Win8)上安装我们的软件时,如果完成VSTO 2010 Runtime的安装,机器会在没有任何警告的情况下重新启动。
显然,这是因为Microsoft Visual C ++ 2010 X64 Redistributable(v.10.0.40219)与VSTO 2010运行时安装程序捆绑在一起。它(C ++可再发行组件)尝试替换当前由explorer.exe进程锁定的文件,这会强制重新启动吗?
目前我不知道如何解决这个问题,所以任何建议都非常受欢迎。
我在VSTO安装的日志文件中记下的消息如下:
Windows Installer requires a system restart.
Product Name: Microsoft Visual C++ 2010 x64 Redistributable - 10.0.40219
Product Version: 10.0.40219. Product Language: 0.
Manufacturer: Microsoft Corporation.
Type of System Restart: 2. Reason for Restart: 1.
这将显示在日志文件的底部,用于安装VSTO 2010 Runtime。
MSI (c) (C4:80) [21:42:34:552]: Decrementing counter to disable shutdown.
If counter >= 0, shutdown will be denied. Counter after decrement: -1
我不知道我们要减少哪个柜台?我应该关心还是试图用它来操纵以防止重启?
据我所知,这是(其中包括)文件ATL100.DLL,MSVCP100.dll,它们被explorer.exe进程锁定并替换那些导致重启的文件。
想想看,在没有安装语言包的机器上没有出现这个问题。 Win7和Win8机器的母语是丹麦语。这可能是由语言包而不是C ++ Redistributables引起的吗?
我构建我的先决条件的方法是采用现有的先决条件来安装随InstallShield 2013提供的VSTO 2010运行时,然后只修改用于检入注册表的版本号和可重新分发的先决条件应该安装。
InstallShield中用于安装可再发行组件(vstor40_redist.exe)的命令行是:
/q:a /c:"install /q /l"
如何配置我的先决条件,至少通知用户即将重启,最好将其推迟到安装结束? 我应该在日志文件中查找什么?
答案 0 :(得分:0)
您需要将/ norestart参数传递给msi