尝试Office 2003 VSTO的开发、部署
转载:http://www.cnblogs.com/oneivan/p/4243574.html
背景:一年前,某项目需要使用到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)
第一眼看上去,还真的是“长篇大论”,满眼的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,可以看到在系统必备里,那几个东东是终于跑出来了!

尝试Office 2003 VSTO的开发、部署的更多相关文章
- 三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO
当 Office 用户需要针对文档自定义新功能时,可以求助于 VBA 或者 VSTO 两种方式.Office 2013 富客户端以后,微软为 Office 平台上的开发者提供了一种新模型 --- Of ...
- VSTO 学习笔记(十三)谈谈VSTO项目的部署
原文:VSTO 学习笔记(十三)谈谈VSTO项目的部署 一般客户计算机专业水平不高,但是有一些Office水平相当了得,尤其对Excel的操作非常熟练.因此如果能将产品的一些功能集成在Office中, ...
- 深入理解vsto,开发word插件的利器
开发了vsto,客户那边也有一些反映插件安装失败或者加载不上的情况.于是我下定决定再理解下vsto的工作机制,如下图: 如上图所示,我把vsto的解决方案分为两部分,一部分是vsto Add-ins, ...
- 初识VSTO Addin开发
这篇博客将简单介绍一些VSTO Addin开发的知识. 1. VSTO是什么?我们可以用VSTO做什么? VSTO全称Visual Studio Tool for Office,是可以让我们针对现有的 ...
- 接触vsto,开发word插件的利器
研究word插件有一段时间了,现在该是总结的时候了. 首先咱们来了解下什么是vsto?所谓vsto,就是vs面向office提供的一个开发平台.一个开发平台至少包含两个要素:开发工具(sdk)和运行环 ...
- 让开发部署提速 8 倍,我参与贡献这款 IDE 插件的全过程
如何像参与开源那样,去参与一款 IDE 插件的设计? 作为一款 IDE 插件的使用者,我是否能决定下一个版本的功能? 自从产品经理银时小伙和他的开发小哥们在去年12月发布 Cloud Toolkit( ...
- 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:公众号后台系统和数据都基本准备妥当了,可以来分享下我是如何开发本微信公众号的后台系统了 ...
- office 2003和office 2013同时安装使用的问题
电脑上同时安装了Office 2003和Office 2007/2010,先打开Word 2003,然后再打开Word 2010,总会弹出安装配置界面,反之亦然. 解决方法:使用快捷键Win+R打开 ...
- 开发部署一个简单的Servlet
Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...
随机推荐
- ubuntu apache2 .htaccess 下配置 反向代理
安装完apache2后, a2enmod rewrite //启用.htaccess规则 a2enmod proxy a2enmod proxy_http //启用反向代理支持 [P] 配置OK,就可 ...
- ActiveMQ安装及使用
1 安装环境 1.需要jdk2.安装Linux系统.生产环境都是Linux系统. 2 安装步骤 第一步: 把ActiveMQ 的压缩包上传到Linux系统.第二步:解压缩. 第三步:关闭防火墙 临时关 ...
- JavaScript -- 定义二维数组
方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],["1-1"," ...
- 有线mac 无线MAC 地址&&telnet要先开服务: ipconfig /all getma
在向IEEE申请到Mac address后,写到Lan设备里,就是Lan Mac,写到Wlan设备里,就是wlan Mac,写到BT设备里,就是BT Mac. MAC(Media Access Con ...
- jdbc报java.lang.ClassNotFoundException: com.mysql.jdbc.Drive
今天从开始写了一个jdbc连接mysql驱动的程序 真的是各种报错啊 首先这是代码 package com.dmeck; import java.sql.Connection; import java ...
- jQueryEasyUI 学习笔记
jQuery EasyUI是什么? jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开 ...
- C#、OC递归锁
做ios也有1年了,C#的东西有些都忘记了,最近几天也打算重温一下,不能学了ios把C#给抛弃了,两者都要抓,一精多专.目前C#只是重温,重点是web这块.今天主要是想起了之前做过的面试题,虽然题比较 ...
- mysql备份 小结 (三种方式的详细解读)
备份的本质就是将数据集另存一个副本,但是原数据会不停的发生变化,所以利用备份只能回复到数据变化之前的数据.那变化之后的呢?所以制定一个好的备份策略很重要 新建一个all.sqlvim all.sql在 ...
- zabbix与nagios八项重要对比 结论根据业务环境需求决定
1.web功能: Nagios简单直观,报警与数据都在同一页面,***.红色即为问题项.Nagios web端不要做任何配置. Zabbix监控数据与报警是分开的,查看问题项需要看触发器,查看数据在最 ...
- SSIS教程:创建简单的ETL包 -- 5. 添加包部署模型的包配置(Adding Package Configurations for the Package Deployment Model)
包配置允许您从开发环境的外部设置运行时属性和变量. 配置允许您开发灵活且易于部署和分发的包.Microsoft Integration Services 提供了以下配置类型: XML 配置文件 环境变 ...