创建 VSTO 工作簿的 ClickOnce 安装包

您所在的位置:网站首页 系统自动创建工作簿名称为 创建 VSTO 工作簿的 ClickOnce 安装包

创建 VSTO 工作簿的 ClickOnce 安装包

2024-06-22 07:32| 来源: 网络整理| 查看: 265

准备工作

事先创建一个Excel文件命名为“演示文档.xlsm”的,以实现通过运行名称为“演示”的宏,将A1单元格的内容复制到A2单元格中。

1.在“sheet1”的A1单元格输入“1.0.0.0”,作为excel文件的版本号。

2.通过开发工具中的Visual Basic,为工作簿添加模块,输入以下代码,建立宏

Sub 演示()     Range("A2") = Range("A1") End Sub

3.文档另存为“演示文档.xlsm”。

一、创建Excel VSTO工作簿的新项目

(一)新建解决方案和Excel VSTO 工作簿项目

1.创建一个Excel VSTO工作簿的新项目,选择“Excel VSTO外接程序(Visual Basic)”模板,命名为“Excel工作簿”。VS将显示解决方案名称为“ClickOnce-工作簿”,包含“Excel工作簿”项目。

2.在“为应用程序选择文档”界面,选择“复制现有文档”,选择事先设计好的“演示文档.xlsm”,注意选择文档类型对话框为“启用宏的Excel工作簿(*.xlsm)”格式。

(二)设计Excel VSTO工作簿

主要是设计菜单项和代码。

1.在“Excel工作簿”项目上,点击右键,选择“添加”——“类”,在“添加新项- Excel工作簿”界面,选择“office/sharepoint”中的“功能区(可视化设计器)”,点击“添加”后默认建立“Ribbon1.vb”的模块。

2.依次右键点击“Group1”、“TabAddins(内置)”,均选择“ 删除”。

(1)点击左侧的“工具箱”,拖拽“Office 功能区控件”中的Tab按钮到“Ribbon1.vb[设计]”中,修改右侧属性的有关值,如Label改为“工作簿演示”等。

(2)再次点击左侧的“工具箱”,拖拽“Office 功能区控件”中的Group按钮到“Ribbon1.vb[设计]”的“工作簿演示”里面,修改右侧属性的有关值,如Label改为“关于”等。

(3)点击左侧的“工具箱”,拖拽“Office 功能区控件”中的Button按钮到“Ribbon1.vb[设计]”中的帮助里面,修改右侧属性的有关值,如Label改为“复制数据”,ControlSize改为“RibbonControlSizeLarge”,OfficeImageId改为“Copy”等。

(4)重复第(3)点操作,将新的Button的属性,修改Label改为“版本”,ControlSize改为“RibbonControlSizeLarge”,OfficeImageId改为“FieldCodes”等。

3.双击“复制数据”,进入“Ribbon1.vb”的代码编辑界面,在Button1_Click的过程中,输入以下代码

Globals.ThisWorkbook.Application.Run("演示")

4.双击“版本”图标,进入“Ribbon1.vb”的代码编辑界面,在Button2_Click的过程中,输入以下代码

MsgBox("当前程序版本1.0.0.0" & vbNewLine & vbNewLine & "xlsm文件最新版本为V1.0.0")

(三)生成Excel VSTO Excel工作簿项目

1.将解决方案配置由Debug改为Release。

2.在“Excel工作簿”项目上,点击右键,选择“属性”,在“Excel工作簿”界面,选择“签名”中的“从文件选择”,选择提前编译好的证书文件,本例为“tsgazzb.pfx”,点击“打开”后显示“tsgazzb.pfx”证书的相关内容。

3.在“Excel工作簿”项目上,点击右键,选择“生成”,将在此项目的输出目录内,生成一系列文件。

4.选择菜单栏的“全部保存”按钮,将本项目存盘。

二、添加文档复制项目

(一)新建文档复制项目

在解决方案“ClickOnce-工作簿”上,点击右键,选择“添加”——“新建项目”,选择Visual Basic-Windows-库中的“类库 (.NET Framework) C#”模板,

