安装Office自定义

40

名称: 来源:file:///D:/Samples/TestUpdatedVersion/bin/Debug/TestUpdatedVersion.vsto

由于已经安装了另一个版本并且无法从当前位置升级,因此无法安装自定义内容。要安装此版本的自定义内容,请先使用“添加或删除程序”卸载此程序:TestUpdatedVersion。然后从以下位置安装新的自定义内容:file:///D:/Samples/TestUpdatedVersion/bin/Debug/TestUpdatedVersion.vsto

************** 异常文本 ************** Microsoft.VisualStudio.Tools.Applications.Deployment.AddInAlreadyInstalledException: 由于已经安装了另一个版本并且无法从当前位置升级,因此无法安装自定义内容。要安装此版本的自定义内容,请先使用“添加或删除程序”卸载此程序:TestUpdatedVersion。然后从以下位置安装新的自定义内容:file:///D:/Samples/TestUpdatedVersion/bin/Debug/TestUpdatedVersion.vsto at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.VerifySolutionCodebaseIsUnchanged(Uri uri, String subscriptionId, Boolean previouslyInstalled) at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()


1
我已经记录了详细的步骤,这是我在网上大力搜索之后修复它的过程,网址是 http://censore.blogspot.in/2015/12/fixing-deploymentaddinalreadyinstallede.html。 - biplav
10个回答

66

你可以尝试删除位于注册表中的一个键:

HKEY_CURRENT_USER\Software\Microsoft\VSTA\Solutions\{GUID}

{GUID}的值在不同环境下会有所不同。

确认您正在删除正确的键。通过检查该键上的DWORD "Url"值进行确认。

重新启动Excel,然后您就可以继续了。


1
我尝试了各种方法,但没有在其他地方看到这个解决方案,但它完美地解决了问题。谢谢。 - djskinner
字面上的复制粘贴自:https://answers.microsoft.com/en-us/windows/forum/windows_xp-windows_programs/the-customization-cannot-be-installed-because/43538a96-1dbc-406f-9432-bd470ba57709。 - Brandon Barney
2
@BrandonBarney,那是因为它们都是我发布的。我认为这非常有用,一旦我解决了问题,我就会在遇到这个问题的任何地方发布答案。最初的问题是通过使用ProcMon跟踪插件的注册表读取来解决的。请查看我的网站:http://www.charliedigital.com。 - Charles Chen
@CharlesChen 对不起,我完全没注意到你也是另一个项目的作者。那么你当之无愧 :)。 - Brandon Barney
1
太棒了!我们到处寻找解决安装问题的方法,终于找到了。原来在我们的情况下,是因为一个VSTO插件ClickOnce安装被Webroot病毒保护阻止了一半。我们花费了很长时间进行调试,而这正是最终的答案。非常感谢! - gotmike

16

这个错误只应在开发机器上出现。

根据微软的office部署故障排除指南(http://msdn.microsoft.com/en-us/library/bb608594.aspx):

当您构建Office解决方案时,构建版本会自动注册。如果您之前已将相同的解决方案发布并安装到您的开发计算机上,Visual Studio Tools for Office运行时会在下一次构建、重新构建或发布后检测到已发布版本和构建版本的安装路径不同。错误消息显示“无法安装自定义项,因为另一个版本当前已安装且无法从此位置升级”。由于重建解决方案会更新注册表键,因此在发布、调试或运行第二个版本之前必须卸载第一个版本。

要防止出现该消息,请在开发计算机上创建另一个用户帐户以测试您的部署。或者,在下一次发布、调试或重建解决方案之前,您可以从计算机上安装程序的已安装程序列表中卸载该版本。


当我在短时间内部署多个版本时,我在测试机器上遇到了这个问题。每次安装之前我都会先卸载,但偶尔仍然会出现此问题。 - greg
由于错误信息中出现了“bin\debug”,我猜测VS正在执行类似这样的操作。这使得在需要时调试我的插件的ClickOnce升级变得更加困难。 - Chris Bordeman

9

1
同时,mage -cc 也可以完成此操作。更易记忆。但是可能只能在 Visual Studio 命令提示符 中使用。 - OtotheA
"rundll32 dfshim CleanOnlineAppCache"可以在不安装Mage的情况下运行。这对应用程序工程师来说非常方便。而且你不需要记住它安装的位置。 - Chris Bordeman

6
我们有很多产品在不同版本的Windows操作系统上使用VSTO,包括Office 2007、Office 2010和Office 2013。在部署过程中经常出现Deployment.AddInAlreadyInstalledException异常。该问题似乎特别容易发生在已安装/卸载多次的PC上(例如IT人员自己的电脑)。这通常会让我抓狂,因为重新安装并不总是容易的,而且源头也不清楚。
由于没有一个万能的解决方案来解决此问题(除了重新安装Windows),因此我在一篇博客文章中总结了一些经验,介绍了如何解决AddInAlreadyInstalledException的步骤。链接在此:《解决AddInAlreadyInstalledException的步骤》
希望这对其他使用VSTO和Microsoft Visual Studio的用户有所帮助。

这对我有用。只需要一两分钟使用Windows的添加/删除软件功能即可。https://documentation.invantive.com/notes/webhelp/invantive-notes-deployment-addinalreadyinstalledexception.html - user8597

3

如果您在开发VSTO AddIn的同一台计算机上尝试安装/更新它,则可能会出现此错误,这是由Visual Studio引起的。

每当您在Visual Studio中构建AddIn时,它都会更新AddIn使用的注册表键,从而破坏您所做的任何安装。

HKEY_CURRENT_USER\Software\Microsoft\Office\<Application>\Addins\<YourAddIn>\Manifest

解决方案是添加一个后置构建事件,用于恢复/设置注册表键的正确值。 例如,如果您的AddIn被配置为从<YourPublishLocation>安装/更新,则后置构建事件应类似于:
REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\<Application>\Addins <YourAddIn>"
/v "Manifest" /d "<YourPublishLocation>" /f

1
在我的开发机上,我使用Visual Studio构建了VSTO项目,使用相同的产品版本/标识,在解决方案资源管理器中选择该项目并执行清理命令。实际上,这有助于清除上述提到的注册表条目。
这使我能够使用相同的应用程序标识重新安装产品。

1

尝试卸载先前安装的VSTO应用程序,或从Visual Studio菜单中选择>构建|清理解决方案。


1
我们不应该卸载先前版本的VSTO,应用程序应该负责此事,因为同样的方法适用于Windows应用程序。 在Visual Studio菜单>构建|清理解决方案后,我仍然遇到了相同的错误。 - user187229

0

在这个问题中帮助我的是从我发布的文件夹中卸载了我从Control-M安装的插件,然后清理解决方案。


0

我在制作插件设置后测试部署,但在尝试安装时遇到了相同的问题。

问题:当您发布或调试插件时,VS会在以下位置创建/更新注册表并添加插件信息:

HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\<你的插件名称>\Manifest

其中包含对将用于升级的VSTO文件的引用。在您的情况下,发布后它将指向

file:///D:/Samples/TestUpdatedVersion/bin/Debug/TestUpdatedVersion.vsto

将此更改为您发布的vsto路径。 现在尝试安装,应该可以正常工作。 您可以通过相同的方式测试自动升级选项,即进行构建+发布并更改此路径,然后关闭所有Excel并打开一个。


0

当我部署我们的VSTO Word插件的新版本时,我遇到了同样的问题。经过两个小时的折腾,我发现解决方案属性中设置的安装文件夹URL(从哪里升级)是区分大小写的,并且愚蠢地需要与初始安装URL相同的大小写。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接