7

我有一个使用 Visual Studio 2010(.net 4.0 客户端配置文件)构建的 Outlook 插件,在 Outlook 2007 和 Outlook 2010 中运行良好。我刚刚在 2013 年进行了测试,甚至安装插件似乎崩溃了。谷歌搜索后,我看到一些人们面临的问题示例,但从根本上无法直接回答这个问题:

是否有任何先决条件不允许 VS 2010 Outlook 插件仅在 2013 上运行,或者我是否需要升级 Visual Studio 并创建我的插件的 Outlook 2013 特定版本?

4

6 回答 6

1

在不同版本的Microsoft Office 中运行解决方案一文描述了所有详细信息。它声明如下:

如果您为 Office 2010 开发了解决方案,则可以在 Microsoft Office 2013 中运行相同的解决方案。使用 Visual Studio 2013、Visual Studio 2012 或 Visual Studio 2010 创建的解决方案可以在 Office 2013、Office 2010 或 2007 Microsoft Office 中运行系统。

您的加载项的目标 .Net 框架是什么?您是否尝试调试代码?你有任何例外吗?

于 2014-12-08T16:00:42.127 回答
0

您有加载项项目的计算机上是否安装了 Outlook 2013?如果这样做,您可以通过将项目属性窗口的“调试”选项卡中的“启动外部程序”设置为 Outlook 2013 .exe 从 VS 2010 进行调试。当我创建我的加载项时,我能够使用我的开发计算机上的任何版本的 Outlook 对其进行调试,并且我不记得除了外部程序路径之外进行了任何更改。

如果您使用 setup 项目进行安装,则在创建其启动条件时需要不同的 ComponenedId。您需要在 Outlook 2010 和 2013 上安装两个不同的安装项目。这里是Office 2013 PIA 密钥Office 2010 密钥

于 2014-12-11T16:32:13.947 回答
0

您是否尝试再次启用加载项?它在禁用队列中后不会运行。从禁用的加载项屏幕重新启用它后,您可以选中 COM-AddIn 屏幕中的框以加载它,然后应该提示您更多详细信息,因为您设置了VSTO_SUPPRESSDISPLAYALERTS关于第一次可能发生的事情的变量地方。问题可能是 Outlook 已硬禁用加载项。请注意,加载项未显示在非活动应用程序加载项下,而是显示在禁用的应用程序加载项下。这有所不同:在后一种情况下,仅进入 COM-AddIn 屏幕并勾选复选框不足以解决问题。

为硬禁用加载项执行这些步骤?

  1. 转到管理框,将 COM 加载项更改为禁用的加载项,然后单击执行。选择加载项并单击启用。单击关闭。好的,现在可以再次加载加载项:

  2. 在“管理”框中,将“禁用加载项”更改为“COM 加载项”,然后单击“开始”。选中已禁用加载项旁边的复选框。单击确定。

参考网站了解更多详情。

于 2014-12-18T07:10:32.307 回答
0

程序集加载问题很难调试,因为在处理托管代码和本机代码时至少有两层。

  1. 当可执行文件启动时,本机加载程序必须找到该文件,将其连同所有相关的 DLL 加载到内存中以使其运行。
  2. 本机加载程序查看程序集清单以确定此信息,然后简单地搜索所有 DLL 并将它们加载到内存中(按顺序)。
  3. 您可以使用 WINDBG 轻松查看此过程,并指向一个 EXE 并从 Windbg 运行它。正在加载的模块列表是工作中的本机加载程序。
  4. 如果依赖项是 .NET 托管代码程序集,则本机加载程序将加载请求直接传输到托管加载程序,称为“Fusion”。
  5. 您可以轻松设置 FusionLOG 查看器以查看发生了什么http://msdn.microsoft.com/en-us/library/vstudio/e74a18c4%28v=vs.100%29.aspx
  6. 通过 WINDBG for Native 或 Fusion Log View for Managed 代码很容易发现托管层或托管层内的加载失败。

关于托管 DLL 加载的一些提示: 如果程序集包含对未包含在该程序集中的 dll 的引用,则会遵循严格的“探测”顺序来查找 dll。将至少尝试 3 次在不同位置(例如在程序集、程序根路径和 GAC 中)找到 DLL。如果这三个尝试都失败了,加载将在此时停止并且程序将不会运行。当这种情况发生时,它通常被认为是系统级的环境问题;然而,实际上这是一个编程问题,因为除非系统管理员完全了解先决条件,否则他们无法猜测这些东西。如果您是包含其他依赖 dll 的程序员,则应始终考虑是否将它们放入程序集中以阻止此问题。否则你,

您可能会说,我被另一个部门告知使用此 dll,我不知道其他依赖项是什么!这不是借口,因为有诸如 ILDASM 之类的优秀工具,甚至托管代码 Dependency walkers 会告诉您所需的一切。打包这些“其他”dll 的最佳方法是将它们简单地包含在您的程序集中。

于 2014-12-18T16:01:46.670 回答
0

在尝试安装它之前,您可以尝试通过调试器运行它以获取有关实际问题的更多信息。据我记得,您只需要转到您的项目属性并在调试时更改 Outlook 的启动版本...

您可以点击此链接了解更多信息:http ://www.greycastle.se/vsto-project-office-target-version/

于 2014-12-18T13:56:26.863 回答
0

我依稀记得过去在安装时遇到过一个插件崩溃...解决方法是:

  1. 在目标计算机上安装Visual Studio 2010 Tools for Office Runtime

在此处输入图像描述

  1. 再次尝试 VSTO AddIn 安装,您不会在安装过程中遇到崩溃
于 2014-12-18T08:22:36.513 回答