命名为“FileCopyPDA”,框架依然选择为“.NET Framework 4.6.1”

(二)添加引用

在“FileCopyPDA”项目上,点击右键,选择“添加”——“引用”,在“引用管理器-FileCopyPDA”界面,搜索以下引用并添加。

Microsoft.VisualStudio.Tools.Applications.Runtime

Microsoft.VisualStudio.Tools.Applications.ServerDocument

(三)编辑代码

将“Class1.vb”重命名为“FileCopyPDA.vb”,双击此文件,在代码编辑界面,用以下代码覆盖原有代码。

Imports Microsoft.VisualStudio.Tools.Applications.Deployment Imports Microsoft.VisualStudio.Tools.Applications Public Class FileCopyPDA     Implements IAddInPostDeploymentAction     Sub Execute(ByVal args As AddInPostDeploymentActionArgs) Implements IAddInPostDeploymentAction.Execute         Dim dataDirectory As String = "Data\演示文档.xlsm"         Dim file As String = "演示文档V1.00.xlsm"         Dim sourcePath As String = args.AddInPath         Dim deploymentManifestUri As Uri = args.ManifestLocation         Dim destPath As String = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)         Dim sourceFile As String = System.IO.Path.Combine(sourcePath, dataDirectory)         Dim destFile As String = System.IO.Path.Combine(destPath, file)         Select Case args.InstallationStatus             Case AddInInstallationStatus.InitialInstall, AddInInstallationStatus.Update                 If System.IO.File.Exists(destFile) Then                     Exit Select                 Else                     System.IO.File.Copy(sourceFile, destFile, True)                     ServerDocument.RemoveCustomization(destFile)                     ServerDocument.AddCustomization(destFile, deploymentManifestUri)                     Exit Select                 End If             Case AddInInstallationStatus.Uninstall                 If System.IO.File.Exists(destFile) Then                     System.IO.File.Delete(destFile)                 End If                 Exit Select         End Select     End Sub End Class

其中:

If System.IO.File.Exists(destFile) Then

                    Exit Select

                Else

                    System.IO.File.Copy(sourceFile, destFile, True)

代码会判断是否存在目标文档,较新的Excel文档将重新命名复制。

(四)生成项目

在“FileCopyPDA”项目上,点击右键,选择“生成”,将在此项目的输出目录内,生成一系列文件。

(五)连接“FileCopyPDA”项目

在“Excel工作簿”项目上,点击右键,选择“添加”——“引用”,在“引用管理器- Excel工作簿”界面,勾选“FileCopyPDA”,点击确定。

(六)添加Excel文档

1.在“Excel工作簿”项目上,点击右键,选择“添加”——“新建文件夹”,文件夹命名为“Data”,注意大小写。

2.在“Data”文件夹上,点击右键,选择“添加”—“现有项”,选择“Excel工作簿”项目的输出Release文件夹

D:\source\repos\ClickOnce-工作簿\Excel工作簿\bin\Release

中的“演示文档.xlsm”文件。

3.点击“演示文档.xlsm”,在下方属性界面,修改以下值

(1)复制到输出目录:如果较新则复制

(2)生成操作:内容

三、建立安装包项目

(一)设置Web网址

在“Excel外接程序”项目上,点击右键,选择“属性”,在“Excel外接程序”界面,在“发布”中的“安装文件夹URL”中,输入将要发布的WEB网址,如:“http://msoffice.tss.eb:2008/vsto/excelbook-click/”。

(二)设置系统必备组件

1.在“发布”中的“安装设置”下面,点击“系统必备”。在“系统必备”界面,勾选“创建用于安装系统必备组件的安装程序”。

2.在“请选择要安装的系统必备组件”中,选择“Microsoft .NET Framework 4.*.*(x86和x64)”和“Microsoft Visual Studio 2010 Tools for Office Runtime(x86和x64)”。

