下载GMAP源码,修改foreach bug后重新生成了dll,项目重新引用自己生成的dll后,生成发布均无问题。
客户端更新时,提示“需要在GAC里安装gmap.net.core 1.7.0.0”,自己生成的dll版本为1.7.5.0。
1.尝试删除dll,重新引用无果。
2.尝试在发布页面-程序文件里,将GMAP两个dll的发布状态更改为“包含”,无果。
百般尝试,甚至搜索了整个项目+GMAP两个项目代码,未发现相关字样。
决定放弃clickonce发布方式,改用visual studio installer打包生成安装文件。
在添加“项目输出”时,发现自动加载的引用里包含两个GMAP.NET.CORE.DLL,版本号分别为1.7.0.0和1.7.5.0。经过N久思索后,为发现有引用旧版的dll,万般无奈决定删除电脑里的旧版dll。在查找过程中,发现在项目源码文件夹下有一个1.7.0.0版本的dll。
解决方案:
将项目源码文件夹下旧版dll删除后,重新生成发布项目。客户端更新成功!!!
揣测:
使用clickonce发布时,vs自动将源码文件夹下的所有dll,都默认为需要安装的dll。但是在“程序文件”里,并没有体现,造成发布后,客户端无法更新的问题。
对clickonce机制没有过深入研究,不知道以上分析是否正确,大神轻拍!