Outlook 2003加载项安装项目存在COM DLL部署问题

Outlook 2003加载项安装项目存在COM DLL部署问题,outlook,installation,vsto,add-in,outlook-redemption,Outlook,Installation,Vsto,Add In,Outlook Redemption,我开发了一个使用com dll的Outlook 2003加载项。我创建了一个visual studio 2008安装项目,添加了一个自定义操作来运行“caspol.exe-machine-addgroup 1-strong-hex[key]-noname-noversion FullTrust-n \“Name\”-description \“desc\”,并将软件下的注册表项移动到HKLM,如中所述,以确保所有用户的兼容性 我使用vsdrfCOMSelfReg(vsdrfCOM抛出一个错误)将

我开发了一个使用com dll的Outlook 2003加载项。我创建了一个visual studio 2008安装项目,添加了一个自定义操作来运行“caspol.exe-machine-addgroup 1-strong-hex[key]-noname-noversion FullTrust-n \“Name\”-description \“desc\”,并将软件下的注册表项移动到HKLM,如中所述,以确保所有用户的兼容性

我使用vsdrfCOMSelfReg(vsdrfCOM抛出一个错误)将redemption.dll包含在安装程序中

我的问题是:当在测试机上以管理员帐户安装安装程序时,它在所有用户下都可以正常运行,但是当我们使用在系统帐户下运行的公司范围的软件部署时,安装程序会执行,但加载项不会加载。如果我再次使用管理员帐户修复安装程序,它会正常加载。系统不应该是吗Account具有安装所有组件所需的权限?我有哪些选项?
谢谢您的建议。

在系统帐户下运行安装后,您是否看到HKCR中的赎回注册表项?例如HKEY_CLASSES\u ROOT\Redemption.RDOSession?

经过无数个夜晚之后,我终于解决了问题。这确实是关于代码访问安全和caspol.exe的问题 部署Outlook 2003加载项的一些提示(Outlook 2007不同)。 首先,在测试客户端上,请确保将Windows环境变量VSTO_LOGALERTS=1设置为0,因为这将把外接程序的所有错误写入位于目标安装目录中的日志文件中。还必须知道,如果外接程序在启动过程中引发异常,它将在t上的注册表中被禁用他将在下一次启动Outlook(请参见此处)。这可能会在您不知道的情况下造成一些混乱

现在让我们转到caspol问题。请确保首先使用强名称密钥对程序集进行签名。接下来,您需要确保程序集在客户端上获得完全信任。为此,您可以使用以下设置运行caspol.exe:“caspol.exe-machine-addgroup 1-strong-hex[key]-noname-noversion FullTrust-n\”name\”-说明“描述”。有了这些参数,您将在计算机上给予所有先前使用密钥签名的程序集完全信任。这比给予整个目录完全信任要好得多

在生产环境中,您肯定需要为外接程序创建一个设置。您还可以为安装项目创建一个自定义操作,以自动执行所有caspol操作。您可以使用此处提供的示例代码“”,但请注意:在caspol参数中检查-pp off。如果策略更改提示处于打开状态,则自动安装将失败,因为它需要用户交互。将-pp设置为off,执行策略并将其重新设置为on。再次注意:示例代码不会等待进程退出


在我了解了所有这些之后,外接程序的部署很容易,即使对于“所有用户”的安装也是如此。希望这对任何人都有帮助

我想我找到了。似乎一直都是卡斯波尔指挥部。在一台干净的机器上,我部署了外接程序,由于它不起作用,我再次手动执行caspol命令。然后我以普通用户的身份登录,它马上就工作了。我将对此进行验证,并在稍后发布结束回答。