Visual Studio 2012 安装程序 /norestart 被忽略
Posted
技术标签:
【中文标题】Visual Studio 2012 安装程序 /norestart 被忽略【英文标题】:Visual Studio 2012 installer /norestart ignored 【发布时间】:2013-04-18 14:33:31 【问题描述】:我正在尝试对 VS 2012 进行完全无人值守的安装。它可以在某些 Windows 安装上不强制重启但在其他安装上不强制重启。这是我正在使用的命令行:
vs_professional.exe /adminfile AdminDeployment.xml /quiet /norestart
我在启动 VS 2012 安装程序之前安装 .NET 4.5。我对 AdminDeployment.xml 所做的唯一更改是:
<BundleCustomizations TargetDir="default" NoWeb="yes"/>
我们有适用于 Windows 7 桌面的区域特定图像。安装程序可以在我们的北美映像上运行而不会强制重新启动,但是它会在安装 SQL CE 时强制重新启动而不提示我们的 EMEA 映像。以下是 SQL CE 日志中的一些消息:
MSI (s) (E0:70) [18:32:09:942]:产品:Microsoft SQL Server Compact 4.0 SP1 x64 ENU。组件 '3FA0170E-227C-37C7-BAC0-64691A992C81' 的程序集 'Microsoft.VC90.CRT,version="9.0.30729.4148",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="amd64",type="win32"'正在使用中。您必须重新启动才能更新程序集。
MSI (s) (E0:70) [18:32:10:911]:产品:Microsoft SQL Server Compact 4.0 SP1 x64 ENU。组件 '982245D9-F692-3224 -BEC0-C642D74C712F' 正在使用中。您必须重新启动才能更新程序集。
MSI (s) (E0:70) [18:32:11:036]:产品:Microsoft SQL Server Compact 4.0 SP1 x64 ENU -- 安装操作成功完成。
MSI (s) (E0:70) [18:32:11:051]:Windows Installer 安装了产品。产品名称:Microsoft SQL Server Compact 4.0 SP1 x64 ENU。产品版本:4.0.8876.1。产品语言:1033。制造商:微软公司。安装成功或错误状态:0。
MSI (s) (E0:70) [18:32:11:067]:RebootAction 属性的值为 MSI (s) (E0:70) [18:32:11:067]:Windows Installer 需要重新启动系统。产品名称:Microsoft SQL Server Compact 4.0 SP1 x64 ENU。产品版本:4.0.8876.1。产品语言:1033。制造商:微软公司。系统重启类型:1. 重启原因:1.
在这种情况下,是什么导致 Windows 忽略 /norestart
选项?我曾考虑尝试传递 msiexec 使用的一些参数,例如 REBOOT=ReallySuppress
[我发现这是一个有趣的选项],但无济于事。
为什么 SQL CE 安装程序会忽略 /norestart
,我该如何解决?
【问题讨论】:
【参考方案1】:答案(来自 Microsoft)是 SQL CE 安装程序中存在错误。解决方法是安装 SQL CE,然后安装 VS 2012 的其余部分。该缺陷将在 VS 的未来版本中修复。
SSCERuntime 的示例安装如下所示:
<installer path>\packages\SSCE40\SSCERuntime_x64-enu.exe /q /I REBOOT=R /l*v <log file>
这是MS的回复:
根据我们的日志分析,我们确定了导致的包 重新启动:应用执行包:ssceruntime_x64_msi,操作: 安装,路径:C:\ProgramData\Package 缓存\E33F355F5E83D93099A732E2ECE02E07818B2696\packages\SSCE40\SSCERuntime_x64-enu.exe, 参数:'"C:\ProgramData\Package 缓存\E33F355F5E83D93099A732E2ECE02E07818B2696\packages\SSCE40\SSCERuntime_x64-enu.exe" /q /i /l*v 导致系统重启的错误如前所述 下面:MSI (s) (E4:34) [10:16:48:964]:产品:Microsoft SQL Server 紧凑型 4.0 SP1 x64 ENU。大会 'Microsoft.VC90.CRT,version="9.0.30729.4148",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86",type="win32"' 正在使用组件“9DA4DC8A-9731-3F0E-8BD5-FC17CA6848AD”。你 必须重新启动以更新程序集。这是 VC++ 2008 dll,它 显示另一个进程在此 dll 上获得了锁并且不允许 它要更新。我们发现这是 SSCERuntime 的错误 它不是用 ExitCodes 编写的来处理这种情况。我们的 产品团队正在努力,将考虑解决 在 Visual Studio 的下一个版本中。目前,围绕工作 将是首先安装 ssceruntime.exe 然后使用安装 VS2012 命令“vs_professional.exe /adminfile AdminDeployment.xml /quiet /norestart”后排除 SQLCE 组件 AdminDeployment.xml 文件。
【讨论】:
以上是关于Visual Studio 2012 安装程序 /norestart 被忽略的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2012 安装失败:程序兼容模式已打开
如何删除 Visual Studio 2012 的 Blend?
Visual Studio 2012安装:ngen挂起/什么都不做