一、创建Excel VSTO 外接程序的新项目
(一)新建解决方案和Excel VSTO 外接程序项目
创建一个Excel VSTO外接程序的新项目,选择“Excel VSTO外接程序(Visual Basic)”模板,命名为“外接程序安装”。VS将显示解决方案名称为“外接程序安装”,包含“外接程序安装”项目。
(二)设计Excel VSTO外接程序
主要是设计菜单项和代码。
1.在“外接程序安装”项目上,点击右键,选择“添加”——“类”,在“添加新项-外接程序安装”界面,选择“office/sharepoint”中的“功能区(可视化设计器)”,点击“添加”后默认建立“Ribbon1.vb”的模块。
2.依次右键点击“Group1”、“TabAddins(内置)”,均选择“ 删除”。
(1)点击左侧的“工具箱”,拖拽“Office 功能区控件”中的Tab按钮到“Ribbon1.vb[设计]”中,修改右侧属性的有关值,如Label改为“关于”等。
(2)再次点击左侧的“工具箱”,拖拽“Office 功能区控件”中的Group按钮到“Ribbon1.vb[设计]”的“关于”里面,修改右侧属性的有关值,如Label改为“帮助”等。
(3)点击左侧的“工具箱”,拖拽“Office 功能区控件”中的Group按钮到“Ribbon1.vb[设计]”中的帮助里面,修改右侧属性的有关值,如Label改为“版本”,ControlSize改为“RibbonControlSizeLarge”,OfficeImageId改为“Help”等。
3.双击“版本”图标,进入“Ribbon1.vb”的代码编辑界面,在Button1_Click的过程中,输入以下代码
MsgBox("version 1.0.0.0")
(三)设定Excel VSTO外接程序版本
1.点击右上角“解决方案资源管理器”界面图标栏的主页右侧的“在解决方案和可用视图之间切换”按钮,将切换到文件夹视图,在“外接程序安装\My Project”文件夹下,双击“AssemblyInfo.vb”文件。
2.在“AssemblyInfo.vb”代码编辑界面,将“<Assembly: AssemblyVersion("1.0.0.0")>”的版本号改为"1.0.*",在<Assembly: AssemblyFileVersion("1.0.0.0")>前添加注释符号“‘ ”,将此行注释掉。
3.再次点击“在解决方案和可用视图之间切换”按钮,双击“外接程序安装.sln”文件,恢复原始界面。
(四)生成Excel VSTO外接程序项目
1.将解决方案配置由Debug改为Release。
2.在“外接程序安装”项目上,点击右键,选择“属性”,在“外接程序安装”界面,选择“签名”中的“从文件选择”,选择提前编译好的证书文件,本例为“tsgazzb.pfx”,点击“打开”后显示“tsgazzb.pfx”证书的相关内容。
3.在“外接程序安装”项目上,点击右键,选择“生成”,将在此项目的输出目录内,生成一系列文件。
4.选择菜单栏的“全部保存”按钮,将本项目存盘。
二、建立安装包项目
(一)新建安装包项目
在解决方案“外接程序安装”上,点击右键,选择“添加”——“新建项目”,选择“Setup Project”模板,命名为“安装包”。
(二)连接Excel VSTO 外接程序项目
在“安装包”项目上,点击右键,选择“Add”——“项目输出”,在“添加项目输出组”界面,选择“项目”中的“主输出”,上方下拉菜单选择Excel VSTO 外接程序的项目名称“外接程序安装”,其他配置不变,点击确定。
(三)添加Excel VSTO外接程序的部署和应用清单的文件
在“安装包”项目上,点击右键,选择“Add”——“文件”,在“Add Files”界面,选择Excel VSTO 外接程序的项目“外接程序安装”文件夹的输出目录。
本例的具体目录如下:
D:\source\repos\外接程序安装\外接程序安装\bin\Release
选择部署文件“外接程序安装.vsto”和应用清单文件“外接程序安装.dll.manifest”,点击“打开”后将导入两个文件到“安装包”项目。
(四)排除Excel VSTO 外接程序的依赖项目
点开“安装包”项目的“Detected Dependencies”左侧的箭头,选择除“Microsoft .NET Framework”和任何以“*.Utilities.dll” 结尾的程序集以外的项目,一般情况下选择的数量是6个文件,点击右键,选择“排除”,被选中的文件左侧出现红色禁止图标。
(五)配置运行环境的必备组件
1.对于 Excel VSTO 外接程序项目,安装目标计算机必须满足必备组件的安装前置条件,然后才能正常运行外接程序:
(1)Microsoft .NET Framework:
安装目标计算机的.net Framework版本号高于解决方案要求的版本号的,将不安装该组件。
(2)Microsoft Visual Studio 2010 Tools for Office Runtime:
安装目标计算机的office版本为2013及以上的,将不按照该组件。
2.在“安装包”项目上,点击右键,选择“属性”。
(1)在“安装包属性”界面,点击“Prerequisiter”,在“系统必备”界面,勾选“创建用于安装系统必备组件的安装程序”。
(2)在“请选择要安装的系统必备组件”中,选择“Microsoft .NET Framework 4.*.*(x86和x64)”和“Microsoft Visual Studio 2010 Tools for Office Runtime(x86和x64)”。
(3)在“指定系统必备组件的安装位置”中,选择“从与我的应用程序相同的位置下载系统必备组件”,点击“确定”,退出相应界面。
(4)“安装包属性”界面,还可以修改msi安装包的名称。
(六)配置注册表项
Microsoft Office 使用注册表项查找外接程序。
1.在“安装包”项目上,点击右键,选择“View”——“注册表”,在“Registry(安装包)”界面,执行以下操作。
(1)依次删除以下两个注册表键:
HKEY_LOCAL_MACHINE\Software\[Manufacturer]
HKEY_CURRENT_USER\Software\[Manufacturer]
(2)在User/Machine Hive下面添加以下注册表键:
Software\Microsoft\Office\Excel\Addins\Tsga.ExcelAddIn
其中Tsga.ExcelAddIn可以替换成自己想显示的文字,也可以是中文,但必须是唯一值,不得和安装系统中已有的键值重复。
2.在上面新建的键下,添加四个值
(1)新建“字符串值”,名称为“Description”;新建“字符串值”,名称为“FriendlyName”;新建“DWORD值”,名称为“LoadBehavior”;新建“字符串值”,名称为“Manifest”。
(2)依次点击四个新建的键值,对应修改右下方“属性”界面中的“Value”内容:
Description:外接程序安装
FriendlyName:外接程序安装
LoadBehavior:3
Manifest:
file:///[TARGETDIR]外接程序安装.vsto|vstolocal
注意:外接程序安装.vsto,为Excel VSTO 外接程序的部署文件名称,如果错误,将无法安装成功。
(七) 配置启动条件
安装包将通过启动条件来判断安装目标计算机是否具备运行环境的必备组件,如果不具备将阻止外接程序的安装。
1.检测VSTO Runtime
(1)在“安装包”项目上,点击右键,选择“View”——“启动条件”,在“Launch Conditions(安装包)”界面,右键单击“Requirements on Target Machine”,然后单击“添加注册表启动条件”,将在“Search Target Machine”下方添加“Search for RegistryEntry1”项。
(2)点击“Search for RegistryEntry1”项,从右下角的属性界面中,按以下内容修改相关值
(Name):Search for VSTO 2010 Runtime
Property:VSTORUNTIMEREDIST
RegKey:SOFTWARE\Microsoft\VSTO Runtime Setup\v4R
Root:vsdrrHKLM
Value:Version
(3)点击“Condition1”项,从右下角的属性界面中,按以下内容修改相关值
(Name): Verify VSTO 2010 Runtime availability
Condition:VSTORUNTIMEREDIST>="10.0.30319"
InstallURL:空着不填
Message:The Visual Studio 2010 Tools for Office Runtime没有安装,请运行Setup.exe文件安装此插件。
2.检测Office安装的VSTO Runtime
(1)在“Launch Conditions(安装包)”界面,右键单击“Requirements on Target Machine”,然后单击“添加注册表启动条件”,将在“Search Target Machine”下方添加“Search for RegistryEntry1”项。
(2)点击“Search for RegistryEntry1”项,从右下角的属性界面中,按以下内容修改相关值
(Name): Search for Office VSTO Runtime
Property: OfficeRuntime
RegKey:SOFTWARE\Microsoft\VSTO Runtime Setup\v4
Root:vsdrrHKLM
Value:Version
(3)删除“Condition1”项,点击之前设置的“Verify VSTO 2010 Runtime availability”项,从右下角的属性界面中,将“Condition”项修改为以下内容:
VSTORUNTIMEREDIST >="10.0.30319" OR OFFICERUNTIME>="10.0.21022"
其他内容不变。
三、生成安装程序
(一)设定安装包版本
点击“安装包”项目,在下方的属性界面,按照以下要求修改相应值:
(1)Author:公司或组织名称,如河北省唐山市××局
(2)DetectNewerInstall:True
(3)Manufacturer:同Author,此项将作为programe file下面的安装文件夹名称
(4)ProductName:改成你想在安装界面显示的名称
(5)RemovePreviousVersions:True
(6)Version:首次一般为“1.0.0”,以后可修改“1.0.1”等,修改后出现的对话框,选择“是”。
(二)生成安装程序
1.在“安装包”项目上,点击右键,选择“生成”,将在此项目的输出目录内,生成一系列文件。解决方案有修改时,建议选择“重新生成”,可将所有项目全部生成。
2.选择菜单栏的“全部保存”按钮,将本项目存盘。
(三)运行安装程序
打开windows文件资源管理器,进入“\repos\外接程序安装\安装包\Release”文件夹,将所有文件拷贝到安装目标计算机,运行setup.exe文件进行安装。
(四)项目更新后生成安装包
1.VSTO外接程序项目更新
在“Ribbon1.vb[设计]”界面,双击“版本”图标,进入“Ribbon1.vb”的代码编辑界面,在Button1_Click的过程中,输入以下代码
MsgBox("version 1.0.1")
2.修改安装包版本
点击“安装包”项目,在下方的属性界面,将Version修改“1.0.1”等,修改后出现的对话框,选择“是”。
3.生成安装包
在“安装包”项目上,点击右键,选择“重新生成”,可将所有项目全部生成。