2012-09-12 88 views
0

我開發了一個使用Visual Studio 2010並將目標框架作爲4.0客戶端配置文件的Excel加載項。 插件可以在我的機器上正常工作,現在我想運送客戶機器。 我在我的網站託管我的添加,以便它可以直接從那裏下載。使用.net 2.0在客戶端中使用vsto .net 4.0部署Excel加載項

我面臨的問題是,在客戶機的插件安裝正常,但不加載。當我選擇「選項」菜單中的「添加」部分時,選擇我的COM加載項後,我發現加載行爲表示爲:

加載行爲:未加載。加載COM加載項期間發生運行時錯誤。

這裏我最好的猜測是,因爲我使用.Net 4.0客戶端配置文件開發了我的插件,我使用的所有.Net引用都是來自版本4.0的引用,並且它在客戶端嘗試找到.NET 4.0程序集,但無法找到它們,因爲我的客戶端具有.Net 2.0,因此它不加載加載項。

但我想將它部署在.Net framework 2.0及更高版本的客戶端上,而無需安裝.Net客戶端配置文件4.0。

如果有人知道如何解決這個問題,請幫助我。

回答

2

我認爲你從VS2010運氣不佳,但你應該能夠在.NET 2上部署一個Excel加載項。0機器使用Visual Studio 2008中的模板,我非常確定該選項可用,因此一種選擇是將解決方案移植到VS2008及其「較舊」的VSTO項目類型之一中。這並不好玩,但應該解決問題。

這取決於你的附加功能,但另一個考慮是考慮開放源代碼/免費ExcelDNA,它提供了一種很好的方式在XLL和.NET之間創建橋樑,從而實現輕鬆調用。 NET dll。

我自己並沒有使用它,但NetOffice也可能是一些東西來看看。

+0

是的,目前正在研究Excel-DNA,但是由於缺乏文檔而緩慢。正如你所說的將整個開發移到VS 2008中是一個好主意,但我擔心我的加載項是否能在2013年運行。但無論如何,由於你的回答,我正在就這個話題得出一些明確的結論。我會在一週內嘗試就這個問題發表一些具體的結論。 – SutharMonil

+0

祝你好運 - 回到2008年,.NET 2.0不是一個有趣的選擇(沒有LINQ,沒有可選參數...) – Mathias

1

就我所知,您無法使用Visual Studio 2010開發VSTO Excel加載項目標.Net 2.0。

如果您在新建項目點擊Visual Studio 2010的開始屏幕上,目標框架下拉列表更改爲.NET Framework 2.0和瀏覽Office => 2007Office => 2010你會看到兩個「沒有找到的項目」。

如果您創建Office插件(在VS 2012或4.5)目標的.Net 3.5或4.0,並嘗試在項目屬性窗口中的事實,後更改目標框架,您會收到以下錯誤:

Error

如果要使用此功能,您需要在客戶端計算機上安裝.Net Framework 4。每個Windows操作系統> = XP支持.Net 4,所以這不應該太成問題!

+0

感謝您的快速響應。我覺得它不允許定位2.0,因爲它沒有相應的.net 2.0可用的interop。此外,.NET 4.0項目允許您將程序集嵌入到項目設置中,所以我這樣做是爲了移除對.net framework 2.0的依賴。 和我從.Net框架中使用的其他程序集在​​.Net 2.0中也有 – SutharMonil

+0

好吧,我認爲你的主要問題是你的應用程序是一個Excel加載項。您可能可以使用Windows Form或控制檯應用程序來定位.Net 2.0並移植大部分代碼,並且通過Interop完成您希望在2.0上正常工作的所有內容,但是您的應用程序不會是Excel附加組件,它會坐在外面,看起來不那麼整潔,但如果你不能在客戶端機器上安裝4.0,那就是我會做的! – JMK

+0

在.Net 2.0中創建一個Windows窗體或控制檯應用程序不會在這裏幫助,因爲我想在Excel中表示數據並使用它的對象結構來玩弄我們使用HTML的DOM ...... – SutharMonil

0

我會確保在項目的先決條件中選擇.NET 4.0 Framework。這樣做將允許用戶在安裝加載項的過程中下載/安裝您定位的.NET Framework。

你找到

project properties -> Build -> Prerequisites

此設置這樣做有幾個好處:

  • 您將不會收到客戶的電話是說「你的外接不斷崩潰」,因爲他們要麼安裝。 NET 4.0連同你的加載項,否則他們根本不會安裝加載項。
  • 加載加載項後,您確定您所定位的.NET框架安裝在最終用戶計算機上。
+0

這就是我所說的,我不想在我的客戶機上安裝.Net 4.0。我確保所使用的所有程序集引用都可以在.Net 2.0中使用,並且在將目標框架設置爲4.0後,我將其添加到我的客戶端計算機上,然後在我的VS 2010中構建它。 Net 2.0不支持VSTO開發。 – SutharMonil

相關問題