Могу ли я избежать перезапуска Outlook как части цикла изменения / тестирования для моей надстройки VSTO? - PullRequest
2 голосов
/ 20 января 2012

Мы разрабатываем небольшой плагин для Outlook с использованием VS2010 / VSTO.

Это новая вещь для нас, поэтому мы задаемся вопросом, что возможно, а что невозможно в плагине Outlook по сравнению с нашими более знакомыми вещами Winforms. Поэтому мы вносим небольшие изменения по частям и часто проверяем их, запустив в Outlook.

На данный момент наш цикл изменений / испытаний работает следующим образом:

  1. В Visual Studio IDE можно добавлять, изменять, исправлять или расширять код каким-либо небольшим образом
  2. F5
  3. Дин! Предупреждение о том, что Outlook уже запущен. Потерять жизнь .
  4. Закрыть Outlook
  5. F5
  6. Outlook запускается, проверьте изменения

Перезапуск Outlook делает его таким медленным.

Есть ли способ отладки без перезапуска Outlook? Или что было бы еще лучше , есть ли способ отладки и продолжения?

Если нет, то можем ли мы что-нибудь сделать, чтобы этот бит dev стал более плавным и быстрым?

Ответы [ 2 ]

2 голосов
/ 31 января 2012

Насколько я знаю, вы не можете вносить изменения в код и продолжать отладку. Вам необходимо перезагрузить Outlook, чтобы он загружался в новую DLL. Вы всегда можете написать свой собственный код, который отслеживает конкретную DLL и загружает ее в режиме реального времени, например,

Assembly assembly = Assembly.LoadFrom("dllPath");
AppDomain.CurrentDomain.Load(assembly.GetName());
Type t = assembly.GetType("typeName");

Затем вы можете работать с вашей DLL, изменять код и перезагружать его с работающим outlook. Вероятно, больше хлопот, чем стоит.

Outlook 2007 очень быстро запускается на моей машине (но у меня есть мощная машина i5) - буквально через 2 секунды он открывается. Если ваш Outlook действительно медленно запускается, попробуйте сделать следующее:

  • Удалите все остальные надстройки, которые вы установили в Outlook.
  • Возможно ли, что вы можете отсоединиться от своего текущего почтового ящика и иметь только автономный?
  • Отсоединение от всех других ваших почтовых ящиков
  • Установите на свою машину больше памяти, чтобы все кэшировалось (дешевый вариант, в наши дни память очень дешевая)
  • Закройте все другие приложения на вашем компьютере
  • Настройте свой почтовый ящик так, чтобы он был практически пустым

Сам Outlook загружается? (Например, чтобы исходный экран-заставка исчез). Или он пыхтит после открытия?

0 голосов
/ 01 февраля 2012

Насколько я знаю, мы не можем отлаживать внешний вид, пока он уже запущен.Поскольку он не может загружать наши новые DLL до тех пор, пока вы не перезапустите его.

Как сказал LachlanB, мы можем использовать AppDomains для динамической загрузки DLL и заставить ее работать с Outlook.Безусловно, это будет работать, но мы берем на себя управление загрузкой DLL нашего приложения в процесс Outlook. Для этого может потребоваться дополнительная работа над частью дизайна и кодирования.Обычно это задача Outlook - загружать надстройки DLL.

Мое предложение состоит в том, чтобы просто не изменять дизайн и код приложения для включения отладки.Это не лучшая практика.Вместо этого сконцентрируйтесь на том, почему ваш Outlook загружается очень медленно?

Вы можете попробовать второе предложение LachlanB по настройке Outlook для быстрой загрузки.используйте эти шаги, чтобы очистить ваш кругозор.Вы также можете попробовать обсуждение на форумах MSDN http://social.technet.microsoft.com/Forums/en-US/exchangesvrclients/thread/a117fa73-8f19-4716-9603-eb756b609cd5

...