SQL Server 2008/2012 Express安装在scenarioengine.exe上失败

我试图在Windows 7 64位PC上安装SQL Server 2012 Express。 它也无法安装SQL Server 2008 R2。 引导程序提取所有文件,运行setup.exe(带有UACpopup窗口),然后(从我所知道的)尝试启动scenarioengine.exe拒绝运行。

MSSQL 2012 Express的错误详细信息是:

说明:停止工作

问题签名:
问题事件名称:CLR20r3
问题签名01:scenarioengine.exe问题签名02:11.0.2100.60
问题签名03:4f35e1de
问题签名04:Microsoft.SqlServer.Chainer.Infrastructure
问题签名05:11.0.0.0
问题签名06:4f35e1dd
问题签名07:200
问题签名08:179
问题签名09:ZAGSF01GRLFWVJMY5S0U0HXSJJE2HDT4
操作系统版本:6.1.7601.2.1.0.256.48
区域设置ID:1033

我解压缩安装文件,并从命令行运行,我得到以下错误:

未处理的exception:Microsoft.SqlServer.Chainer.Infrastructure.ChainerInfrastructureException:用于启动进程的环境块不能超过65535字节。 您的环境块是162180字节长。 删除一些环境variables,然后重试。 —> System.InvalidOperationException:用于启动进程的环境块不能超过65535字节。 您的环境块是162180字节长。 删除一些环境variables,然后重试。

在系统的System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated(SafeUserTokenHandle userToken,String cmd,String currentDir,TempFileCollection tempFiles,String&outputName,String&errorName,String trueCmdLine)上的System.Diagnostics.EnvironmentBlock.ToByteArray(StringDictionary sd,Boolean unicode) CodeDom.Compiler.Executor.ExecWaitWithCapture(SafeUserTokenHandle userToken,String cmd,String currentDir,TempFileCollection tempFiles,String&outputName,String&errorName,String trueCmdLine)在Microsoft.CSharp.CSharpCodeGenerator.Compile(CompilerParameters选项,stringcompilerDirectory,stringcompilerExe,string参数, String&outputFile,Int32&nativeReturnValue,String trueArgs)
在Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options,String [] fileNames)
在Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options,String [] sources)
在Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options,String [] sources)
在System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options,String [] sources)
在System.Xml.Serialization.Compiler.Compile(Assembly parent,String ns,XmlSerializerCompilerParameters xmlParameters,Evidence evidence)
在System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping [] xmlMappings,Type []types,stringdefaultNamespace,证据证据,XmlSerializerCompilerParameters参数,程序集程序集,哈希表程序集)
在System.Xml.Serialization.TempAssembly..ctor(XmlMapping [] xmlMappings,types[]types,stringdefaultNamespace,string位置,证据证据)
在System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping,typestypes,stringdefaultNamespace)
在System.Xml.Serialization.XmlSerializer..ctor(typestypes,stringdefaultNamespace)
在Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.SerializeObject(String rootPath,Object objectToSerialize,Boolean saveToCache)
—内部exception堆栈跟踪结束—
在Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.SerializeObject(String rootPath,Object objectToSerialize,Boolean saveToCache)
在Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.SetCommonFlag(string键,布尔值)
在Microsoft.SqlServer.Chainer.Setup.Setup.Run()上的Microsoft.SqlServer.Chainer.Setup.Setup.InitializeLogProviders(ServiceContainer上下文)
在Microsoft.SqlServer.Chainer.Setup.Setup.Start()
在Microsoft.SqlServer.Chainer.Setup.Setup.Main()

我认为的关键是: The environment block used to start a process cannot be longer than 65535 bytes. Your environment block is 162180 bytes long. Remove some environment variables and try again. The environment block used to start a process cannot be longer than 65535 bytes. Your environment block is 162180 bytes long. Remove some environment variables and try again. 在使用MSSQL2008 Express时,我在GUI中遇到了这个特定的错误,所以看起来这是两个失败的根源。

该错误看起来像32位/ 64位不兼容,但CLR20r3的GUI错误代码意味着.NET框架损坏。 在互联网上的一些报道声称,这可能是由于embedded式操作系统被克隆时的问题,但这不是一个embedded式操作系统。 它可能是已经克隆到PC上的批量许可操作系统,但它不是embedded式操作系统。

我已经尝试重新安装.NET 3.5.1(通过添加/远程Windows组件和function,因为它是内置于Windows 7),并已安装.NET 4.5以防万一 – 这两个[重新]安装好。

额外的PC信息: – 带有SP1的Windows 7 Pro; – 64位; – 8GB内存; – Intel Core i5-3550 – 使用LogMeIn远程连接到PC(因为这是客户的电脑)。

任何帮助将不胜感激。

我现在已经解决了。 对于其他人的信息:我让客户直接在PC上运行SQL安装(所以不通过LogMeIn会话),它运行良好。 所以看起来像LogMeIn导致所有的问题! 我知道远程桌面不应该使用(根据微软的先决条件),但LogMeIn没有提到。 他们必须在系统中使用相同的底层钩子,导致与安装不兼容。