
其实VSTO插件的部署无非就是Prerequisites和grant full trust (因为注册表是模板帮我们处理好的,我们不需要去关心,下文有详述)。上面的两篇文章为了一步到位的解决好以上两个问题,并打包msi文件,用了一些技术。一,给Setup项目添加prerequisites,并且使用launch condition来要求用户在安装setupexe前必须保证所有的prerequisites都已经安装在目标机器上;二,利用Custom Action在安装过程完成后,调用caspol工具来设置程序集的权限。第一篇文章讲解了各个技术点,第二篇文章通过具体的例子来完成两种类型项目的部署,并且提供了一个Sample,里面包含了要用到一些工程,如SetSecurity。例子就是引用这个工程做为Custom Action来设置权限的。与上两者不同的是,本文抛开所有这些技术不看,仅仅打包一个最最简单的msi文件,把prerequisites和grant trust的事情,留待插件安装完再去人工做。希望如此,能给在VSTO项目部署时遇到困难的人一个直观的印象,让大家看到VSTO项目要运行,其实就是这么几个东西。然后回头再看Microsoft提供的这两篇文章,幸许又会有另外的收获。 一.概述如果你的VSTO SE插件在开发机器上工作良好,一旦装到客户机上,就不再装载了。可能的原因无非就是一下几种:(在此排除了软禁用,硬禁用的情况)1一些prerequisites没有装:a NET Framework (这是所有NET应用程序运行的必备,没有什么好说的。如果我们用VSTO SE开发的插件,我们应该在客户机上装上NET 20以上的版本)b Office PIAs(这是连接NET和Office COM的桥梁,CLR通过它来 *** 作Office的COM对象,没有它,你的程序一样不能跑)c VSTO Runtime(这是所有用VSTO开发出来的软件,运行时必备的,目前有三个主本版,第三个版本用来支持ClickOnce部署,本文中不涉及。本文只用到第二个主版本的升级版)2 注册表,任何一个VSTO SE插件程序要运行,都是Office启动的时候先从注册表中找到插件的相关信息,主要是LoadBehavior和Manifest的地址,然后根据Manifest的地址,找到manifest文件,manifest文件中记录了dll的地址和一些配置信息 (manifest文件可以用notepad打开) ,根据manifest来装载程序集。我们用VSTO SE新建一个插件项目的时候,Microsoft提供给我们的模板会帮我们自动添加一个Setup项目。这个项目中已经默认地帮我们把要写入的注册表键值写好,无须我们多费心思。当然如果你把默认的Setup项目删掉了 (我经常这么干,因为看着碍眼,并且我一般只要Debug,不要Deploy),自己再添加一个新的Setup项目,这时候,新项目中,系统不会帮你写好注册表的键值。关于注册表,下面是默认Setup项目的注册表视图的截图:3 权限的设置问题,Office装载任何VSTO SE开发出来的NET插件时,都需要这个插件被完全信任。有两种方法完成这个任务:a 用Microsoft NET Framework Wizard (图形化界面)b 用Caspolexe (命令行,本文采用这种方式,原因是好表述,不要图) 二.部署案例 下面我们动手,用VSTO SE创建一个Excel 2007的插件(2003也是一样的,只不过客户机要装Excel 2003和Excel 2003 PIA,还有不要在同一台机器上同时安装Office 2003和2007),并且将它部署到一个客户机上。(由于手头只有英文版VS,菜单名都是英文的,大家自己对应看看吧)1 打开Visual Studio 2005,新建项目,在左边的导航板块中,选中C#->Office->2007 Add-ins,在右边选中Excel Add-in。取名ExcelAddIn,点OK。然后系统会在solution中默认的创建两个项目,一个是插件项目,一个是Setup项目,如图:2 在ThisAddIncs文件中的ThisAddIn_Startup函数里加一句代码,以供回头测试是否部署成功。修改后的代码如下:private void ThisAddIn_Startup(object sender, SystemEventArgs e) { #region VSTO generated code thisApplication = (ExcelApplication)MicrosoftOfficeToolsExcelExcelLocale1033ProxyWrap(typeof(ExcelApplication),thisApplication); #endregion MessageBoxShow("Deploy successfully");}3 在Solution Expolrer里面,右击ExcelAddInSetup项目,点击Build。4 到Setup项目文件夹中的debug目录下找到ExcelAddInSetupmsi文件,拷贝到目标机器上。5 在目标机器上,安装:Net Framework 20 Office 2007 PIAs: (运行完下载文件后,还要点击得到的o2007PIAmsi才是安装PIAs) VSTO Runtime20: 还有目标机上要有对应的Office程序,比如这里就需要Excel 2007!6 双击刚刚拷贝到目标机器上的ExcelAddInSetupmsi,选择安装目录并安装,假设安装到了C:/Test目录下。安装完,该目录下会出现两个文件:ExcelAddIndll,ExcelAddIndllmanifest,其中的dll文件就是我们下面要设置权限的程序集7 回到桌面,点击开始->运行,输入cmd,在命令行提示下,输入cd C:/WINDOWS/MicrosoftNET/Framework/v2050727,回车然后输入下面命令:Caspol –u –ag All_Code –url “C:/Test/ExcelAddIndll” FullTrust –n “Test”回车输入yes回车 (请勿直接拷贝这段命令行,因为Word好像改变了字体,大家还是自己敲一下,顺带加深一下印象)8 打开Excel,MessageBox对话框跳出。
如果想让数据库内容常驻内存,可以使用如下方法:
使用缓存技术,将常用的数据存储在内存中,并定期更新。这样可以避免频繁的数据库访问,提高查询性能。
将数据库连接池化,避免频繁的连接和释放数据库连接。连接池中的连接可以复用,避免了频繁的创建和销毁连接的开销。
使用预编译技术,将常用的查询语句预编译,避免了重复编译查询语句的开销。
关于将_Oledb在main()底下整个程序只Open一次,而不是做在具体的查
如果数据库的内容常驻内存不切实际,_Oledb在main()底下整个程序只Open一次,而不是做在具体的查询子程序下做局部变量,反复实例化可能会有一定的提升。这样做可以减少连接和释放连接的开销,提高程序的性能。但是,这种做法也有一些缺点。由于_Oledb在整个程序中都是全局变量,它会一直占用内存资源。如果程序运行时间较长,会导致内存占用过多,影响程序的性能。因此,这种做法可能不太适用
wps自定义安装项安装程序窗口关闭的问题是wps安装自定义项安装程序出错了。可以解决这个是注册表的问题,打开注册表regedit,可以直接Ctrl+F查找YdWordAddInvsto。
可能选择VBA创建Office解决方案,如果你想做的是:
为比Office 2003专业版更老的Office版本创建应用程序级别的定制程序。
为VSTO或VSTO 2005 SE不支持的Office应用程序创建应用程序级别的定制程序,例如Microsoft Access。
为Office 2003标准版创建文档级别的定制程序。
通过全局模板为Word和Excel创建应用程序级别的定制程序。
通过创建名字相同的宏,覆盖Word、Excel和Outlook的本地命令。
组织的规定禁止把NET Framework部署到最终用户的电脑上。
Visual Studio Tools for Office 可以帮助您利用 Microsoft NET Framework 20 版 中的生产率提高功能,使用 Visual Basic 和 Visual C# 来扩展 Microsoft Office 2003 和 2007 Microsoft Office system 中的应用程序。工具中包含新的 Visual Studio 项目,可帮助您开始创建 Microsoft Office 解决方案。
Visual Studio Tools for Office(VSTO)技术可以使用NET Framework定制和扩展Microsoft Office应用程序和文档,它包含的工具还可以使这个定制在Visual Studio中更容易完成,例如用于Office ribbon控件的可视化设计器。
VSTO是微软公司发布的一系列产品中的最新产品,可以定制Office应用程序。用于访问Office应用程序的对象模型已经随时间逐步演化了。如果读者过去曾使用过它,就会熟悉它的某些部分。如果读者以前为Office应用程序编写过VBA插件,就为本章讨论的技术做好了准备(VSTO可以与VBA交互 *** 作)。但VSTO通过Office Primary Interop Assemblies(PIAs)提供的、与Office交互的类已经扩展到Office对象模型之外。例如,VSTO类包括NET数据绑定功能。
在Visual Studio 2008推出之前,VSTO一直是一个独立下载的软件包,如果要开发Office解决方案,就可以得到它。在Visual Studio 2008中,VSTO集成到Visual Studio IDE中。VSTO的这个版本也称为VSTO 3,包含了对Office 2007的全部支持,还包括许多新特性,例如可以与Word内容控件交互,前面提及的ribbon可视化设计器、VBA集成等。
本章不需要VSTO或其以前版本的任何预备知识。
内容如下:
● 可以用VSTO创建的项目类型,在这些项目中可以包含的功能
● 应用于所有VSTO解决方案类型的基础技术
● 如何建立带定制UI、VBA交互 *** 作功能和ClickOnce部署功能的VSTO解决方案
401 VSTO概述 VSTO包含如下组件:
● 一组项目模板,可用于创建各种类型的Office解决方案
● 设计器,支持ribbons、动作面板和定制任务面板的可视化布局
● 建立在Office Primary Interop Assemblies(PIAs)基础之上的类,它们还提供了扩展功能
VSTO支持Office 2003和2007版。VSTO类库有两种形式,各用于这两种Office版本,它们分别使用不同系列的程序集。由于它们比较简单(且功能集很丰富),所以本章主要介绍2007版。
按照我的看法,反正现在电脑的空间都很大,这个程序本身占空间很小,再加上微软的office程序衔接精密,也不能确切的知道什么时候能用到。就先留着吧。
以上就是关于vsto开发excel怎么样dropdown怎么用全部的内容,包括:vsto开发excel怎么样dropdown怎么用、VSTO C# 如何将链接的数据库内容常驻内存、wps自定义安装项安装程序窗口关闭等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)