64位win7+vs2010编译.net3.5以前的版本问题
一般编译会出现
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以前的版本问题的更多相关文章
- 64位Win7下编译Python3的计算机视觉库:OpenCV
注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) OpenCV目前最新版是3.0.0 rc1,官方给出了编译好的Python2可以直接使用 ...
- 64位Win7下编译hadoop 1.2.1问题解决
0.报sed的错误.原因在于没有安装cygwin.安装cygwin的时候要选择sed 1.Cannot run program "autoreconf". 这个问题在网上看了很多解 ...
- 64位Win7下用VS2010编译OpenSSL
http://blog.csdn.net/henter/article/details/8364532 首先要说明,如果不想自己编译OpenSSL,可以到 http://slproweb.com/pr ...
- 64位Win7系统下vs2010调试无法连接oracle
64位win7系统的Program Files (x86)路径中有括号,oracle不认识这样的路径,所以就出现不能连接数据库的问题.所以我们可以将vs2010的内部调试web服务器WebDev.We ...
- 64位Win7系统下vs2010调试无法连接oracle解决办法
具体的解决办法如下: 1.先将WebDev.WebServer20.EXE和WebDev.WebServer40.EXE文件从Program Files (x86)目录中拷贝出来放到c:\dev目录中 ...
- 64位win7安装jdk和eclipse
本人正确安装成功步骤,对他人可能无用: 1.直接拷以前32位eclipse ADT 2.安装32位的jdk:jdk-8u45-windows-i586 3.ok,所有环境变量无需手工设置 eclips ...
- 64位win7连接ACCESS报错“Microsoft.Jet.OLEDB.4.0”问题
本人开发了桌面软件,关于事务提醒,自己一直在用,很喜欢,但是在64位win7上无法运行,网上说多种方法,都觉得麻烦.后来自己在vs2012下编译成x86版本,结果可以运行在64位win7下了. 原来如 ...
- 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.源代码分析,查 ...
- 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 ...
随机推荐
- WPF做验证码,小部分修改原作者内容
原文地址:http://www.cnblogs.com/tianguook/p/4142346.html 首先感谢aparche大牛的帖子,因为过两天可能要做个登录的页面,因此,需要用到验证码,从而看 ...
- ASP.NET WebAPi之断点续传下载(中)
前言 前情回顾:上一篇我们遗留了两个问题,一个是未完全实现断点续传,另外则是在响应时是返回StreamContent还是PushStreamContent呢?这一节我们重点来解决这两个问题,同时就在此 ...
- Python快速教程 尾声
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 写了将近两年的Python快速教程,终于大概成形.这一系列文章,包括Python基 ...
- 搭建AngualarJS开发环境
1.选择Web浏览器 Chrome和Firefox浏览器 2.选择代码编辑器 Subline Text和Visual Studio Code 3.安装Web服务器 3.1Apache HTTP Ser ...
- iOS开发之各种动画各种页面切面效果
因工作原因,有段时间没发表博客了,今天就发表篇博客给大家带来一些干货,切勿错过哦.今天所介绍的主题是关于动画的,在之前的博客中也有用到动画的地方,今天就好好的总结一下iOS开发中常用的动画.说道动画其 ...
- css:图标与文字对齐的两种方法
(好久没写博客了,这几个月的积累比较零碎,记在本子上,现在开始整理归类) 在平时写页面的过程中,常遇到要把小图标与文字对齐的情况.比如: 总结了两种方法,代码量都比较少. 第一种 对img设置竖直方向 ...
- Introduction to the Service Provider Interfaces--官方文档
地址:https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html What Are Services? Services are unit ...
- http 错误代码表
所有 HTTP 状态代码及其定义. 代码 指示 2xx 成功 200 正常:请求已完成. 201 正常:紧接 POST 命令. 202 正常:已接受用于处理,但处理尚未完成. 2 ...
- CSS3中惊艳的gradient
以前曾经记录过linear-gradient(线性渐变)和 radial-gradient(径向渐变)的语法. 可以参考<CSS3中border-radius.box-shadow与gradie ...
- Handle类与线程
首先声明Handle对象和该类的handleMessage方法: Handler BarHandler = new Handler(){ @Override public void handleMes ...