VS2012 + ArcGIS 10.2 编译正常、安装翻车:中文图标名把我坑惨了

项目场景:

ArcGIS Desktop 10.2 + VS2012 开发 ArcMap Add-in。工程能顺利 生成*.esriAddIn,并能安装到默认 AddIns 目录(ArcGIS 会把 add-in 复制/解包到 C:\Users\<你>\Documents\ArcGIS\AddIns\Desktop10.x\…)。


问题描述

编译生成 bin\Debug\khidi_hydroGIS_Addin.esriAddIn 正常,但安装阶段噩耗

  • VS 提示 Failed to register Add-in

  • 双击或用安装器时弹窗:*Failed to register Add-in .esriAddIn
    vs里的报错

  • 双击*.esriAddIn也报错,无法安装,如图

  • 双击报错

  • .esriAddIn 改名 .zip 又能正常打开(说明包并没坏)。


原因分析(一句话结论)

坑在中文!
工程里有个 Button 用了中文名,顺带它的 图标文件也叫中文名

为什么最容易误判?
因为网上 90% 的帖子(包括本站)都在讲“压根没生成 .esriAddIn”——那通常是 VS2012 的 .11.targets 指向问题;但我这里已经生成了,栽在安装阶段


解决方案(真·有效)

统一英文命名 → 清缓存 → 重新装

  • Images/ 下所有图标、Config.esriaddinximage=、id、class全部改英文/下划线(比如 横断面拟合.pngcrosssec_fit.png)。

踩坑记录(这些都试过,但在本案里没救)

  • 换路径 / 极短纯英文目录 / 解除阻止:能避开很多 I/O 限制,但挡不住中文文件名本体问题。

  • 修 targets / SDK:VS2012 工程需要 ESRI.ArcGIS.AddIns.11.targets;这招是“不生成包”时的常规修复,本案已生成所以无效。

  • 权限/复制失败:确有官方解释“注册失败多半是复制到 My Documents\ArcGIS\AddIns 无权限/被占用”,但这次不是权限,是文件名


经验总结

  • 别整花活,英文走天下。 图标、ID、类名、路径全用英文和下划线,心情舒畅、安装器不发飙。

  • 先确认场景

    • 没生成包 → 看 *.csproj.11.targets(VS2012/2013 要带 11;VS2015+ 反而不要 11)。

    • 已生成但装不上 → 先查命名字符缓存,再谈权限。

  • 为什么用10.2:ArcGIS 10.2以前的pj模式与以后的不同,vs里能调试。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值