VSTO, Visual Studio, MVP
RSS 2.0 Feed

Tuesday, October 21, 2008

  曾经在一个 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 的解决方案使用针对客户端的配置呢?

  1. 创建一个新的 VSTO 加载项工程(针对 Office 2007)
  2. 打开工程属性页面
  3. 在“应用程序”选项卡的“目标框架”选项中,钩选“客户端配置文件子集”
    工程属性配置
  4. 保存工程

  作了上述的修改之后,工程中所有对 .NET 框架类库的引用,都必须限制在“客户端配置文件”这个子集内,编译器会负责这项检查,并且指出超出范围的引用。关于“客户端配置文件”的详细信息,可以参阅这篇 MSDN 文档:.NET Framework 客户端配置文件

  在准备发布工程的时候,我们还需要在“工程属性”的“发布”页面里面对预安装选项进行调整:原先需要预安装完整版本的 .NET Framework 3.5 SP1 可以改为预安装 .NET Framework Client Profile。

预安装客户端配置文件

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

Friday, August 29, 2008

(原文 - Harry Miller:http://blogs.msdn.com/vsto/archive/2008/07/18/removing-customization-code-before-e-mailing-a-document.aspx

  为一个 Word / Excel 文档创建 VSTO 自定义代码之后,这个文档的后续拷贝也会和这些代码关联,哪怕你“另存为”的时候换一个文档名字,关联依然存在。每次文档被打开的时候,它就会试图去寻找关联的 VSTO 代码并且开始运行。问题来了:如果我们需要把文档发送给外部人员呢(比如客户、供应商)?他们没有权限访问到我们的内部网络,文档也就找不到关联的代码,于是一个讨厌的错误对话框就会跳出来,告诉一头雾水的用户“无法找到或加载自定义程序集”,对于普通 Office 用户来说,这简直就是天书一样的信息。

  所以有时候我们需要在向外派发文档之前移除文档和 VSTO 代码的关联。

  一个方法是手工在文档的“属性-高级属性-自定义”项目中删除“_AssemblyName”和“_AssemblyLocation”属性。

  另外一种方法是通过编程,使用“ServerDocument.RemoveCustomization()”方法,可以解除文档和代码的关联。VSTO 文档中的示例程序包含了相关的代码可以参考。

相关资源:

ServerDocument.RemoveCustomization 方法(2007 Office 系统)
ServerDocument.RemoveCustomization 方法(2003 Office 系统)
ServerDocument 示例代码
使用 ServerDocument 类在服务器上管理文档

posted @ | Feedback (0) | Filed Under [ VSTO 资源 翻译 ]

Wednesday, August 27, 2008

(原文 - Christin Boyd:http://blogs.msdn.com/vsto/archive/2008/08/15/visual-studio-2008-service-pack-1-released-now-what-christin-boyd.aspx

  恭喜恭喜!SP1 已经在微软网站上正式发布啦!

  接下来呢?让我带大家看看 SP1 有些什么新玩意儿。我强烈建议大家浏览一下 SP1 Readme 文档里面关于 VSTO 的部分。如果你想知道这次的 Service Pack 修复了哪些 Bug,可以查阅这篇知识库文档。希望你曾经遇到的问题也在这次的更新中被修复了。

  如果你想知道我们的团队是怎么决定添加哪些新功能到 SP1 里面去的,你可以参阅 VSTO 6月发布的 Blog《VS 2008 SP1 新特性以及 VSTO 团队是如何做出这些决定的》

  MSDN Library 更新了关于 Visual Studio Tools for Office 新功能的文档,包含了 SP1 新增的功能介绍。中文版本的文档也即将更新。

言归正传。

Visual Studio Tools for Office (2008 SP1) 新增特性

Visual Stduio 2008 Service Pack 1 (SP1) 包含了针对 Visual Studio Tools for Office 的更新。这次的更新列表在 Visual Studio 2008 功能特性文档中被分别列出,以便用户能快速查阅。本次更新包含了一些新的功能设计可以帮助开发者完成下列任务:

在加载项(Add-in)工程中添加宿主控件和智能标签

  开发人员现在可以在应用程序层面的加载项工程中使用智能标签和宿主控件了。比如向 Word 2007 文档中动态添加内容控件(Content Control),向 Excel 2007 工作簿中动态添加列表对象(List Ojbect)。你可以像使用 Office 本地对象一样使用这些托管宿主控件,更好的是这些宿主控件还提供了事件和数据绑定的功能。

  想要了解更多信息,请参阅:在运行时向 Office 文档添加控件智能标签概览

使用你的解决方案安装程序部署 Office 主互操作程序集(PIA)

  现在,当你使用 ClickOnce 技术来部署 VSTO 解决方案时,Office 2007 主互操作程序集(PIA)会自动被添加为预安装项目。这些程序集会被自动复制到你的解决方案安装程序所在的那个目录里面。

  想要了解更多信息,请参阅:如何在最终用户的电脑上部署预安装项目(2007 Office 系统)

使用 .NET Framework 客户端配置快速部署你的解决方案

  现在,你可以指定“.NET 框架客户端配置”作为你的目标 .NET 框架版本。这个精简版本的 .NET 框架不会安装所有的程序集,从而可以大大减少安装所需要的空间。

  想要了解更多信息,请参阅:在 Visual Studio 中创建 Office 解决方案

使用事件查看程序对安装过程进行排错

  当你安装、卸载 VSTO 解决方案的时候,VSTO 运行时会将出错信息记录在 Windows 事件日志中,使用日志查看程序阅读这些信息,能有助于安装、部署解决方案过程中进行排错工作。

  想要了解更多信息,请参阅:事件日志(2007 Office 系统)

posted @ | Feedback (0) | Filed Under [ VSTO 资源 翻译 ]

Wednesday, May 21, 2008

原作:Christin Boyd

  虽然 Visual Studio 2008 Service Pack 1 还没有完工,但是我们已经可以拿出一份 Beta 版的文档供大家阅读!从这个文档中您可以了解到今年晚些时候我们正式发布 SP1 的时候您可以看到哪些产品特性。

  我建议大家先读一下文档,其中描述了一个全新的特性:开发者可以在 Word 和 Excel 的应用程序插件(Add-in)运行时直接扩展文档或者工作簿的功能。文档的地址:

http://vs2008sp1docs.msdn.microsoft.com/en-us/ms334311.aspx

  有了这个新特性,您可以在插件运行时动态向文档/工作簿添加下列对象并响应它们的事件:

  • Host Controls
  • ListObjects
  • Smart Tags
  • Word Content Controls
  • 以及诸如“DocumentBeforeSave”之类的事件

  从 Visual Studio 2008 Service Pack 1 开始,您可以在 Windows 系统的日志浏览器里面察看任何安装、卸载 VSTO 解决方案过程中由 VSTO 运行时报出的错误日志。利用这些日志记录,您就可以更加有效地解决安装部署过程中发生的问题。

  这个 Service Pack 的测试版本目前只向大约一千个 Beta 测试者发布,他们都很善于提交明确的反馈意见和 Bug 报告。我希望这次管窥可以让您对今年炎夏将要发布的 SP1 先产生浓厚的兴趣。

——Christin Boyd,Program Manager

posted @ | Feedback (0) | Filed Under [ VSTO 资源 翻译 ]

Thursday, May 08, 2008

  Visual Studio 2008 官方网页信息:Visual Studio 2008 SP1 Beta 和 .NET Framework 3.5 SP1 Beta 已经正式开发下载。

  谁愿意吃螃蟹?我已经在自己的一台机器上安装了。关于 VSTO 有一些非常有趣的新功能,下一篇 Blog 就会介绍。

  先提供下载地址:

  英文版:http://www.microsoft.com/downloads/details.aspx?FamilyId=CF99C752-1391-4BC3-BABC-86BC0B9E8E5A&displaylang=en

  .NET Framework 3.5 SP1 Beta:http://www.microsoft.com/downloads/details.aspx?FamilyId=23516C63-2DB2-4E7F-AABA-32B12D6E025C&displaylang=en

  关于此 Beta 版本的说明:http://download.microsoft.com/download/8/F/D/8FD2A9F0-C3D4-4B0A-80AF-88D738DCDDF4/VSReadme.htm

 

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

Monday, April 07, 2008

  这个问题在中文、英文 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 资源 雕虫小技 原创 ]

Wednesday, April 02, 2008

  上次在 TechEd 的时候就有很多朋友抱怨中文的 VSTO 书籍太少(还是没有?)。那我今天就要大声吆喝一下:咱 VSTO 也有官方中文参考书籍啦!!!——虽然不是我写的,也不是我翻译的,但是只要是 VSTO 相关的,我就要吆喝……

  这本书的原作者现在分别是 Visual Studio 商业应用组(VSTO、VSTA、SharePoint 开发、数据访问工具、中小商业应用开发等)的首席开发经理 Eric Carter;Visual Studio 程序语言组(C#、VB.NET)的大佬 Eric Lippert……绝对的重量级人物。

  这本书非常适合各类 VSTO 初学者仔细阅读,因为内容由浅入深,也一定程度上照顾了具有 Office VBA 开发经验、现在想迁移到 VSTO 平台的朋友们;也适合已经有一定经验的 VSTO 开发者在手边放一本以便随时查阅,因为书中的内容基本上很全面地覆盖了 VSTO 2005 的所有知识点,如果在开发过程中突然脑袋卡壳儿想不起来啥,翻翻书就能找到答案。

  既然号称是“第一本”,自然也有很多不足之处。比如有些地方翻译得实在不怎么地,而介绍的产品也不是最新的版本。不过瑕不掩瑜,如果您面对全英文技术书籍感到头痛,那么这本书还是个不错的选择。

  博文视点出的,我觉得稍微有点贵,定价¥99。游说能力强的弟兄们可以说服老板掏钱买一本加入公司的技术图书库里面,哈哈,别说是我的主意哦!

  下面的图片:第一张是中文版封面,我也是今天刚看到,新鲜出炉的。另一张是我“左青龙右白虎”,分别托着原版和中文版,当时心中的体会“知识就是重量”,这两本书可真是重啊!!!

VSTO 开发指南 

青龙白虎

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

Friday, March 21, 2008

  之前的一篇 Blog 提到了关于在不同的 Culture 环境中对字符串的转换和比较需要注意的地方,这又让我想到了前一阵子在英文 MSDN 论坛 VSTO 板块上为一个用户解决的问题:

  用 VSTO 开发一个 Outlook 的加载项,在 Outlook (以及这个加载项)运行的过程中,如果用户修改了“控制面板——区域设置”中的 Culture 信息,比如日期的显示格式;怎样在不重新启动 Outlook 或这个加载项的前提下马上反映出用户所做的修改?

  我们的第一反应就是“在格式化数据(日期或者数字等等)的时候,用 CurrentCulture 就可以了”。可事实上这还不够。因为 CultureInfo 的相关信息在第一次被调用之后,就缓存起来了,直到它所在的 AppDomain 生命周期结束。如果系统的区域设置发生变化,CultureInfo 是不会自动反映出来的。我们需要用 CultureInfo.ClearCachedData 方法手工更新这些信息。

  为了知道系统的区域设置发生了变化,我们可以通过注册 SystemEvents.UserPreferenceChanged 事件来获得通知。

  另外值得注意的是,在加载项卸载之前,我们必须要注销事件通知,否则可能会发生内存泄漏。

  完整示例代码:

Imports System.Globalization
Imports Microsoft.Win32

Public Class ThisAddIn

    Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
        AddHandler SystemEvents.UserPreferenceChanged, AddressOf SystemEvents_UserPreferenceChanged
    End Sub

    Private Sub SystemEvents_UserPreferenceChanged(ByVal sender As Object, ByVal e As UserPreferenceChangedEventArgs)
        If (e.Category = UserPreferenceCategory.Locale) Then  ' 发生变化的项目:区域设置
            CultureInfo.CurrentCulture.ClearCachedData()
        End If
    End Sub

    Private Sub ThisAddIn_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown
        RemoveHandler SystemEvents.UserPreferenceChanged, AddressOf SystemEvents_UserPreferenceChanged
    End Sub

End Class

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

Thursday, March 20, 2008

  原以为土耳其“I”的问题已经是老生常谈,但事实证明大家都知道未必就是大家都能做到。今天在一段代码里面又一次发现了这个错误。

  很简单,下面的代码:

   string msg = "Info";
   if (msg.ToLower() == "info")
   {
       ....
   }

  看起来没有什么问题,if 里面的代码应该会被执行吧?但是在土耳其语的系统中,故事就不同了。如果当前线程默认 Culture 是土耳其语,那么不带任何参数的 ToLower 会按照土耳其语的规则转换字符“I”。

在土耳其语中,字母“i”的对应大写是“İ”,而字母“ı”的对应大写才是“I”。

  所以,上面的代码将会得到“不等”的结果。要避免默认 Culture 对文化无关的字符串转换、比较造成干扰,我们要使用 CultureInfo.InvariantCulture,或者用诸如 ToLowerInvariant() 之类的方法。 否则一个不小心,可能会给将来的调试、维护带来很多意外的麻烦。

posted @ | Feedback (0) | Filed Under [ 胡思乱想 随笔:随便写两笔 雕虫小技 原创 ]

Monday, March 03, 2008

在 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 Sub

Private Sub Item_Save(ByRef Cancel As Boolean)
    MsgBox("This appointment is to be saved!", vbOKOnly Or vbInformation)
End Sub

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

Wednesday, February 27, 2008

  微软正在举行 SQL Server 2008 February CTP 的“Bug大扫除”,找到 Bug 最多的可以获得 Xbox 360 精英版本游戏机一台!

  具体参加规则参见:http://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=7734

posted @ | Feedback (2) | Filed Under [ 随笔:随便写两笔 ]

Friday, February 22, 2008

  VSTO Power Tools 1.0 发布啦!

  下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=46B6BF86-E35D-4870-B214-4D7B72B02BF9&displaylang=en

  总共九个小工具、扩展类库,被包含在三个安装文件内(因为授权类型有不同的三种,所以需要三个安装包)。其中的“VSTO Troubleshooter”、“Open XML Package Editor”和“Office Custom UI Manager”都有我们上海的 VSTO 团队参加了开发、测试。

  VSTO Troubleshooter 是一个非常实用的工具,它可以分析当前系统的配置,并给出一个报告,指出当前环境如果需要运行 VSTO 开发的解决方案还缺少一些什么东西,或者是“万事俱备只欠东风”。如果客户在安装了你辛辛苦苦开发出来的 Office 加载项、VSTO 文档,却告诉你“出错了不能运行”,那么这个工具就是帮助你快速诊断原因的好帮手。

  Open XML Package Editor 是一个图形界面的编辑器,可以直接打开 Open XML 格式的 Word、Excel、PowerPoint 文档察看、修改里面的内容。

  Office Custom UI Manager 是一个开源的类库,通过这个库,开发人员可以更方便地管理 Office 界面上的常见控件元素:Ribbon、Custom Task Pane、Window、Explorer (Outlook)、Inspector (Outlook),和它们之间的从属关系。

  这套工具都需要环境中安装了 Visual Studio Tools for Office 2008 和 2007 Office System。

  如果你是使用 VSTO 的 Office 平台开发者,嫑犹豫了,赶快去下载吧!

posted @ | Feedback (1) | Filed Under [ 欢乐 CTI VSTO 资源 VSTA 资源 原创 ]

Wednesday, December 05, 2007

  在第295期《.NET Rocks!》中,VSTA 的 Program Manager——Naveen Yajaman 介绍了 Visual Studio Tools for Applications 的基本概念,包括这个产品和 VBA、VSTO 的关系,它的设计器工具(Design Time Tools)、运行时(Runtime);并谈论了有哪些软件开发商正在以什么样的方式使用 VSTA,怎么获得 VSTA 的使用授权,怎么把 VSTA 集成到现有的托管/非托管应用程序中。

  去年 VSTA 1.0 SDK 发布之前,我所在的团队担负了不少的测试工作,所以在此力挺 VSTA 和 Naveen Yajaman!

  收听地址:http://www.dotnetrocks.com/default.aspx?showNum=295

  下载 VSTA 1.0 SDK:http://www.microsoft.com/downloads/details.aspx?FamilyID=7C2EA8AE-E051-449A-9051-3A351BF27B7F&displaylang=en

posted @ | Feedback (1) | Filed Under [ VSTA 资源 ]

Monday, December 03, 2007

前言:TechEd 2008 回来之后,就一直计划着写一些关于 VSTO 2008 的东西。在 TechEd,我接触了一些希望使用 VSTO 做 Office 平台开发的业界同仁,发现很多朋友对 VSTO 还不是那么了解,所以在这次的《探索 VSTO 2008》系列里面,我会从最简单的内容写起。第一篇就是关于开发环境的设置和熟悉。后续的会有各种控件、组件、对象的使用,数据绑定,发布,安全性等各方面的专题。我希望每一篇都保持简短,保证大家有耐心看完然后快速上手实验。如果有写得不详细的地方,可以留言给我,保证有问必答。

  Visual Studio 2008 宣布 RTM 也有那么几天了,相信不少微软技术发烧友早就迫不及待地从 MSDN Subscription 网站下载了火热出炉的光盘镜像。如果您没有 MSDN Subscription 也没关系,您可以到下列地址下载 90 天试用版本:http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx。注意,要使用 Visual Studio 2008 做 Office 平台开发,您必须安装 Visual Studio 2008 Professional 或者更高的 SKU,VSTO 目前还没有可以免费使用的 Express 版本(不过说不定哪天就有了哦)。

  接下来我们看看怎么构建一个学习 VSTO 的实验环境。

  首先如果条件允许,可以安装一个干净的系统。如果内存、硬盘空间足够,可以用虚拟机,至少分配 512MB 内存。操作系统可以用 Windows XP / Windows Vista 或者 Windows Server 2003。操作系统搞定之后,我推荐的安装顺序是:先安装 .NET Framework 2.0(如果是 Windows Vista 则跳过此步),接着用 Windows Update 把所有系统更新装好,然后再安装 2007 Office 系统套件,要确保安装其中的 .NET 编程支持。最后安装 Visual Studio 2008,确保 VSTO 安装组件。所有这些准备工作如果顺利的话,大约一个上午就可以完成。

确保.NET 编程支持的安装

确保VSTO组件的安装

  好了,迫不及待打开 Visual Studio 2008 的界面,创建新工程。VSTO 2008 项目模板在“新建工程”的对话框中有三种地方可以找到:

  • C# 或者 Visual Basic 语言节点,可以找到最常用的 Word、Excel、Outlook 模板
  • Office 节点,可以找到所有的 VSTO 模板,其中的 2003、2007 节点则根据 Office 版本进行了区分
  • Workflow 节点,可以找到 SharePoint 2007 工作流模板

语言节点的常用VSTO模板

工作流节点的SharePoint模板

  由于 Visual Studio 2008 兼容基于 .NET 2.0 至 3.5 的开发,所以在“新建工程”的对话框中我们可以看到有一个选择 .NET Framework 版本的下拉列表。这个列表对 VSTO 的影响在于对 Office 版本的支持上。如果我们需要开发支持 2007 Office 系统的项目,就必须选择 3.5 版本的 .NET Framework,因为这些模板用到了很多新版本框架的特性。如果只是开发支持 2003 Office 系统的项目,那么选择 2.0 版本的 .NET Framework 也可以。

.NET Framework 3.5 支持所有 VSTO 工程类型

.NET Framework 2.0 只支持 Office 2003 的 VSTO 工程

  选择一个 Word 2007 Document 的工程模板,第一次创建某个 Office 应用程序的工程,可能会出现一个信息框,要求启用 VBA 访问,这个时候必须选择确定,否则就不能继续了。这个选项也可以手工在 Office 应用程序的“信任中心”控制。

允许 VBA 访问

  完成创建工程向导之后,我们就看到了熟悉的开发界面。和 WinForm 应用程序开发不同的是,设计器里面是个实实在在的 Word 环境。在工具栏里面,除了标准的 Windows Forms 控件、组件,我们还可以看到 VSTO 为 Word 而定制的控件——Content Control(内容控件)。在后面的专题中,我会专门用一集的时间介绍这些内容控件的功能和使用方法。

  在结束之前,我们再一起看看一个典型的 Word 文档工程用到了哪些程序集——要知其所以然。打开项目属性页面,点击“引用”选项卡。图中用记号笔划出来的那些程序集就是一个典型 VSTO Word 文档项目所必须的程序集。对这个有所了解在今后开发当中解决问题可能有所帮助。

一个典型Word文档工程的程序集引用

  好了,今天的开篇就到这里了。大家在动手实验的过程中有什么问题,或者希望我接下来写 VSTO 哪方面的东西,请一定要留言告诉我!

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

Monday, November 12, 2007

我在北京 TechEd 2007 讲的课程,PowerPoint 幻灯片可以在此下载

接下来的几个星期里,我将陆续把这次课程的内容以 Blog 的形式在博客堂发布(并且加以扩展),以帮助对 VSTO 感兴趣的朋友们尽快上手这个最酷的 Office 平台开发工具。

希望今后可以看到更多使用 VSTO 开发的解决方案!

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