• AE32位程序 移植到 64位系统


    未能加载文件或程序集“ESRI.ArcGIS.AxControls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86”或它的某一个依赖项。系统找不到指定的文件。
    原因可以有很多:
    1.AO是32位原生组件,一般认为不支持64位系统(道听途说),所以只能在32位环境下进行编译。
    2.还有就是9.3和10.0之间的差异,引用项、绑定productcode、修改引用属性。
    3.项目属性中需将Target Processor属性设置为X86。


    在使用ArcObjects代码之前,如果没有在正确的位置放置RuntimeManager.Bind方法代码,则会导致如下错误。
    ArcGIS 10中有一个新的要求——runtime绑定。所谓runtime绑定,就是在任何ArcObjects代码(包括许可初始化代码)被执行之前,指定相称的ArcGIS产品——ArcGIS Desktop或者ArcGIS Engine应用程序。建立runtime绑定的APIs位于程序集ESRI.ArcGIS.Version的类ESRI.ArcGIS.RuntimeManager中,该程序集随着任何ArcGIS 10 runtime一起安装于全局程序集缓存(Global Assembly Cache (GAC))中。安装了ArcObjects .NET SDK,默认的,程序集ESRI.ArcGIS.Version位于C:\Program Files\ArcGIS\DeveloperKit10.0\DotNet文件夹下。可以在Visual Studio IDE中将该程序集添加为项目引用。

     [C#]
    //Insert this line before the Application.Run in the static void Main() method.
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
      [VB.NET]
    'Insert this line before the InitializeComponent() method in Public Sub New().
    ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine) 




    1. 关闭Visual Studio。

    2. 在Visual Studio Tools子目录,以管理员身份运行Visual Studio Command Prompt (2010),切换目录到"<system_drive>:\Program Files (x86)\Microsoft SDKs\Windows\v<x.xx>\bin\”. ( 我的是v7.0A )

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

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

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

    再次尝试编译,一切OK!



    将project的target processor设置成X86


    查看引用项

    AE的版本随着时间的流逝也在渐渐的升级,一直升级到目前的AE10,由于版本的问题,原来低版本的采用AE组建写的App因为版本的问题也就不能直接运行了,这样就需要直接对这些AE组建升级,然后根据实际情况进行调试程序。

    1)第一种升级方法

    打开原程序中的 引用文件夹,我们可能会看到有些引用的名称前面有黄色的感叹号,这就表示该引用是不能用的,这个就是升级带来的问题,

    解决方法:将带有黄色感叹号的引用删除,然后重新添加相应名称的引用即可,以此类推,将黄色的引用重新添加,然后程序就可以运行了。

    2)第二种升级方式

    这种升级方式也是最近知道的,

    找到文件扩展名称为.csproj 的文件,比如  EditorApp.csproj,用记事本打开

    然后我们 就可以看到添加到该App引用中DLL库。。

    类似于下面的 9.3.0版本的AE和10版本的AE引用版本的对照

      <!--
        <Reference Include="ESRI.ArcGIS.AxControls, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.Carto, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.Controls, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.DataSourcesFile, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.DataSourcesGDB, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.DataSourcesRaster, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.Display, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.Geodatabase, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.Geometry, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.System, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        <Reference Include="ESRI.ArcGIS.SystemUI, Version=9.3.0.1770, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=MSIL" />
        -->
        <Reference Include="ESRI.ArcGIS.3DAnalyst, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.AxControls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.Carto, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.DataSourcesFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=x86" />
        <Reference Include="ESRI.ArcGIS.DataSourcesGDB, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=x86" />
        <Reference Include="ESRI.ArcGIS.DataSourcesRaster, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=x86" />
        <Reference Include="ESRI.ArcGIS.Display, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.Geodatabase, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86, processorArchitecture=x86" />
        <Reference Include="ESRI.ArcGIS.Geometry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.GlobeCore, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.Output, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.System, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.SystemUI, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ESRI.ArcGIS.Version, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86" />
        <Reference Include="ExcelLibrary, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">

    在这里,我们紧紧需要修改下Version 属性的值为相应的版本就可以了。

    最后重新打开与应用程序即可正常运行程序。


  • 相关阅读:
    python----面对对象三大特征2
    python---面对对象的三大特征
    python---面对对象的组合
    python----特殊闭包
    python----面向对象初识
    Nginx配置upstream实现负载均衡
    Nginx的配置与部署研究,Upstream负载均衡模块
    百度地图传经纬度位置显示
    ip转城市接口,ip转省份接口,ip转城市PHP方法
    PHP把采集抓取网页的html中的的&nbsp;去掉或者分割成数组
  • 原文地址:https://www.cnblogs.com/henyihanwobushi/p/2774823.html
Copyright © 2020-2023  润新知