嘗試Office 2003 VSTO的開發、部署


背景:一年前,某項目需要使用到Excel進行數據錄入,考慮到很多用戶還是使用XP+Office 2003,所以開發的時候直接使用Excel 2003版本進行VBA開發。也許很多人都會說,Win10都出了,微軟的Office都要免費了,還用Office2003???但客戶是上帝!

大概開發過程:用戶直接打開一個Excel文件,Excel文件提示用戶登陸;登陸之后,看到待辦任務;選擇待辦任務,打開對應的Excel表單模板進行數據錄入;保存提交。以上操作,Excel里的VBA都會以服務器里的服務服務交互(廢話)。

問題來了,因為VBA是直接嵌入到Excel文件里的,只有一個項目的時候,維護更新起來還不是很麻煩,但是當其它項目也想使用此Excel程序,就頭痛了,總不能每個項目一套VBA代碼吧。。。

Why not VSTO (Visual Studio Tools for Office) ?

VSTO的受眾是“專業開發者”,可以理解為靠它賺錢,如果是處理日常工作中的問題vba更合適。OK,我們好歹也是“專業開發者”,那試試用VSTO吧。

相信很多人都跟我一樣,開發機裝的都是Win7+、VS2012+、Office2010+。

1、VS2012和Office2010環境

沒有猶豫的,我首先是嘗試直接在VS2012和Office2010下進行Excel2003 VSTO 的開發。新建 - Office - Excel2010工作薄 - 確定,在向導頁面,下拉選項里確實也可以看到97-2003選項。選擇03格式后,生成、F5都沒有問題。

接下來,簡單制作了個安裝包。在開發機安裝,成功運行!關鍵的是,把安裝包拿到虛擬機(xp、office2003),運行時提示未能加載公共語言運行庫,相關的Net Framework是已經安裝了的!P.S:如果不是用安裝包部署,直接拷VS Bin目錄下的文件到虛擬機,會提示未能找到addin元素。

上面這個問題糾結了一陣之后,才終於意識到VS2010以上的版本是已經不支持Office 2003 的VSTO了。

 

2、VS2005和Office2003環境

重新開了個虛擬機,然后從網上下載了個VS2005的中文版(雖然說“過時”了,但網上還是有一大堆下載的)。然后再下載Office2003完整版。看到園子這篇文章說VS和Office的安裝先后順序,我還是特意先安裝Office的。

把VS2005的SP1也打上了。

來看看VS2005令人念舊的界面。

 

在VS2005,新建Office項目時,默認只有那么幾個選項,如下圖所示。

 

生成、調試什么的,一切都還正常。然后准備部署。嗯,對了,貼上經典的兩篇MSDN文章的鏈接。

Deploying Visual Studio 2005 Tools for Office Solutions Using Windows Installer (Part 1 of 2)

Deploying Visual Studio 2005 Tools for Office Solutions Using Windows Installer: Walkthroughs (Part 2 of 2)

 

第一眼看上去,還真的是“長篇大論”,滿眼的E文,看到頭都有點痛,一目十行地看了一下,然后動手新建VS Setup Project。

在添加Prerequisites(系統必備)時,發現列表里打不到Office runtime和Office tools。好吧,又是百度(基本上沒有找到有用的),又是谷歌,還把Office重裝了,Vs修復了,那幾個東西依舊躲貓貓。

 

山窮水盡疑無路的時候,重新看回Deploying Visual Studio 2005 Tools for Office Solutions Using Windows Installer (Part 1 of 2)。耐心地看下去,驀然發現:“

Adding the Visual Studio 2005 Tools for Office Packages to the Bootstrapper

The following instructions describe how to add the packages listed above to the bootstrapper package directory. These changes need only be made once and only on the development computer.

For this task, you must have the files that are available in the Windows Installer that accompanies this article. You must prepare the files before you copy them into the bootstrapper package directory.

Preparing the Office Application and Office Primary Interop Assemblies Checks

You must compile the Office application and primary interop assembly checker program samples.

......”

暈啊,不是所有的教程貼都是有圖有真相的。如何添加Office包到安裝啟動器的步驟被我忽略了!下面對原文的操作步驟簡單的用自己話翻譯下來。

 ①安裝.NET Framework 2.0 software development kit (SDK) and the Windows Platform SDK (在線安裝鏈接)

這些默認是沒有和vstor一起安裝的,需要自己去微軟下載中心下載安裝。后者在線安裝時間比較長,需要耐心等待。建議直接下載硬盤版本,本地完全安裝

如果用的是 Microsoft Visual Studio Team System,則這些不是必需的。

 

②編譯檢查程序

原文有提供一個代碼示例和部署工具的集合安裝包,需要下載並安裝,然后在

C:\Program Files\Microsoft Visual Studio 2005 Tools for Office Resources\VSTO2005 Windows Installer Sample

可以看到相關的文件,簡稱此目錄為{SamplesDir}。

打開VS2005命令提示,cd到{SamplesDir}\projects\Checks目錄。

先后輸入以下命令:

cl.exe -I "C:\Program Files\Microsoft Platform SDK\Include" /Oxs /MT /GS AppCheck.cpp  

此時可以看到目錄下面多出了幾個文件
 
         
cl.exe -I "C:\Program Files\Microsoft Platform SDK\Include" /Oxs /MT /GS PIACheck.cpp "C:\Program Files\Microsoft Platform SDK\Lib\advapi32.lib"

如果沒有成功安裝 the Windows Platform SDK,會提示無法打開輸入文件哦。 然后把生成的PIACheck.exe 復制到{SamplesDir}\packages\Office2003PIA.
 
③准備Office 2003 primary interop assemblies(交互程序集)
下載並解壓 Office 2003 Update: Redistributable Primary Interop Assemblies ,然后把解壓得到的O2003PIA.msi 復制到{SamplesDir}\packages\Office2003PIA文件夾。

④准備Visual Studio 2005 Tools for Office Runtime(運行時)
下載 ,把vstor.exe 復制到{SamplesDir}\packages\VSTORuntime文件夾

⑤准備Visual Studio Tools for Office Language Pack (語言包)
下載,把 vstolp20.exe 復制到 {SamplesDir}\packages\VSTOLP文件夾

⑥把打包信息目錄拷貝到啟動加載器目錄
原文是這樣說的
In Visual Studio 2005 Tools for Office, the default directory is here:
C:\Program Files\Microsoft.NET\SDK\v2.0\BootStrapper\Packages\
In Visual Studio Team System, the default directory is here:
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages
我的是VS2005 SE、Windows Server 2003,找不到第一個路徑,就只好把它拷到第二個目錄了。
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages

 

 到此,算是告了一個基本段落,重新打開VS2005,可以看到在系統必備里,那幾個東東是終於跑出來了!

 

 

 
         
 
 




 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM