Развертывание плагинов NetOffice для Outlook
Я использую NetOffice для разработки плагина Outlook. Этот плагин работает на моей локальной машине, когда (каким-то волшебным образом) развернутый через Visual Studio (если я запускаю проект, а затем открываю Outlook, функциональность есть). Все хорошо, пока здесь. Однако мне нужно развернуть его на компьютерах других людей (на которых не установлена VS), и я действительно изо всех сил пытаюсь найти способ, как это сделать.
Мой плагин выглядит так:
[COMAddin(Constants.ProjectName, "Tool", 3)]
[Guid("B3F60319-1A11-4F3E-9C1B-3AE908D9CA86"), ProgId("Tool.OutlookIntegration")]
public class OutlookIntegration : COMAddin
{
public OutlookIntegration()
{
this.OnStartupComplete += new OnStartupCompleteEventHandler(this.Integrate);
_settings = new Settings();
}
/* Integrate creates a menu item which does what I need. */
}
Тип проекта - библиотека. Теперь вопрос в том, как мне сделать так, чтобы кто-то запускал этот компьютер? Если вам случится узнать о каком-то учебнике или о чем-то подобном, пожалуйста, дайте мне знать. В Интернете есть ресурсы по разработке плагинов для Outlook, но они кажутся разными для NetOffice. Сам NetOffice имеет отличную документацию для разработки, но не для развертывания (я не нашел ее по крайней мере).
Я также рад предоставить любые дополнительные детали, необходимые.
2 ответа
Неважно, какие библиотеки используются для разработки надстроек Office. Процесс развертывания одинаков для всех надстроек COM. См. Раздел " Развертывание решения Office " в MSDN.
Для того, чтобы Outlook мог установить надстройку, единственное, что вам нужно сделать, это добавить несколько записей в реестре.
string runKey = "SOFTWARE\\Microsoft\\Office\\Outlook\\Addins";
RegistryKey startupKey = Registry.CurrentUser.OpenSubKey(runKey, true);
if (startupKey != null)
{
runKey="SOFTWARE\\Microsoft\\Office\\Outlook\\Addins\\yourAddinNameSpace.yourAddinClass";
startupKey = Registry.CurrentUser.OpenSubKey(runKey, true);
if (startupKey == null)
startupKey = Registry.CurrentUser.CreateSubKey(runKey);
startupKey.SetValue("Description", "yourAddinName", Microsoft.Win32.RegistryValueKind.String);
startupKey.SetValue("FriendlyName", "yourAddinName", Microsoft.Win32.RegistryValueKind.String);
startupKey.SetValue("LoadBehavior", 3, Microsoft.Win32.RegistryValueKind.DWord);
}
}
else
Console.WriteLine("Outlook is not installed");