我建立了一个VSTO Outlook加载项,当从对象资源管理器中选择一条邮件消息(IPM.Note消息类)时,它仅在阅读窗格中显示一个相邻的表单区域。在调试模式下,外接程序将按预期工作。但是,使用安装程序安装时,加载项会正确加载(并且代码在启动时会触发MessageBox.Show(),但不会显示“窗体区域”。我已将MessageBox.Show()事件放置在RepInfoFactory_FormRegionInitializing方法中但他们都没有开火。
我已经搜索了类似的情况,但是只发现禁用了整个加载项的情况。就我而言,它加载得很好。我曾尝试以管理员身份启动Outlook,但这似乎并不影响加载项。我还设置了环境变量以显示VSTO警报并记录它们,但未记录任何内容-我怀疑是因为加载项正常。
因为我将FormRegionMessageClass属性设置为Note,所以我仔细检查了资源管理器中的对象确实是IPM.Notes。
我正在运行Outlook 2016(即点即用)和VS 2019。
我希望在检查/尝试的事情上有其他建议。
谢谢!
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
MessageBox.Show("Addin Startup"); //this message box displays in both debug and installed version
}
}
partial class RepInfo
{
public static Outlook.ExchangeUser contact;
public static System.Data.DataTable dtRepHier;
public static System.Data.DataTable dtSubHier;
#region Form Region Factory
[Microsoft.Office.Tools.Outlook.FormRegionMessageClass(Microsoft.Office.Tools.Outlook.FormRegionMessageClassAttribute.Note)]
[Microsoft.Office.Tools.Outlook.FormRegionName("WATCHTOWER.RepInfo")]
partial class RepInfoFactory
{
//The code in this method only works in debug mode. The form only displays (under the stated conditions) when in debug mode.
private void RepInfoFactory_FormRegionInitializing(object sender, Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs e)
{
//MessageBox.Show(e.FormRegionMode.ToString() + " " + e.FormRegionSize.ToString());
Outlook.MailItem myItem = (Outlook.MailItem)e.OutlookItem;
//MessageBox.Show(myItem.MessageClass);
if (myItem != null)
//MessageBox.Show(myItem.Sender.Name);
if (myItem.Sender != null)
{
{
contact = myItem.Sender.GetExchangeUser();
//MessageBox.Show(contact.Department);
if (contact != null && contact.Department != null && (contact.Department.Substring(7, 10) == "US-AVD-VAS"
|| contact.Department.Substring(7, 9) == "US-AVD-US"))
{ return; }
}
e.Cancel = true;
}
}
}
#endregion
// code continues
我建立了一个VSTO Outlook加载项,当从对象资源管理器中选择一条邮件消息(IPM.Note消息类)时,它仅在阅读窗格中显示一个相邻的表单区域。加载项...
首先,我建议向代码中添加任何日志记录机制,以查看代码在最终用户计算机上的工作方式,并记录发生异常的异常。