3.在“指定系统必备组件的安装位置”中,选择“从与我的应用程序相同的位置下载系统必备组件”,点击“确定”,退出相应界面。

(三)设置更新频率

在“发布”中的“安装设置”下面,点击“更新”。在“更新”界面,根据需求进行勾选。

(四)设定安装包版本

在“发布”中的“发布版本”下面,勾选“自动递增每个版本的修订号”。

(五)生成安装程序

1.在“发布”中界面,点击“立即发布”。

2.选择菜单栏的“全部保存”按钮,将本项目存盘。

四、修改签名

(一) 修改应用程序清单

通过文件资源管理器打开发布文件夹

D:\source\repos\ClickOnce-工作簿\Excel工作簿\publish

用记事本打开\Application Files\Excel工作簿_1_0_0_0文件夹中的“Excel工作簿.dll.manifest”,进行修改。

在后面,添加以下代码:

                         

(二) 对应用程序清单和部署清单进行重新签名

1.打开VS命令行

在VS IDE中选择“工具-命令行-开发者Powershell”,进入命令行界面。

2.输入以下命令

cd "D:\source\repos\ClickOnce-工作簿\Excel工作簿\publish\Application Files\Excel工作簿_1_0_0_0"

copy  "D:\source\repos\ClickOnce-工作簿\Excel工作簿\tsgazzb.pfx"  "D:\source\repos\ClickOnce-工作簿\Excel工作簿\publish\Application Files\Excel工作簿_1_0_0_0"

mage -sign Excel工作簿.dll.manifest -certfile tsgazzb.pfx

cd "D:\source\repos\ClickOnce-工作簿\Excel工作簿\publish"

mage -update Excel工作簿.vsto -appmanifest "D:\source\repos\ClickOnce-工作簿\Excel工作簿\publish\Application Files\Excel工作簿_1_0_0_0\Excel工作簿.dll.manifest" -certfile "D:\source\repos\ClickOnce-工作簿\Excel工作簿\publish\Application Files\Excel工作簿_1_0_0_0\tsgazzb.pfx"

copy Excel工作簿.vsto  "D:\source\repos\ClickOnce-工作簿\Excel工作簿\publish\Application Files\Excel工作簿_1_0_0_0"

五、发布 (一)发布到web服务器

1.将“Excel外接程序”项目文件夹下的Publish文件夹的所有文件,发布到

http://msoffice.tss.eb:2008/vsto/excelbook-click/

(二)运行安装程序

打开web浏览器,输入

http://msoffice.tss.eb:2008/vsto/excelbook-click/setup.exe

运行setup.exe文件进行安装。

六、项目更新后生成安装包 (一)Excel工作簿更新

1.修改“Excel工作簿”项目文件夹下的“演示文档.xlsm”,在“sheet1”的A1单元格输入“1.0.0.1”

2.在“Excel工作簿”项目上,点击右键,选择“生成”,将在此项目的输出目录内,生成一系列文件。

3.删除“Excel工作簿”项目下的Data文件夹的“演示文档.xlsm”。

4.重复添加Excel文档的第2、3点操作。

(二)修改复制文档文件名称

编辑“FileCopyPDA.vb”代码中"演示文档V1.00.xlsm"修改为"演示文档V1.01.xlsm"

(三)VSTO外接程序项目更新

在“Ribbon1.vb[设计]”界面,双击“版本”图标,进入“Ribbon1.vb”的代码编辑界面,在Button2_Click的过程中,输入以下代码

MsgBox("version 1.0.1")

(四)发布更新。

1.先后对“FileCopyPDA”、“Excel工作簿”两个项目,选择“重新生成”。

2.在“发布”中的“发布版本”下面,发布版本延续为“1.0.0.1”,点击“立即发布”。

(五)按第四点修改签名的步骤,重新操作。 (六)将Publish文件夹下的,“setup.exe”和“*.vsto”拷贝到web网址根目录,将

\publish\Application Files\Excel外接程序_1_0_0_1文件夹,拷贝到web网址下的\publish\Application Files\。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3