运行AX2009客户端报错"An invalid directory structure"
我们最近碰到个问题,它发生在用windows批处理文件自动安装Microsoft Dynamics AX 2009客户端时。您可以使用“沉默”安装来批量部署客户端。然而部署后,当我们从桌面运行客户端时,碰到了如下弹出框错误,点击ok会关闭客户端:
文本错误如下:
An invalid directory structure for Microsoft Dynamics AX was detcted. The subdirectory \Client\bin does not exist.
进一步研究后发现,当我们运行regedit来查看AX客户端配置创建的键值时,client\bin文件夹的路径竟然是不完整的。这个是错误信息的原因。问题发生在任何Windows XP/Vista/7/2003 R2/2008/2008 R2平台,无论它是32位还是64位。注册表中记录的路径如下:
[HKEY_CURRENT_USER\Software\Microsoft\Dynamics\5.0\Configuration\Original (installed configuration)]
"bindir"="\Client\Bin"
"datadir"="Client\Data"
"directory"="\Client"
而正确的注册表路径应该如下(x64系统)
[HKEY_CURRENT_USER\Software\Microsoft\Dynamics\5.0\Configuration\Original (installed configuration)]
"bindir"="C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin"
"datadir"="C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Data"
"directory"="C:\Program Files (x86)\Microsoft Dynamics AX\50\Client"
(x86 系统):
[HKEY_CURRENT_USER\Software\Microsoft\Dynamics\5.0\Configuration\Original (installed configuration)]
"bindir"="C:\Program Files\Microsoft Dynamics AX\50\Client\Bin"
"datadir"="C:\Program Files\Microsoft Dynamics AX\50\Client\Data"
"directory"="C:\Program Files\Microsoft Dynamics AX\50\Client"
手动修正注册表键值解决了该问题,并且使客户端能够正确运行。
然而问题真正的原因是安装程序没有设置默认文件夹路径所需的完整参数。客户端安装使用了AX 2009 DVD中的如下参数:
d:\setup.exe SetupLanguage=en-GB RunMode=JustClient ConfigurePrerequisites=1 HideUI=1 AcceptLicenseTerms=1 InstallClientUI=1 ClientAosServer=AX5-W8R2-01 ClientLanguage=en-gb ClientHelpLanguages=en-gb;en-us
解决方案是您用以下参数运行安装程序(所有参数都在一个命令行)
d:\setup SETUPLANGUAGE=EN ConfigurePrerequisites=1 HideUI=1 AcceptLicenseTerms=1 InstallPath="C:\Program Files\Microsoft Dynamics AX\50" InstallPath32Bit="C:\Program Files (x86)\Microsoft Dynamics AX\50" InstallClientUI=1 ClientConfig=1 ClientAosServer=AX5-W8R2-01 ClientLanguage=en-GB ClientHelpLanguages=en-US;en-GB
AX 客户端将以正确的注册表路径安装,启动时没有任何错误!
更多部署AX客户端(AX服务器组件)的安装参数信息,参见:
https://technet.microsoft.com/en-us/library/aa548130.aspx
原文地址: