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
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
相关文章推荐
- VS.net2005写的程序如何在没有.Net FrameWork的机器上运行 --解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”(转载)
- 如何快速正确的安装 Ruby, Rails 运行环境-b
- Android Google Maps开发笔记:【3】如何配置emulator正确运行GoogleMaps程序
- 如何快速正确的安装 Ruby, Rails 运行环境
- Windows Server 2012 R2 里面如何安装Net Framework 3.5
- 如何正确的终止正在运行的子线程
- 如何快速正确的安装 Ruby, Rails 运行环境
- 如何快速正确的安装 Ruby, Rails 运行环境
- Java代码中添加 package语句后,如何正确编译运行。
- 【Win 10应用开发】如何知道当前APP在哪个平台设备上运行
- visual studio 2017 installer 安装包制作过程出现的问题---此安装程序需要.NET Framework 版本 3.5,请安装该版本,然后重新运行此安装程序,可以从Web获得.NET Framework 。要立即做此事吗?
- 如何快速正确的安装 Ruby, Rails 运行环境
- 如何快速正确的安装 Ruby, Rails 运行环境
- 如何快速正确的安装 Ruby, Rails 运行环境
- 深入.NET Framework内部, 看看CLR如何创建运行时对象的
- 如何正确编译运行一个包含CocoPods类库的项目
- 在OS X系统如何正确安装Ruby,Rails运行环境
- 线程池 多线程运行结束后 如何关闭? ExecutorService的正确关闭方法
- vs2008制作安装部署时如何包含.Net FrameWork 3.5 SP1
- Java程序如何正确打包并正常运行在Linux系统中