2014-10-20 5 views
0

Как я могу создать общий установщик для офиса 2007/2010 и 2013?Обычный установщик для Office Addin для 2007 2010 и 2013

Есть разница в csproj файлов (Существуют различные пакеты хост-идентификаторы)

Каков наилучший способ построить общую надстройку, которая будет работать на всех хозяев Addins?

Я пробовал следующие - Я создал приложение addin для 2007 в Visual studio 2010. Я смог построить установщик, используя проект установки (msi) в VS2010. Он отлично работал с Outlook 2007 и 2010. (Сделал изменения реестра/настройки файлов).

Эта ссылка была полезна: http://msdn.microsoft.com/en-us/vsto/ff937654.aspx

Установка с Нажмите один раз пригодился. Так как были некоторые дополнительные файлы, которые я должен был включить. Таким образом, выбранные пользовательские установщики.

Теперь следующим шагом было 2013. Я использовал тот же установщик в 2013 году. Он сработает. Я получаю исключение, указывающее переполнение стека.

Примечание: Я разработал приложение с помощью Visual Studio 2010 для Outlook 2007 и 2010 надстройке с использованием C#

+0

Показать работу.Что вы нашли до сих пор? Какие решения предложили другие? –

+0

Обновлено мое оригинальное сообщение. –

ответ

1

На самом деле, вы задали два вопроса в одном! вот ответы:
Как я могу создать общий установщик для офиса 2007/2010 и 2013?
Это не проблема, нет необходимости устанавливать разные инсталляторы для каждой версии офиса (за исключением x86 10 x64 офисной биты, если вы делаете настройку для каждой машины). Если вы используете определенные функции для каждой версии офиса, вы можете проверить в своем дополнении код версии офиса с помощью Application.Version.
Каков наилучший способ создать общее дополнение, которое будет работать на всех хостах Addins? Я думаю, вы имеете в виду: что является лучшим способом ... все хосты Office? Вы можете сделать это 2 способами:

  • Используя коммерческий продукт Addin Express или,
  • Создавая общие надстройки (к сожалению, снизилось с VS 2012), однако вы все еще быть в состоянии создайте его вручную, создав проект библиотеки класса , после его создания добавьте класс, который внедряет интерфейс Extensibility.IDTExtensibility2, если вы планируете использовать ленты поддержки в своем добавлении, а затем реализуйте также и IRibbonExtensibility . Также добавьте ссылки на Office.dll и Extensibility.dll. в конце концов, вы должны иметь что-то похожее на это:

    [GuidAttribute ("1AF54C8F-6E33-44DE-9B4A-FF3801A51104"), ProgId ("MyAddin.Connect")]

    public class Connect : Object, Extensibility.IDTExtensibility2, IRibbonExtensibility 
        { 
         private object applicationObject; 
         private object addInInstance; 
    
         public Connect() 
         { 
    
         } 
    
         public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) 
         { 
          applicationObject = application; 
          addInInstance = addInInst; 
         } 
    
         public void OnDisconnection(Extensibility.ext_DisconnectMode disconnectMode, ref System.Array custom) 
         { 
         } 
    
         public void OnAddInsUpdate(ref System.Array custom) 
         { 
         } 
    
         public void OnStartupComplete(ref System.Array custom) 
         { 
         } 
    
         public void OnBeginShutdown(ref System.Array custom) 
         { 
         } 
    
         public string GetCustomUI(string RibbonID) 
         { 
          StreamReader customUIReader = new System.IO.StreamReader(
          @"APP\PATH\Ribbon.xml"); 
    
          return customUIReader.ReadToEnd(); 
         } 
    
         public void onMsoCommand(Office.IRibbonControl control, ref bool Cancel) 
         { 
    
         } 
        } 
    

BTW, это мой первый answser здесь, на SO, надеюсь, что это поможет!

+0

Спасибо, Реда. Я не могу использовать AddIn Express. Невозможно иметь зависимость от любого третьего лица. Я попробую подход, который вы упомянули, и поместите мою обратную связь здесь. –

+0

hi Reda, можете ли вы подробно рассказать о первой части своего ответа или отправить некоторые лимксы для получения дополнительной информации? Я пытаюсь создать установочный пакет для слова addin (файл .dotm) и поместить его в правильное место для запуска для офиса 2013 года, но не имея большого успеха. любые указатели были бы замечательными. –

Смежные вопросы