2010-06-30 2 views
1

У меня возникает странная проблема. Я разрабатываю приложение Outlook 2007 с помощью Visual Studio 2010 с VSTO 3.0 и развертывается с помощью ClickOnce.Любая идея о DependentPlatformMissingException Microsoft.Vbe.Interop.Forms Версия 11.0.0.0

Я бы хотел проверить, есть ли какие-либо обновления и если да, попросите пользователя перезапустить Outlook.

Однако, если я позвоню ApplicationDeployment.CheckForDetailedUpdate или ApplicationDeployment.CheckForUpdate я получаю следующее исключение:

DependentPlatformMissingException:

Не удается установить или запустить приложение. Приложение требует, чтобы сначала была установлена ​​сборка Microsoft.Vbe.Interop.Forms версии 11.0.0.0 в глобальном кэше сборок (GAC).

Это происходит как на моей машине dev, так и на удаленной машине.

Вот что я пытался до сих пор не имели успеха: - неустановленного и переустанавливать Office 2007 PIAs - Добавлены Microsoft.Vbe.Interop.Forms v 11.0.0.0 (файл версии 12. *) в качестве ссылки на мой project - Проверено, что dll с правильной версией находится в моем GAC

Я не знаю, почему это исключение происходит. Надеюсь, ты поможешь.

Обновление Я только что пробовал этот новый проект VS 2010. Вот мой дополнительный файл

Если в моем каркасе установлен .net 4, он отлично работает. Если для моей рамки установлено значение .net 3.5, я получаю то же исключение и ошибку.

имен TestOutlookAddIn2 { общественный частичный класс ThisAddIn { частное аннулируются ThisAddIn_Startup (объект отправителя, System.EventArgs е) { MessageBox.Show ("Я в");

 if (ApplicationDeployment.IsNetworkDeployed) 
     { 
      var info = ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate(); 
     } 
    } 

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e) 
    { 
    } 

    #region VSTO generated code 

    /// <summary> 
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor. 
    /// </summary> 
    private void InternalStartup() 
    { 
     this.Startup += new System.EventHandler(ThisAddIn_Startup); 
     this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); 
    } 

    #endregion 
} 

}

ответ

0

Если цель .NET 4, он не требует ПОО, он встраивает только биты, необходимые.

Действительно ли вы развертываете среду VSTO 3 от VS2010? Или вы развертываете VSTO 4 (он поставляется с VS2010)?

+0

Я считаю, что это VSTO 3, так как это решение .net 3.5 для Outlook 2007 Как я могу дважды проверить? – mat3

+0

Если вы разрабатываете Visual Studio 2010, если только вы не переместили VSTO 3 Runtime с VS2008 на VS2010, это VSTO 4. Runtime отлично работает для .NET 3.5 VS2007 add- (я должен был знать, я написал один.) Чтобы сказать наверняка, нажмите кнопку Предварительные требования на панели публикации и посмотрите, что выбрано. Вы должны выбрать VSTO 4 Runtime и PIA 2007 года. – RobinDotNet

+0

Привет, Робин, У меня есть VSTO 4 Runtime selected и 2007 PIA и по-прежнему имеют ту же проблему. В отчаянии я выбрал все предпосылки, но не повезло, все еще получая ту же ошибку. Можете ли вы попробовать этот образец проекта, который воспроизводит эту проблему для меня и выясняет, есть ли у вас такая же ошибка? У меня закончились символы в комментариях, поэтому я положу ссылку в следующий комментарий – mat3

0

Кажется, вам нужно настроить таргетинг на .net framework 4 при использовании vs2010. Я обновился до vs2010, но оставил целевой проект .net3.5. Это вызвало вышеупомянутую проблему. Я только решить ее, возвращаясь назад к VS2008 :(

См this (duplicate question) on msdn social, что есть ответы от замковой однократный развертывания MVP относительно этого вопроса.