我开发了一个使用com dll兑换的Outlook 2003加载项。我创建了一个visual studio 2008安装项目,添加了一个自定义操作来运行“caspol.exe -machine -addgroup 1 -strong -hex [key] -noname -noversion FullTrust -n \”Name \“-description \”desc \“并按照http://msdn.microsoft.com/en-us/library/cc136646.aspx#AutoDeployVSTOse_InstallingtheAddinforAllUsers中的说明将软件下的注册表项移至HKLM,以确保所有用户的兼容性。
我在vsdrfCOMSelfReg的设置中包含了redemption.dll(vsdrfCOM抛出了一个错误)。
我的问题是:在管理员帐户下的测试计算机上安装设置时,它在所有用户下运行正常,但是当我们使用在系统帐户下运行的公司范围的软件部署时,安装程序会执行但是加载项不会加载。如果我再次使用管理员帐户修复安装,则加载就好了。系统帐户是否应该具有安装所有组件所需的权限?我有什么选择? 感谢您的任何建议。
答案 0 :(得分:0)
在系统帐户下运行安装后,您是否在HKCR中看到了Redemption注册表项?例如。 HKEY_CLASSES_ROOT \ Redemption.RDOSession?
答案 1 :(得分:0)
现在让我们继续讨论caspol问题。请务必先使用强名称密钥对程序集进行签名。接下来,您需要确保您的程序集在客户端上获得完全信任。为此,您可以使用以下设置运行caspol.exe:“caspol.exe -machine -addgroup 1 -strong -hex [key] -noname -noversion FullTrust -n \”Name \“-description \”desc \“使用这些参数,您将使用您的密钥签署所有已使用密钥签名的程序集,完全信任计算机。这比给出整个目录FullTrust更好。
在生产环境中,您肯定希望为加载项创建设置。您还可以为安装项目创建自定义操作,以自动执行所有caspol内容。您可以使用此处提供的示例代码“http://msdn.microsoft.com/en-us/library/cc136646.aspx#AutoDeployVSTOse_CreatingtheCASPolicy”,但请注意:在caspol参数中检查-pp off。如果启用了策略更改提示,那么您的自动安装将失败,因为它需要用户交互。将-pp设置为off,执行策略并重新设置。再次注意:示例代码不会等待退出流程。
在我解决了这一切之后,即使对于“所有用户”安装,外接程序的部署也很容易。希望能帮助那里的任何人。