我正在尝试在客户端计算机上安装Outlook Addin。
不幸的是,加载项永远不能“启用”,它总是显示在“已禁用”加载项部分中。
是否有关于如何创建正确的安装应用程序并安装Outlook插件的简单分步指南?
编辑:
好的,我已经回归基础,但我仍然无法正确安装。
我使用VS2010项目向导创建了一个新的Outlook Addin。
它生成文件等,然后我改变我的代码:
namespace OutlookAddIn1
{
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
MessageBox.Show("Worked");
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
#region VSTO generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
#endregion
}
如果我安装了这个,我收到相同的错误消息:
Not Loaded. The Managed Add-in Loader failed to initialize.
安装加载项时,我确保创建了注册表项:
我还将.manifest
文件和.vsto
文件添加到安装项目中。
还是难倒!
答案 0 :(得分:11)
我认为本教程可能对您的参考有用。
http://msdn.microsoft.com/en-us/library/ff937654.aspx
此外,您还可以查看其他一些内容。首先,查看启动Outlook Addin时是否有任何COM异常抛出。通常,如果在启动时抛出错误,则不会自动禁用addin。而且您还想查看loadBehavior
注册表项,并查看您在那里获得的值。
有关LoadBehavior reg键的详细信息,请参阅:http://msdn.microsoft.com/en-us/library/bb386106(VS.100).aspx
答案 1 :(得分:4)
在woodykiddy的帮助下,我最终成功构建了安装程序并成功安装!来这里的任何人都应该访问他帖子中提供的链接。
我只想详细说明我遵循的一般程序,以便让它发挥作用。
首先,regisrty条目很重要,尤其是Manifest和LoadBehavior键。确保它指向正确的安装位置。 您还需要确保安装了正确的运行时,例如适用于Office运行时的VSTO 2010和Office主要互操作程序集(如果需要)。
此外,手动将在Addin的\ Release \文件夹中创建的* .vsto和* .dll.manifest添加到安装项目中非常重要。
我发现要检查Register for COM Interop
NOT ,同时检查应用程序属性必须中的Make Assembly COM Visble
属性。
最后,确保安装项目中未包含*.dll
的任何Microsoft *.Utilities.dll
为Excluded
。
对不起最后一件事,在安装时,将“Just Me”安装到可写文件夹,例如[LocalAppDataPath]
。当用户没有管理员priveldges时,还有其他警告。
答案 2 :(得分:0)
以下是有关如何解决Outlook Addin
可能出现的问题的简短检查清单(当然不是所有内容都被覆盖)
插件是否已在客户端计算机上正确注册?
检查注册表项(HKLM \ Software \ Microsoft \ Office \ Outlook \ Addins)和regasm.exe
还要确保Make Assembly COM Visble
中的Project Properties -> Assembly Information
已被选中
您是否已将所有依赖项与插件程序集一起部署?
它非常重要,尤其是当您构建自己的设置时(通过WIX或installshield,......)。
启动Outlook时插件是否有错误?
检查事件查看器是否有Outlook错误和警告
它也可以&#34;消失&#34;当插件程序集的版本号/ GUID发生更改或存在冲突时
尝试通过删除注册表中的CLSID键来修复它
REM 64bit entry in HKEY_CLASSES_ROOT
reg delete HKCR\CLSID\{GUID} /f
REM 32bit entry in HKEY_CLASSES_ROOT
HKCR\Wow6432Node\CLSID\{GUID}
并通过regasm.exe重新注册程序集