vs2010发布的vsto安装包安装后,程序所指的路径是安装包中的vsto路径,删除安装包后程序为什么还能用
%ProgramFiles%\Common Files\Microsoft Shared\VSTO\10.0\VSTOInstaller.exe /Uninstall file:///E:/文档编辑器安装包/Setup1/LMWordEditor.vsto
制作word插件的方法中VSTO算是简单的么
其实VSTO插件的部署无非就是Prerequisites和grant full trust (因为注册表是模板帮我们处理好的,我们不需要去关心,下文有详述)。上面的两篇文章为了一步到位的解决好以上两个问题,并打包.msi文件,用了一些技术。一,给Setup项目添加prerequisites,并且使用launch condition来要求用户在安装setup.exe前必须保证所有的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 2.0以上的版本)
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. 用Caspol.exe (命令行,本文采用这种方式,原因是好表述,不要图)
二.部署案例
下面我们动手,用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. 在ThisAddIn.cs文件中的ThisAddIn_Startup函数里加一句代码,以供回头测试是否部署成功。修改后的代码如下:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
#region VSTO generated code
this.Application = (Excel.Application)Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Wrap(typeof(Excel.Application),this.Application);
#endregion
MessageBox.Show(“Deploy successfully”);
}
3. 在Solution Expolrer里面,右击ExcelAddInSetup项目,点击Build。
4. 到Setup项目文件夹中的debug目录下找到ExcelAddInSetup.msi文件,拷贝到目标机器上。
5. 在目标机器上,安装:
.Net Framework 2.0
Office 2007 PIAs: (运行完下载文件后,还要点击得到的o2007PIA.msi才是安装PIAs)
VSTO Runtime2.0:
还有目标机上要有对应的Office程序,比如这里就需要Excel 2007!
6. 双击刚刚拷贝到目标机器上的ExcelAddInSetup.msi,选择安装目录并安装,假设安装到了C:/Test目录下。安装完,该目录下会出现两个文件:ExcelAddIn.dll,ExcelAddIn.dll.manifest,其中的.dll文件就是我们下面要设置权限的程序集
7. 回到桌面,点击开始->运行,输入cmd,在命令行提示下,输入cd C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727,回车
然后输入下面命令:
Caspol –u –ag All_Code –url “C:/Test/ExcelAddIn.dll” FullTrust –n “Test”
回车
输入yes
回车 (请勿直接拷贝这段命令行,因为Word好像改变了字体,大家还是自己敲一下,顺带加深一下印象)
8. 打开Excel,MessageBox对话框跳出。
VOB是什么格式?
VOB文件介绍
VOB是DVD Video OBject的缩写,意思是DVD视频对象。这是DVD影碟上的关键文件,内含的是电影的实际数据。实际上VOB文件是一种基本的MPEG-2数据流,就是说它包含了多路复合的MPEG-2视频数据流、音频数据流(通常以AC3格式编码)、以及字幕数据流。
MPEG-2是由MPEG集团开发的一种视频标准。记住,MPEG-2并不是MPEG-1的继承者,而是一种不一样的标准,就像MP3也和它们没多大关系一样。这些格式的文件都有它们自己特定的应用场合:MPEG-1主要用于中等带宽(medium-bandwidth)而MPEG-2用于高带宽(high-bandwidth)或者宽带(broadband)应用。MPEG-2最常用的地方包括数字电视、DVD视频(我们上面看到的)和SVCD等等。
而AC3(也就是Dolby Digital杜比数字技术)是杜比的第三代音频编码算法。这是一种知觉编码算法,目的是让音频在低数据传输率的时候可以被感觉到的音质降低达到最小。这种算法设计的时候最大利用了人类的听觉模糊现象。简而言之,它只选择人的听觉所能感知的很窄的声音频谱范围加以编码,而噪音在同时得到极大的消除。 很多软件可以处理VOB文件,下面列出比较流行的一些,它们的使用方法和技巧不在此说明,有兴趣的朋友可以在google中以它们为关键字进行检索,找出相关的技术文件学习。
bbTools 1.9:一组DVD转换工具,包括bbDemux、bbInfo、bbVInfo和bbAInfo
DecodeVOB 1.5
DecodeVOB 1.3-modified
DVD Subtitler 0.01
DVTool 0.49:包括DVD备份器(备份和分析DVD以及MPEG电影(数据流、CSS、解析度);文件处理器(截断、克隆、拆分、合并文件,计算文件CRC32校验码,对MPEG1、MPEG2、VCD、XVCD、SVCD、DVD等的特别处理,多线程的缓冲,速度非常快);速率计算器(计算视频数据抓取捕捉速率,很象PAL/NTSC/Cinema转换);CPU监视器(CPU使用监视器,甚至自动关机!);还有更多诸如IFO编辑器、电影分割器、将来支持更多视频格式等等。
Framerate Converter
IfoEdit:用来编辑*.ifo文件。在从DVD盘片抓取了不需要的.VOB文件后,你可以用它修正.ifo文件里的扇区地址。它还集成了一个DVD播放器,这样你可以直接测试所做的修改。
MpegUtils 0.41
Slipstream:这是一个Win32命令行工具,用来重新映射VOB文件中的DVD字幕到最早可用的数据流。
VOB List Maker 1.0:让你制作VOB清单列表
VobEdit 0.6:用来连接、剪切、和对VOB文件解除复合(de-multiplex)的工具。
VOBRator 0.2b
VOBTools 0.06
VOBUtils 0.1
vStrip 0.8f:vStrip是一个VOB解除复合工具,也包括分割器和作用于VOB/IFO文件的一些其它功能。最早vStrip是个小的win32命令行工具,可以用来抽取删除VOB中不需要的数据流(即数据包),而无需重新组合(reweave)VOB文件或者事先把所有数据流解开到一个单一流。现在它自带了个图形界面,当然你也可以在网上搜索Danni Din\’s GUI作为它的图形界面。
另外,有些中文影视网站有不少相关介绍文章,例如射手网(好像原来是各种杂七杂八新闻的网站,不知道啥时候变成几乎专门的影视技术讨论站了)等等,您可以去查找阅读。
vob是什么格式文件
VOB是DVD Video OBject的缩写,意思是DVD视频对象.这是DVD影碟上的关键文件,内含的是电影的实际数据.实际上VOB文件是一种基本的MPEG-2数据流,就是说它包含了多路复合的MPEG-2视频数据流、音频数据流(通常以AC3格式编码)、以及字幕数据流.
光盘中后缀名是“.BUP和.IFO”的文件各自都有什么作用?它们又是如何做的?
进入VIDEO_TS,这个目录下包含3种类型的文件:.vob文件、.ifo文件和.bup文件。.vob文件用来保存所有MPEG-2格式的音频和视频数据,这些数据不仅包含影片本身,而且还有供菜单和按钮用的画面以及多种字幕的子画面流。.ifo文件用于控制VOB文件的播放,在这个文件中可以找到如何控制.vob文件中数据播放的信息。由于.ifo文件对光盘能否正常播放至关重要,因此将所有的.ifo文件都保存了一份副本,即同名的.bup文件。在每个DVD光盘中都有视频管理器(VMG),它存放在VIDEO_TS.ifo文件中,保存了光盘的全局信息,如光盘可以在哪个地区播放等。同时,光盘还将用于显示菜单的数据保存在VIDEO_TS.vob文件中,当光盘插入到光驱中时播放器会首先显示这个菜单,大多数菜单可让观众指定场景、选择语言字幕等。
下载超级解霸3000或更新版本即可。
后缀vsd是什么文件
.vsd文件是Microsoft Office Visio的绘图文件专用格式,常用于图表的绘制,用来画流程图啊什么的非常方便,功能也很强大.就和Word的.doc文件类似,要打开.vsd文件的话,装个Visio就可以了.Visio属于Office系列,但是一般安装的Office套件里面不包含Visio,需要单独安装.
VSTO 部署清单签名的证书或其位置不受信任
object oRng = WordDoc.Bookmarks.get_Item(ref bookname).Range; Microsoft.Office.Interop.Word.Table table = WordDoc.Tables.Add(oRng, 4, 4, ref Nothing, ref Nothing);//插入表格 那两个4是行数跟列数.