5

所以我创建了一个 Outlook 加载项并使用单击一次设置来部署它。

当用户是管理员时,设置运行良好,否则:不行。

使用“运行方式...”运行设置并以管理员身份登录可以工作,但加载项安装在管理员下,而不是当前用户下。该插件不会出现在 Outlook 中。

我尝试遵循本指南: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 配置单元中的注册表项,例如,您会发现两个有趣的注册表项出现在您的 HKCU 配置单元下:

  • HKCU\Software\Microsoft\Office\TestKey 包含注册表值 TestValue 的注册表项
  • 您现在还拥有 HKCU\Software\Microsoft\Office\12.0\User Settings\TestPropagation 注册表项,其中 Count 值设置为 1

但是在我的机器上,没有创建密钥......接下来我可以尝试什么?

4

6 回答 6

0

如果我正确理解了这个问题,让我描述一下您的场景:将为所有用户安装 clickonce 应用程序,因此必须首先通过具有管理员权限的部署机制运行才能将密钥写入 HKLM。此后,标准用户登录,Microsoft Office 在启动时将 HKLM 密钥复制到 HKCU,此后该计算机上的任何用户都在标准用户的上下文下运行加载项。

如果在用户启动 Office 时让 Office 使用 HKLM 密钥复制到 HKCU 的所有尝试都用尽了,我会将 vbs 脚本和 reg 文件放在一起,将 vbs 脚本放在所有用户启动文件中(使用一些管理员级别的部署工具)并在没有 Office 帮助的情况下自行管理 HKCU 中特殊密钥的创建。当用户登录时,vbs 脚本文件将静默运行 regedit 以将适当的密钥放置在 HKCU 中。

这类似于我们在办公室管理 WordPerfect 的方式。

更新:使用修补程序KB976477解决此问题。

于 2009-03-26T05:41:28.140 回答
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] "TestValue"="Test"

请注意,密钥的路径位于 Wow6432Node 密钥下。它必须在那里,否则它将无法在 64 位操作系统上运行。

于 2009-03-24T04:05:34.957 回答
0

我已经有几年没有这样做了,但是从内存中,办公室插件可以像这样“注册”:

  1. 将文件放在正确的位置
  2. 注册代表您的插件的 .NET COM 对象
  3. 将注册表项放在下面Microsoft\Office\Addins,告诉办公室加载您的 COM 对象。

如果我的想法是正确的,那么问题将是您需要注册 COM 对象。注册 COM 对象是每台机器的操作,因此需要管理员权限。

您将能够看到这是否确实发生了。您在 office 插件下的注册表项将被称为类似MyAddin.Connect. 然后,您可以在下面搜索HKEY_CLASSES_ROOTMyAddin.Connect当您以管理员身份运行安装时它应该存在,而在以每个用户身份运行时不存在。

如果是这样,您可以通过对 COM 对象进行每个用户注册来解决它,但这有点痛苦。

现在事情可能变得更容易了,但是当我不得不这样做时,您使用了一个名为RegCap.exe将与 COM 对象关联的注册表项捕获到 .reg 文件中的实用程序,然后使用文本编辑器修改 .reg 文件以替换HKLMHKCU,然后,您无需注册 COM 对象,而是加载此 .reg 文件。

于 2009-03-21T21:51:29.363 回答
0

如果要将 Outlook 加载项安装到所有用户,则需要使用共享加载项而不是 VSTO 加载项。VSTO 加载项是基于每个用户而不是每台机器的,因此对于标准用户,您必须暂时授予用户本地管理员权限才能安装它。

于 2010-06-04T09:59:08.787 回答
0

您使用该加载项的目标是什么版本的 Office,以及您的目标是什么版本的 .NET Framework?另外,您使用的是什么版本的 Visual Studio?

这应该有效;我现在有两个使用 ClickOnce 部署的 Office 加载项在生产中。

您列出的文章是关于为所有用户安装的。这不使用 ClickOnce,与您的情况无关。

在找出您正在使用/定位的版本后,我可以为您提供一些部署步骤。:-)

于 2010-06-04T22:12:59.323 回答
0
  1. 创建一个本地管理员帐户,例如 TESTAccount。
  2. 使用单击一次为该用户安装插件。
  3. 以管理员身份重新登录并将 TESTAccount 复制到默认用户。

现在,当任何人登录机器时,将从默认配置文件为他们创建一个新配置文件,因此将安装插件。

于 2011-12-27T11:46:31.663 回答