原文:VSTO:无法安装此应用程序,因为已安装具有相同标识的应用程序
在开发环境(Win7+VS2010+Outlook 2010)上做一个Outlook AddIn,运行Outlook时报如下错误:Unable to install this application because an application with the same identity is already installed. To install this application, either modify the manifest version for this application or uninstall the preexisting application(无法安装此应用程序,因为已经安装了一个相同的应用程序。要安装此应用程序,请为此应用程序修改清单版本或卸载已存在的应用程序)。
因为Deployment Identity包含了Name、Version、Culture、Public Key Token以及Processor Architecture五个部分。在开发时,修改了程序集的名称,所以会引起上述问题。但是,找遍了注册表,还是没有之前程序集的任何信息。补充下,VSTO的注册表信息位于:HKCU\Software\Microsoft\Office\Outlook\Addins下。
经Google,原因在于ClickOnce部署方式造成的。ClickOnce部署方式分为联机和脱机两种模式。详细参考:
文章:《关于由ClickOnce部署的应用程序的两种模式和卸载问题》
如文中所述,联机模式下,存在缓存。因此,清除缓存即可。方式是运行:mage -cc。针对本文的问题,也迎刃而解。这可以参考:《Clearing the ClickOnce App Cache》
mage.exe位于:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools下。关于mage,参考微软官方文档:http://msdn.microsoft.com/zh-cn/library/acz3y3te.aspx。
此外,关于VSTO部署到所有用户,可以参照:《将 VSTO 插件部署给所有用户》。
解决方案:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools>mage -cc
已清除应用程序缓存。