2010-01-17 70 views
11

推動利用visual studio和dotnet以Office爲基礎的解決方案,特別是Excel,最好的文章或信息是關於如何讓具有額外二進制文件和程序集的辦公用紙可共享。關於如何部署和共享VSTO解決方案的最佳內容

  1. 做這個外部代碼得到包裝與電子表格
  2. 如果人們開始圍繞通過電子郵件發送電子表格。這個額外的程序集是否有任何開銷?是否存在將二進制文件從電子表格中分離出來的風險

看起來好像是microsoft has been pushing VSTO for over 5 years now但您閱讀了許多複雜的評論和問題。我們是否在那些做大型VBA excel解決方案的公司可以完全遷移到dotnet而沒有任何實際的擔憂?

+0

好問題!我真的很想回答這個問題...... – RBarryYoung 2010-01-17 13:29:58

+0

程序集未附加到工作簿中。工作簿和程序集必須部署。另外,您必須在安裝工作簿/程序集時創建「代碼訪問安全策略」。運行VSTO項目時,Visual Studio會自動設置安全策略。 – AMissico 2010-01-19 20:38:54

+0

如果公司不共享他們的VBA Excel解決方案並且只能在內部使用,那麼繼續開發VBA就沒有意義了。所有新的發展應該是VSTO。我們兩年前開始這樣做。外部交付物是VBA,內部VSTO。 – AMissico 2010-01-19 20:40:51

回答

21

首先,我想回答你的問題,VSTO是否適合大型實現。答案是肯定的!特別是如果替代方案是VBA。您可以使用整個.Net框架,您可以使用Web服務,ADO.Net(更好的方法是使用企業庫)。您仍然可以編寫看起來很像VBA的代碼,但功能更強大。您可以通過閱讀Walkthrough: Creating Your First Document-Level Customization for Excel獲取更多信息。 This page會給你一個VSTO功能可用的概念。

現在,回答你的部署問題。

這取決於您是在製作加載項還是在文檔級定製。如果它是一個加載項,那麼你必須將它安裝在每個客戶端上,並且任何文件傳遞都不會影響(加載項處於應用程序級別,而不是單個文檔級別)。

我假設你正在談論文檔級別的自定義,所以我會圍繞這個問題回答我的答案。

當您創建文檔級別自定義時,程序集不會加載到Excel文件中(與使用VBA一樣)。相反,會添加一個文檔屬性,告訴應用程序該文檔包含清單文件(並將清單文件的位置告訴它)。清單文件包含組成自定義的程序集的鏈接。

與任何.Net應用程序一樣,有時還需要部署其他(引用的)程序集。這些程序集並不總是在GAC中,所以它們必須位於與執行程序集相同的文件夾中(在本例中爲您的定製程序集)。不過,您不一定必須將您的程序集放在與您的excel文件相同的位置。

有幾種方法可以deploy the customization

  1. 您可以將所有的組件和文件夾中的Excel文件和運行方式(如果Excel文件傳來傳去,用戶必須通過周圍的整個文件夾)中的應用。
  2. 您可以運行一個安裝程序,將程序集安裝到用戶計算機上的特定文件夾中,並在該位置指定清單(如果傳遞excel文件,用戶還必須傳遞安裝程序)。
  3. 您可以install the assemblies in a network location並在文檔屬性中指定清單和程序集都在該網絡位置(如果傳遞的是excel文件,則不需要傳遞任何內容 - 但需要安全設置欲瞭解更多信息,請閱讀this page)。

您決定這樣做的任何方式,here is the page您需要閱讀以瞭解啓用定製的文檔屬性。

您需要確保您的所有用戶都已安裝先決條件。最簡單的方法是給他們一個安裝程序。如果您爲自定義創建安裝項目,則可以設置引導程序以自動安裝必備軟件。如果您使用ClickOnce安裝定製,也可以執行此操作。 This page將爲您提供有關部署所需的全部信息。

這裏有你需要看到一些其他有用的鏈接:

我希望這有助於。一旦你閱讀了所有這些信息,我認爲你會同意VSTO是比VBA更好的選擇。您只需仔細規劃您的部署。

+1

我以爲你可能會也受益於這2個環節。 1)http://msdn.microsoft.com/en-us/magazine/cc163373.aspx#S4和2)http://www.craigbailey.net/vsto-vba-and-vsto/ – 2010-03-01 16:21:10

0

我創建了Excel插件並將其部署到服務器。然後我傳遞了兩個鏈接,setup.exe文件和實際工作簿的鏈接。工作簿文件從未更改 - 目的是打開並加載當前在用戶的添加/刪除程序中的加載項。加載項本身會在啓動時檢查更新。

因此,如果他們開始通過電子郵件發送工作簿,太棒了!我相信在理論上,如果缺失,工作簿會下載附件,但我沒有新的計算機來測試它。如果沒有,它只是一個簡單的exe安裝(無論如何將在啓動時更新,所以過時不是問題)。

0

對於文檔級部署,我推薦以下三個環節:

  1. https://msdn.microsoft.com/en-us/library/ms268758(v=vs.90).aspx

  2. https://msdn.microsoft.com/en-us/library/ff937654.aspx

  3. How do you assign the Assembly Location of an Excel VSTO Installation?

與應用級解決方案中,文檔級別具有2個特殊屬性:_AssemblyLocation和_AssemblyName,它們指示* .vsto位置。要通過安裝路徑設置這些屬性,應該創建一個自定義操作項目,以便在安裝時記錄目標路徑,並與setup.exe一起打包。然後你可以把你的excel文件放在任何地方(在本地機器上)並以正確的方式打開它。