本文可帮助你解决临时文件夹路径包含重音或特殊 ANSI 字符的问题。
适用于: SQL Server 2012 Business Intelligence、SQL Server 2012 Developer、SQL Server 2012 Enterprise
原始 KB 数: 2702283
现象
SQL Server 2012 Data Quality Services 安装程序DQSInstaller.exe在临时文件夹路径包含重音或特殊 ANSI 字符的计算机上可能会失败。
例如,对于用户名中带有重音字符的 Windows 用户,临时文件夹可能包含重音字符 é
,例如 C:\Users\Us é rNam é\AppData\Local\Temp\
。
在运行DQSInstaller.exe或DQSInstaller.exe输出日志(默认位置为 C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2012\MSSQL\Log\DQS_install.log
) CREATE ASSEMBLY 失败时,可能会在控制台上记下以下错误,因为它无法打开物理文件 Register Microsoft.Practices 程序集:
Msg 6501,级别 16,状态 7,服务器域\SERVERNAME,第 2 行
CREATE ASSEMBLY 失败,因为它无法打开物理文件“C:\Users<username>\AppData\Local\Temp<random folder>\Microsoft.Practices.ObjectBuilder2.dll”:3(系统找不到指定的路径)。
错误 - 发生错误,脚本进程上方的检查消息返回了意外退出代码:“1”。
操作“注册数据质量程序集和存储过程”已完成错误,中止安装。
正在开始安装回滚...
安装回滚已成功完成。
DQS 安装程序已完成错误。 请参阅 c:\Program Files\Microsoft SQL Server\MSSQL11 的安装日志文件。InstanceName\MSSQL\Log\DQS_install.log
Press any key to continue...
原因
DQSInstaller.exe使用的临时文件夹由环境变量 TMP 指定。
DQSInstaller 将程序集文件和脚本提取到临时文件夹中,临时文件夹下具有随机名称。 如果此临时路径包含特殊字符,则运行脚本和程序集时,DQSInstaller 不会正确中和重音符或特殊字符。
解决方法
解决问题的最简单方法是以管理员身份启动命令提示符(如果启用 UAC 时提升),使用本地 TMP 变量临时覆盖 TMP 位置,然后运行DQSInstaller.exe。
在此命令提示符语法示例中,我们将创建一个目录 (md) c:\temp,然后将 TMP 变量设置为该位置,然后将目录更改为存在DQSInstaller.exe的文件夹,然后运行DQSInstaller.exe(无需额外的开关)。
md c:\temp
SET tmp=c:\temp
cd "c:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLServer\MSSQL\Binn\"
DQSInstaller.exe
详细信息
若要访问 Windows 资源管理器中的 TMP 文件夹,可以打开使用占位符 %tmp%
:
启动 > 运行 > %tmp%
若要测试当前 TMP 环境变量是什么,可以使用命令提示符中的 SET 语法或回显语法:
SET TMP
echo %tmp%
若要永久更改 TMP 和 TEMP 环境变量,请参阅 如何移动 TEMP 和 TMP 目录。