我正在使用VSTO 4部署我的第一个(VSTO)外接程序。
安装外接程序注册表项有一些不同的选项。它可以是HKEY_CURRENT_USER下的每个用户,也可以是每台机器HKEY_LOCAL_MACHINE。我的许多用户正在Citrix或终端服务下运行。当用户没有正确的权限时,管理员将在服务器上运行我的安装。此外,我的用户只占这些服务器上用户的一小部分。
出于这些原因,我计划构建一个小的实用程序,它将随外接程序一起发布。该实用程序将创建正确的每个用户注册表项,以启用外接程序。管理员将将外接程序dll和my实用程序安装到c:\program *。然后,实际需要外接程序的用户将被指示一次运行该实用程序,并单击"Enable“按钮。
我现在遇到的问题是如何卸载外接程序。我的User (由管理员再次运行)可以处理它创建的所有内容,但是没有办法删除每个用户的注册表项。
我希望这会是个问题,而这个词会忽略下一家初创公司缺少的附加功能。
这不起作用- Word报告了一个错误,试图在下一次运行中“安装”定制。
“安装Office自定义”安装过程中出错。下载文件file://xxx/xxx.vsto没有成功。
我在每个应用程序级外接程序msdn项目的注册表项的注册表条目的末尾包含了“维斯特洛卡尔”。
如果文件不存在,是否可以阻止Word尝试加载外接程序?
或
是否有一种方式,使卸载程序在卸载时为运行卸载?的用户清除每个用户注册表项。
我正在使用Office 2007在Windows 7计算机上进行测试。我正在使用针对.Net 4框架的VSTO 4。
发布于 2011-05-05 07:36:33
关于你的两个问题
如果文件不存在,是否仍然要阻止Word尝试加载外接程序?
据我所知,我并不知道,但我只是尝试移出DLL的my条目指向我的一个加载项,而我没有收到任何消息(如果我进入Word的选项COM ADDins区域,我可以看到加载项没有加载,这将是正确的)。
是否有方法使卸载程序在卸载时清除除运行卸载用户之外的其他用户的每个用户注册表项?
不,我几乎肯定没办法这么做。它需要每个用户的配置文件文件夹的权限。
但是,您可以在Office树下创建这些奇怪的密钥,这些密钥本质上是office应用程序加载时执行的“命令”。
因此,在卸载时,您会将额外的密钥写入Office reg键,该密钥本质上说:“当一个办公应用程序加载时,从当前的HKCU蜂巢中删除这些密钥”。
下面是我找到的一个示例Reg脚本,它显示了奇怪的键,但我无法立即找到任何链接,这些链接正是它们的原样:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\User Settings\AllUsersTemplates]
"Count"=dword:00000001
"Order"=dword:00000008
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\User Settings\AllUsersTemplates\Create\Software\Microsoft\Office\12.0\Common\General]
"SharedTemplates"=hex(2):-fill in your own Binary Value-
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\User Settings\RemoveInstantSearchBar]
"Count"=dword:00000001
"Order"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\User Settings\RemoveInstantSearchBar\Create\Software\Microsoft\Office\12.0\Outlook\Search]
"DisableDownloadSearchPrompt"=dword:00000001
<<<<< CreateFile >>>>>>>
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\User Settings\FileCopy1]
"Count"=dword:00000001
"Order"=dword:00000008
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\User Settings\FileCopy1\CreateFile\FileCopy1.potx]
"TargetFile"="[AppDataFolder]\\Microsoft\\Templates\\FileCopy1.potx"
"SourceFile"="C:\\Documents and Settings\\All Users\\Templates\\FileCopy1.potx"
如果仔细观察,您将在\Office\ key下面看到一个“用户设置{name}\Create\”键,然后其余的键路径将从HKCU下的Software\ on复制该路径。
您可以使用关键字CREATE或DELETE (删除键)。
但是请注意计数值和顺序值。这些都很重要,需要纠正。
但是,我仍然找不到这份文件的链接。
https://stackoverflow.com/questions/5890716
复制相似问题