“管理COM加载项”对话框无法在目标计算机上安装Outlook加载项ACTIVE

时间:2011-03-30 23:06:37

标签: deployment add-in outlook-addin publish outlook-2007

我的加载项以Outlook 2007为目标,并使用C#和Visual Studio 2010构建。我遇到了通过SETUP.exe和Visual Studio发布向导构建的“清单”将其部署到不同目标计算机的问题。

我最近尝试将其部署到目标PC(即其中一个典型的部署PC并且缺少我的开发环境)会产生奇怪的问题:

  • 加载项安装正常(即安装程序没有投诉;程序在控制面板中正确显示)
  • 访问工具 - >信托中心 - >加载项显示我刚安装的加载项 非活动
  • 单击“执行”以获取“管理COM加载项”对话框&选中我的复选框,然后按 按钮
  • 一个名为“添加加载项”的浏览对话框的窗口在右侧窗格中显示“没有项目与您的搜索匹配”;在此窗口的底部是一个标有“文件名:”的空文本框,以及一个文件类型的“可执行文件”或“所有文件”选项。加载项仍为 “无效”
  • 我不清楚此对话框此时需要使其“活动”(启动时加载是此处选择的一部分)。

注:

  1. 此解决方案中的2个项目是针对.Net 3.5的“目标框架”编译的,导致引用了DLL,例如Microsoft.Office.Tools.Outlook.V9.0和他的同伴(我猜这是“VSTO 3.0” ??)。
  2. 此解决方案在开发PC上正确启动Outlook,并且加载项已成功加载并按预期运行(针对Outlook 2007和/或Outlook 2010);所以这似乎只与部署有关。
  3. Visual Studio 2010附带的安装向导构建的内容是否存在错误?我在某处读到“清单”可能是“腐败的”。

    EDIT-UPDATE 3/31/2011:

    我想我找到了答案。我相信通过使用VStudio中的“发布向导”生成一个SETUP.EXE,我正在尝试所谓的“ClickOnce”部署。其次,Outlook的这个插件不是“文档级”插件,而是“机器级”插件。鉴于这些更好的术语发现,我在http://msdn.microsoft.com/en-us/vsto/ff937654.aspx找到了这个:

    “您可以使用ClickOnce以最少的用户交互来创建和安装自我更新的应用程序。这有一个自动机制,可以轻松地将更新分发到您的应用程序。但是, ClickOnce无法部署那些组件需要管理员权限,例如机器级加载项 。对于需要管理权限的解决方案,您可以使用Windows Installer部署Visual Studio Tools for Office自定义。

    因此,我将尝试制作Windows Installer。任何确认将不胜感激。

1 个答案:

答案 0 :(得分:0)

我确信ClickOnce部署方式不适用于我的Outlook 2007计算机级加载项。因此,我回答了我自己的问题,只是声明这需要一个可以构建的Windows安装程序(和安装程序)正确选择的Visual Studio模板。

令人遗憾的是,在我测试所述安装程序.msi和相关的setup.exe以获取先决条件时,我的目标计算机的安装进展顺利,但是当我在Outlook中测试插件本身的操作时,我感到非常糟糕Outlook.exe中的APPCRASH事件:

Problem signature:
Problem Event Name: APPCRASH
Application Name:   OUTLOOK.EXE
Application Version:    12.0.6550.5003
Application Timestamp:  4d10fbc4
Fault Module Name:  kernel32.dll
Fault Module Version:   6.0.6001.18215
Fault Module Timestamp: 49953395
Exception Code: e0434352
Exception Offset:   000442eb
OS Version: 6.0.6001.2.1.0.256.1
Locale ID:  1033

Additional information about the problem:
LCID:     1033
Brand:    Office12Crash
skulcid:  1033

所以答案是ClickOnce不合适。 .msi似乎正确安装了加载项,但在运行时它会将天空吹得很高。请记住,通过Visual Studio启动时,addin在运行时可以正常工作。为什么部署必须如此困难?