中文

错误:R6034 运行时错误! 应用程序尝试加载 C 运行库时出现错误。 有关详细信息,请联系应用程序的支持团队

错误消息

ArcGIS Engine 应用程序 10.4 和 10.4.1 版本会返回运行时错误 R6034 消息。 打开 .mxd 文件或使用 Python 标注表达式刷新图层时,可能会发生此错误。 完整消息如下所示:

错误: 
“Microsoft Visual C++ 运行库”

运行时错误!
程序:C...
R6034
应用程序尝试加载 C 运行库时出现错误。
有关详细信息,请联系应用程序的支持团队。
Microsoft Visual C++ Runtime Error  

单击确定关闭错误消息后,应用程序通常会继续正常运行而不会崩溃。 但是,如果该进程依赖于 Microsoft C Runtime Library 9 版本,则进程可能会崩溃。
 
:
此问题也会影响 .NET Framework 的 ArcEngine 10.4.1 版本

原因

当应用程序遇到 Microsoft C Runtime Library 9 版本 (msvcr90.dll) 的副本时,将显示此错误消息。 如果 PATH 环境变量中存在包含 msvcr90.dll 副本的文件夹,则该副本通常会显示在应用程序中。

使用 Python 标注表达式查看地图或图层、打开 Python 窗口以及使用地理处理工具都会导致加载 Python,由此触发加载不正确的 Microsoft C Runtime Library 9 版本 (msvcr90.dll)。 许多第三方程序会安装和使用 msvcr90.dll C 运行库。 如果其安装和配置将程序文件夹添加到 PATH 环境变量,则计算机会在 ArcGIS 中触发此问题。 报告给 Esri 的情况表明,这种配置有时可见于两种广泛使用的软件包:LANDesk (C:\Program Files (x86)\LANDesk\Shared Files) 和 Intel 管理引擎的 iCLS 组件 (C:\Program Files (x86)\Intel\iCLS Client\)。
 

解决方案或解决方法

应将应用程序清单添加到 Engine 应用程序,以确保加载正确的 msvcr90.dll(Python 需要)。 在 Visual Studio 中,添加新项目 > 应用程序清单文件 (app.manifest)。 将以下 XML 添加到 app.manifest 中:

<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity ..../>
  <trustInfo .../>
  <compatibility .../>

  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.vc90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/>
    </dependentAssembly>
  </dependency>

</assembly>

由此确保 Engine 应用程序加载正确的 msvcr90.dll。 编译并测试应用程序。
:
Esri 不建议使用修改 PATH 环境变量或从 PATH 中列出的文件夹中删除 msvcr90.dll 等解决方法,因为这样做可能会对所有依赖于 DLL 的应用程序产生负面影响。

相关信息