VS2010+ArcGIS Engine 10 在 .Net Framework 3.5 下如何正确运行

环境:
64位 Windows 7,VS2010, ArcEngine 10.0

在64位(x64)机子上使用 VS2010 去创建目标平台(Target Platform)为 x86 的应用程序,当项目中包含引用32位程序集的资源文件时,将会出现“试图加载格式不正确的程序”的错误。其中目标框架(Target Framework)选择的是 3.5, 3.0 或则 2.0。

例如在 VS2010 上新建一个 WinForm 工程,拖 ArcGIS Engine 10 的几个控件 MapControl 和 LicenseControl 到窗体上,一运行便出类似以下的错误:
未能加载文件或程序集“file:///C:/Program Files (x86)/ArcGIS/DeveloperKit10.0/DotNet/ESRI.ArcGIS.3DAnalyst.dll”或它的某一个依赖项。试图加载格式不正确的程序。
需要清楚的是 ArcEngine 10.0 的程序集都是32位的。

这是因为 Resgen.exe (Resource File Generator)是运行在64位进程中的,当它试图加载32位的程序集时将会失败。


以下是微软官方网站上找到的解决方案,翻译如下:

为了解决该问题,你需要按以下步骤执行:
1.关掉所有 Visual Studio 实例
2.在 Visual Studio Tools (VS安装后在程序目录下会有该目录)下,右键使用管理员身份打开“Visual Studio 命令提示(2010)”,改变目录到"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\”
3.输入命令:corflags /32bit+ ResGen.exe /force
4.使用记事本打开 <project_name>.csproj
5.添加属性 <ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture> 到 PropertyGroup 节点下,保存并关闭 csproj 文件。


再次编译解决方案,OK了。


参考:
http://support.microsoft.com/kb/2028833
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值