VSTO, Visual Studio, MVP
RSS 2.0 Feed
VSTO
VSTO相关的文章共有3篇
摘要:  曾经在一个 VSTO 2008 的讨论会上听到一些小型软件开发商的担忧:我们本来使用 C++ 为 Office 开发插件,然后通过互联网给用户下载,并且收取费用。现在我们想用 VSTO,但是发布插件的时候,居然要用户下载 200MB 的 .NET Framework???我的插件本身才 50K 哎!我的很多用户现在依然使用低速网络接入,200MB 的内容够他们下载整整一天的了,这样我的产品怎么卖得出去?   发布,很现实的问题,开发人员使用 VSTO 强大的功能,可以快速做出以前很难实现的功能,可是如果最后却很难把产品分发给用户,那前面的工作又有什么意义呢?在企业内部,我们可以通过“推送”的方法把 .NET Framework 方便地部署到每个客户端 PC,接下来再部署基于 VSTO 的解决方案就不是那么困难了;但是对于 ISV 呢,难道他们就注定和 VSTO 无缘了?   也许不是。   在先前的 Blog 里面我们提到过随着 Visual Studio 2008 SP1 的发布,VSTO 现在可以把“.NET 框架客户端配置(.NET Framework Client Profile)”作为目标框架。在这种配置下,如果目标系统没有安装 .NET Framework,那么安装程序将下载一个面向客户端应用程序的 .NET Framework 3.5 SP1 的子集。下载量将从原来的 200MB 缩小到 26.5MB。   那么如何使 VSTO 的解决方案使用针对客户端的配置呢? 创建一个新的 VSTO 加载项工程(针对 Office 2007) 打开工程属性页面 在“应用程序”选项卡的“目标框架”选项中,钩选“客户端配置文件子集” 保存工程   作了上述的修改之后,工程中所有对 .NET 框架类库的引用,都必须限制在“客户端配置文件”这个子集内,编译器会负责这项检查,并且指出超出范围的引用。关于“客户端配置文件”的详细信息,可以参阅这篇 MSDN 文档:.NET Framework 客户端配置文件。   在准备发布工程的时候,我们还需要在“工程属性”的“发布”页面里面对预安装选项进行调整:原先需要预安装完整版本的 .NET Framework 3.5 SP1 可以改为预安装 .NET Framework Client Profile。 ...[阅读全文]

posted @ | Feedback (8) | Filed Under [ VSTO 资源 原创 ]

摘要:  这个问题在中文、英文 MSDN 的 Office 开发论坛上都看到过(也正好都是我提供了答案),看来也算是一个“国际化需求”了。今天就记录一下和大家分享。   故事是这样的:开发人员有一个 WinForm 应用程序,它从数据库里面读取出一条记录后,获得了一个记录 ID,然后需要打开 Word 或者 Excel,用已经准备好了的 VSTO 文档或者是插件,根据这个记录 ID 生成相应的 Office 文档内容。问题是,怎么把这个 ID 传给 Word 或者 Excel?   有一个很简单的实现方法——直接在启动 Word / Excel 的命令行里面加参数!比如:   <Excel.exe> /r "D:\ExcelWorkbook1.xlsx" /e /id:1234   其中 <Excel.exe> 应该是 Excel.exe 的完整路径。    /r 后面跟 VSTO Excel 文档的完整路径。   /e 告诉 Excel 不要打开一个空白新文档。   /id:1234 就是自己定义的参数了,你可以在这里把你的ID号传入。当然参数名字也可以是其它的,并不是一定要“id”。    第二步,在 VSTO Excel 文档里面,可以通过下面的代码枚举命令行参数:   For Each a As String In Environment.GetCommandLineArgs        MsgBox(a)   Next   上面的代码如果被执行,会把所有命令行参数都显示出来。    只要找到其中/id:开头的参数,把数字取出来就好了。   对于 Word,也可以用类似的方法,只是 /r /e 之类的参数要换成对应的 Word 参数。   这个方法用在 Word 2007 / Excel 2007 没有问题,但是我不能保证将来的版本是否也可以这样用。特别是如果你添加的自定义参数不巧被新版本用作标准参数名的话……所以参数名最好独特一点啦。 ...[阅读全文]

posted @ | Feedback (0) | Filed Under [ VSTO 资源 雕虫小技 原创 ]

摘要:在 MSDN 论坛上看到这样一个问题(原贴地址): “我在用 VSTO 2008 写一个 Outlook 2007 的插件。这个插件有一个窗体区域(Form Region)显示在‘约会’(Appointment)窗体中,我怎样才能捕捉‘约会’对象的‘保存’事件,以便在保存约会的时候执行一些我自己的代码?”     我提供了一个解决方案(其他类型的 Outlook 对象也有很类似的实现方法): 在用户区域装载的时候(FormRegionShowing 事件),把 OutlookItem 属性所引用的对象转换成 Outlook.Appointment 类型。 为 Appointment 注册 Write 事件的代码。 在 Write 事件处理方法中添加自定义代码实现业务逻辑要求。 当一个约会项目被显式(比如调用了 Save 方法或者按“保存”按钮)或者非显式(比如在关闭这个项目的窗口的时候作了答复操作)保存的时候,Write 事件就会被触发。这时候还可以通过设置 Cancel 参数来取消保存操作。 下面的代码片断展示了如何在 Form Region 里面注册 Write 事件。为了代码清晰,一切从简: 'Occurs before the form region is displayed.  'Use Me.OutlookItem to get a reference to the current Outlook item. 'Use Me.OutlookFormRegion to get a reference to the form region. Private Sub MyFormRegion_FormRegionShowing(ByVal sender As Object, _                                            ByVal e As System.EventArgs) _                                            Handles MyBase.FormRegionShowing     If TypeOf Me.OutlookItem Is Outlook.AppointmentItem Then         AddHandler CType(Me.OutlookItem, Outlook.AppointmentItem).Write, _                    AddressOf Item_Save     End If End......[阅读全文]

posted @ | Feedback (1) | Filed Under [ VSTO 资源 雕虫小技 原创 ]

More