Я пытаюсь создать приложение Outlook 2013, которое будет загружать другие управляемые добавления из указанного места. В основном это заглушка загрузчика, которая знает, как найти эти другие дополнения, загрузить свои сборки и зарегистрироваться.Создать заглушку загрузчика для OutlookAddInBase
Вот простое доказательство концепции:
using System;
using System.Linq;
using System.Windows.Forms;
using System.ComponentModel;
using System.Reflection;
using Microsoft.Office.Tools;
using Microsoft.Office.Core;
using Microsoft.Office.Tools.Ribbon;
[Microsoft.VisualStudio.Tools.Applications.Runtime.StartupObject(0)]
public class TestAddin : IAddInExtension, IExtension, EntryPoint, ISupportInitialize, IComponent, IDisposable, IBindableComponent
{
private List<EntryPoint> entrypoints = new List<EntryPoint>();
public TestAddin(Factory factory, IServiceProvider serviceProvider)
{
Assembly asm = LoadAddinAssembly();
foreach (var type in asm.GetTypes())
{
var attr = type.GetCustomAttributes(false).OfType<Microsoft.VisualStudio.Tools.Application.Runtime.StartupObjectAttribute>().FirstOrDefault();
if (attr != null)
{
var ep = Activator.CreateInstance(
type, factory, serviceProvider)
as Microsoft.Office.Tools.EntryPoint;
if (ep != null)
{
entrypoints.Add(ep);
}
}
}
}
public void BeginInit()
{
foreach (var inst in entrypoints)
inst.BeginInit();
}
// Implement the rest of the interface methods similar to BeginInit above
}
Перспектива строит мой класс, мой класс загружает другую надстройку сборку и создает точку входа, а затем прогноз вызывает следующий 3 метод PASSTHROUGH который я тогда называю на к другой надстройке:
Ни один из них не создает никаких ошибок, но после этого ни один из методов пересылки не вызывается, и добавление, которое я пытаюсь загрузить, никогда ничего не делает.
Что такое официальное дополнение, отображающее Outlook, которое мне нужно пройти? Или это вообще возможно?
Спасибо за информацию. На первый взгляд кажется, что это может иметь некоторую актуальность, но теперь, когда я читаю статью, она оказывается совершенно не связанной с тем, что я пытаюсь выполнить. –
COMAddins - это способ сообщить Outlook загружать уже зарегистрированный аддон. Я пытаюсь загрузить addin, не регистрируя его, загружая сборку в уже загруженный и зарегистрированный аддон. Я хочу иметь возможность контролировать, какая версия внешнего добавления загружается во время выполнения. –
Можете ли вы пояснить, что вы подразумеваете под «внешним добавлением» и как это отличается от вашей надстройки, загруженной в настоящее время? Как это отличается от ссылочной сборки?Возможно, использование Reflection может быть вариантом? –