所以我创建了一个Outlook加载项,并使用click-once设置来部署它。
当用户是管理员时,安装程序运行正常,否则:不执行。
使用“run as ...”运行安装程序并以admin身份登录,但是加载项安装在admin下,而不是当前用户。插件中没有显示插件。
我尝试按照本指南操作: http://blogs.msdn.com/mshneer/archive/2008/04/24/deploying-your-vsto-add-in-to-all-users-part-iii.aspx
但是我被困在第一部分: http://blogs.msdn.com/mshneer/archive/2007/09/04/deploying-your-vsto-add-in-to-all-users-part-i.aspx
我按照示例操作并按照描述启动excel:
现在启动Excel应用程序。检查 HKCU hive中的注册表键,例如 你会发现两个有趣的 注册表项出现在您的 HKCU蜂巢:
- HKCU \软件\微软\办公室\密押 包含注册表值的注册表项 TestValue
- 你现在也有 HKCU \软件\微软\办公室\ 12.0 \用户 Settings \ TestPropagation注册表项 将Count值设置为1
但在我的机器上,没有创建密钥......我接下来可以尝试什么?
答案 0 :(得分:0)
我在几年内没有这样做过,但是从内存办公室添加内容会像这样“注册”:
Microsoft\Office\Addins
下,告诉办公室加载您的COM对象。如果我的想法是正确的,问题是你需要注册COM对象。注册COM对象是每台机器的操作,因此需要管理员权限。
你将能够看到这确实是发生了什么。办公室附加组件下的注册表项将被称为MyAddin.Connect
。然后,您可以在HKEY_CLASSES_ROOT
下搜索MyAddin.Connect
,当您以管理员身份运行安装时,它应该存在,而当按用户运行时,不。
如果是这样,你可以通过对COM对象进行每用户注册来解决它,但这有点痛苦。
现在可能更容易了,但是当我不得不这样做时,你使用一个名为RegCap.exe
的实用程序将与COM对象关联的注册表项捕获到.reg文件中,然后修改.reg文件使用文本编辑器将HKLM
替换为HKCU
,然后加载此.reg文件而不是注册COM对象。
答案 1 :(得分:0)
为了清楚起见,您要将注册表项添加到“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 12.0 \ User Settings”
他们仍然没有出现在HKCU \ Software \ Microsoft \ Office \?
我假设您必须运行64位操作系统?
如果是这样,修复很简单,请尝试使用
Windows注册表编辑器版本5.00 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Wow6432Node \ Microsoft \ Office \ 12.0 \ User Settings \ TestPropagation]“Count”= dword:00000001 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Wow6432Node \ Microsoft \ Office \ 12.0 \ User Settings \ TestPropagation \ Create \ Software \ Microsoft \ Office \ TestKey] “测试值”= “测试”
请注意,密钥的路径位于Wow6432Node密钥下。它必须在那里,否则它将无法在64位操作系统上运行。
答案 2 :(得分:0)
如果我正确理解了这个问题,请让我描述您的场景:将为所有用户安装clickonce应用程序,因此必须首先运行具有管理员权限的部署机制,以便将密钥写入HKLM。在此之后,标准用户登录,Microsoft Office在启动时将HKLM密钥复制到HKCU,然后加载项在标准用户的上下文中为该计算机上的任何用户运行。
如果在用户启动Office时让Office使用HKLM密钥复制到HKCU,所有尝试都已用尽,我会将vbs脚本和reg文件放在一起,将vbs脚本放在所有用户启动文件中(使用一些管理级别部署工具)并在没有Office帮助的情况下自行管理HKCU中特殊密钥的创建。当用户登录时,vbs脚本文件将以静默方式运行regedit以将相应的密钥放在HKCU中。
这与我们在办公室管理WordPerfect的方式类似。
更新:使用修补程序KB976477解决问题。
答案 3 :(得分:0)
如果要将Outlook加载项安装到所有用户,则需要使用共享加载项而不是VSTO加载项。 VSTO加载项是基于每个用户而不是每台计算机,因此对于标准用户,您必须暂时授予用户本地管理员授权才能安装它。
答案 4 :(得分:0)
您使用加载项定位了哪个版本的Office,以及您定位的.NET Framework版本是什么?另外,您使用的是哪个版本的Visual Studio?
这应该有用;我现在在生产中有两个Office插件,它们与ClickOnce一起部署。
您列出的文章是关于为所有用户安装的。这不使用ClickOnce,与您的案例无关。
在找到您正在使用/定位的版本后,我可以为您提供一些部署步骤。 : - )
答案 5 :(得分:0)
现在,当任何人登录到机器时,将从默认配置文件为他们创建一个新配置文件,因此将安装插件。