一般编译会出现

1.“ResGen.exe”已退出,代码为2 问题处理

2.“错误 2 “LC.exe”已退出,代码为 -1。 NBGIS.MainGIS”

3.“未能加载文件或程序集“ESRI.ArcGIS.Carto, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631“

对于.net3.5平台 其中第一个问题因为64为编译过程中会调用resGen.exe,从而导致编译错误,解决方法用两种:

1. 关闭Visual Studio。

2. 在Visual Studio Tools目录,以管理员身份运行Visual Studio Command Prompt (2010),

[注:这个在开始--所有程序--microsoft visual studio 2010 下面]

切换目录到":\Program Files (x86)\Microsoft SDKs\Windows\v\bin\”. ( 我的是v7.0A )

[注:用cd命令切换目录]

3. 执行命令:
corflags /32bit+ ResGen.exe /force

4. 在记事本中打开 .csproj 文件

5. 添加<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>这个属性在PropertyGroup下面: 然后保存文件。

再次尝试编译,一切OK!

或者在记事本中打开.csproj文件,添加如下代码:

<!-- Workaround for VS2010 .NET 3.5 application referencing x86 assembly in resx file on 64-bit OS http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/e5900710-9849-4d10-aa28-48b734d06bf2 --> <PropertyGroup> <ForceResGen32Bit Condition="'$(MSBuildToolsVersion)'=='4.0' And '$(PROCESSOR_ARCHITEW6432)'!='' And '$(TargetingClr2Framework)'=='true' And '$(PlatformTarget)'=='x86'">true</ForceResGen32Bit> </PropertyGroup> <Target Name="BeforeResGen" Condition="'$(ForceResGen32Bit)' == 'true'"> <PropertyGroup> <ResGenSdkToolsPath>$(IntermediateOutputPath)ResGenForced32Bit\</ResGenSdkToolsPath> </PropertyGroup> <!-- Copy resgen.exe to intermediate working directory for UAC settings --> <Copy SourceFiles="$(TargetFrameworkSDKToolsDirectory)ResGen.exe" DestinationFiles="$(ResGenSdkToolsPath)ResGen.exe" /> <!-- corflags.exe resgen.exe /32BIT+ /Force--> <Exec WorkingDirectory="$(ResGenSdkToolsPath)" Command=""$(TargetFrameworkSDKToolsDirectory)corflags.exe" ResGen.exe /32BIT+ /Force" /> <!-- GenerateResource Task parameters Using the non-64bit Tracker.exe and indicate resgen.exe has been forced to x86 --> <PropertyGroup> <ResGenTrackerSdkPath>$(SDK40ToolsPath)</ResGenTrackerSdkPath> <ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture> <CacheTargetFrameworkSDKToolsDirectory>$(TargetFrameworkSDKToolsDirectory)</CacheTargetFrameworkSDKToolsDirectory> <TargetFrameworkSDKToolsDirectory>$(ResGenSdkToolsPath)</TargetFrameworkSDKToolsDirectory> </PropertyGroup> </Target> <Target Name="AfterResGen" Condition="'$(ForceResGen32Bit)' == 'true'"> <PropertyGroup> <TargetFrameworkSDKToolsDirectory>$(CacheTargetFrameworkSDKToolsDirectory)</TargetFrameworkSDKToolsDirectory> </PropertyGroup> <RemoveDir Directories="$(ResGenSdkToolsPath)" Condition="Exists('$(ResGenSdkToolsPath)')" /> </Target> 

  重新加载即可。

而对于更早的像.net2.0平台的东西,则应该继续

1、解决方案资源管理器窗口中,右键项目==》属性
2、在弹出的属性页面中,选择“生成”选项卡
3、修改“生成”选项卡里面的“目标平台”为:"X86"
4、重新编译程序Ok

如果应用的三方控件,还有可能出现第三种错误,解决方案如下:

1、把项目文件夹下Properties文件夹下的licenses.licx文件删除,重新编译即可;

2、文本方式打开*.csproj文件,在文件中查找licenses.licx字样,删除对应节点。

注意:还有一种情况就是Properties文件夹下已经没有licenses.licx文件了,程序还是报这个错,这个时候你只需要重命名一个空的txt文件为licenses.licx再放入Properties文件夹,问题也可解决。

至此,一般的项目迁移既可以完成。

如果是在做AE9.2的项目迁移10.0,可能

找不到ESRI.ArcGIS.Utility;的引用  解决方方案如下 :

在ArcGIS10环境中找不到ESRI.ArcGIS.Utility、ESRI.ArcGIS.Utility.BaseClasses等引用,ArcGIS9.2之后Utility会逐渐被丢弃的,转而用ADF来代替,把ESRI.ArcGIS.Utility和ESRI.ArcGIS.Utility.BaseClasses改为ESRI.ArcGIS.ADF、ESRI.ArcGIS.ADF.BaseClasses问题解决。

注意:因为BaseClasses存在存在ESRI.ArcGIS.ADF和ESRI.ArcGIS.ADF.local中,因为将ESRI.ArcGIS.ADF.local引用因该删除。

