您的位置:首页 > 其它

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

2013-11-27 21:11 225 查看
环境:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