我遇到了一個奇怪的問題。我正在開發使用Visual Studio 2010和VSTO 3.0的Outlook 2007插件,並使用ClickOnce進行部署。關於DependentPlatformMissingException的任何想法Microsoft.Vbe.Interop.Forms版本11.0.0.0
我想檢查是否有更新,如果是的話提示用戶重新啓動Outlook。
但是,如果我叫ApplicationDeployment.CheckForDetailedUpdate或ApplicationDeployment.CheckForUpdate我得到以下異常:
DependentPlatformMissingException:
無法安裝或運行應用程序。該應用程序需要首先在全局程序集緩存(GAC)中安裝程序集Microsoft.Vbe.Interop.Forms版本11.0.0.0。
這發生在我的開發機器和遠程機器上。
這裏就是我沒有成功到目前爲止已經試過: - 卸載並重新安裝Office 2007的PIA的 - 增加Microsoft.Vbe.Interop.Forms v 11.0.0.0(文件版本12. *)作爲一個參考我的項目 - 已驗證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
}
}
我相信這是VSTO 3,因爲這是Outlook 2007中的.NET 3.5解決方案。如何進行雙重檢查? – mat3 2010-06-30 08:45:00
如果您使用Visual Studio 2010進行開發,除非您專門將VSTO 3 Runtime從VS2008移到VS2010,否則它是VSTO 4 Runtime。對於.NET 3.5 VS2007插件, (我應該知道,我寫了一個) 爲了確定,點擊發布面板中的先決條件按鈕,看看選擇了什麼,你應該選擇VSTO 4 Runtime,以及2007 PIA。 – RobinDotNet 2010-07-02 02:18:46
Hi Robin, 我選擇了VSTO 4 Runtime和2007 PIA,但仍然存在相同的問題。在絕望中,我選擇了所有的先決條件,但沒有運氣,仍然得到相同的錯誤。 你可以嘗試這個示例項目,爲我解決這個問題,看看你是否得到相同的錯誤?我在這個評論中已經用完了字符,所以我會把鏈接放在下一個評論 – mat3 2010-07-02 05:50:30