64位win7+vs2010编译.net3.5以前的版本问题的更多相关文章

  1. 64位Win7下编译Python3的计算机视觉库:OpenCV

    注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) OpenCV目前最新版是3.0.0 rc1,官方给出了编译好的Python2可以直接使用 ...

  2. 64位Win7下编译hadoop 1.2.1问题解决

    0.报sed的错误.原因在于没有安装cygwin.安装cygwin的时候要选择sed 1.Cannot run program "autoreconf". 这个问题在网上看了很多解 ...

  3. 64位Win7下用VS2010编译OpenSSL

    http://blog.csdn.net/henter/article/details/8364532 首先要说明,如果不想自己编译OpenSSL,可以到 http://slproweb.com/pr ...

  4. 64位Win7系统下vs2010调试无法连接oracle

    64位win7系统的Program Files (x86)路径中有括号,oracle不认识这样的路径,所以就出现不能连接数据库的问题.所以我们可以将vs2010的内部调试web服务器WebDev.We ...

  5. 64位Win7系统下vs2010调试无法连接oracle解决办法

    具体的解决办法如下: 1.先将WebDev.WebServer20.EXE和WebDev.WebServer40.EXE文件从Program Files (x86)目录中拷贝出来放到c:\dev目录中 ...

  6. 64位win7安装jdk和eclipse

    本人正确安装成功步骤,对他人可能无用: 1.直接拷以前32位eclipse ADT 2.安装32位的jdk:jdk-8u45-windows-i586 3.ok,所有环境变量无需手工设置 eclips ...

  7. 64位win7连接ACCESS报错“Microsoft.Jet.OLEDB.4.0”问题

    本人开发了桌面软件,关于事务提醒,自己一直在用,很喜欢,但是在64位win7上无法运行,网上说多种方法,都觉得麻烦.后来自己在vs2012下编译成x86版本,结果可以运行在64位win7下了. 原来如 ...

  8. 64位win7中使用vs2013为python3.4安装pycrypto-2.6.1插件报Unable to find vcvarsall.bat异常解决方式

    问题描写叙述: 64位win7中使用vs2013为python3.4.2安装pycrypto-2.6.1插件报Unable to find vcvarsall.bat. 问题分析: 1.源代码分析,查 ...

  9. Hadoop 3.2.1 win10 64位系统 vs2015 编译

    Hadoop 3.2.1 win10 64位系统 vs2015 编译 1        环境配置 1.1   JDK下载安装 1.1.1         下载 JDK 1.8    (jdk1.8.0 ...

随机推荐

  1. JS原生第五篇 (帅哥)

    1.1 节点 1. 节点        网页是有很多的节点组成的  . 元素节点   指的是 :  标签     li  span 文本节点      属性节点 父子兄弟    父    parent ...

  2. 【开源】OSharp3.3框架解说系列:开发计划与进度

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  3. JavaScript中的日期处理注意事项

    在业务逻辑比较多的系统里面,一般都会涉及到日期的处理.包括选择起始日期和结束日期,结束日期要大于起始日期,日期的显示和输入等. 输入这一块基本都是使用jQuery datetimepicker,后来系 ...

  4. 【前端性能】必须要掌握的原生JS实现JQuery

    很多时候,我们经常听见有人说jquery有多快多快.在这个各种类库满天飞的时候,不得不说的是,能有原生JS快吗? 是的,明显原生JS要更快,因为诸如JQuery这样的库必须要兼容各种浏览器和低版本和许 ...

  5. 用html5的视频元素所遇到的第一个坑

    html5 有一个video标签,这个是被大家所熟知的事情.按照w3c的规范,我认真的写出如下代码: <video preload="auto" controls=" ...

  6. 小菜学习Winform(七)系统托盘

    前言 有些程序在关闭或最小化的时候会隐藏在系统托盘中,双击或右击会重新显示,winform实现其功能很简单,这边就简单的介绍下. 实现 在winform实现托盘使用notifyIcon控件,如果加菜单 ...

  7. Visual Studio Code 智能提示文件

    Visual Studio Code 开发前端和node智能提示 visual studio code 是一个很好的编辑器,可以用来编写前端代码和nodejs. 我很喜欢使用VSC,现在流行框架对VS ...

  8. 安装infer整个过程

    日期:2015-06-26 孟起  15:43:25 大神.. 孟起  15:43:38 我是不是照着这个安装 HelloWorld  15:45:05 直接找二进制文件安卓就行 孟起  15:46: ...

  9. VirtualBox安装Debian6的方法和步骤(详细)

    下面是用VirtualBox安装Debian6的方法和步骤 l 新建一个文件夹,用于存放虚拟硬盘,如Debian l 打开VirtualBox,点击新建 l 输入虚拟机名称,Debian_6 l 给虚 ...

  10. HTTP首部

    前面有几篇博文介绍了HTTP协议.HTTP请求方法详解.Javascript中Cookie的那些事儿.HTTPS,今天我们来聊一聊关于HTTP首部的那些事儿 HTTP协议的请求和响应报文中肯定包含HT ...