演练:创建您的第一个 Project 应用程序级外接程序
本演练演示如何创建 Microsoft Office Project 的应用程序级外接程序。 您在这种类型的解决方案中创建的功能对应用程序本身可用,而与所打开的项目无关。 有关更多信息,请参见 Office 解决方案开发概述。
**适用于:**本主题中的信息适用于 Project 2007 和 Project 2010 的应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
本演练阐释了以下任务:
创建 Project 外接程序项目。
编写使用 Project 的对象模型将任务添加到新项目的代码。
生成并运行此项目以对它进行测试。
清理已完成的项目,使该外接程序在开发计算机上不再自动运行。
提示
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置。
系统必备
您需要以下组件来完成本演练:
-
Visual Studio 2010 的一个版本,其中包含 Microsoft Office 开发工具。有关更多信息,请参见[将计算机配置为开发 Office 解决方案](bb398242\(v=vs.100\).md)。
- Microsoft Office Project 2007 或 Project 2010。
创建项目
在 Visual Studio 中创建新项目
启动 Visual Studio。
在**“文件”菜单上指向“新建”,再单击“项目”**。
在“模板”窗格中,展开**“Visual C#”或“Visual Basic”,然后展开“Office”**。
在展开的**“Office”节点下,选择“2007”(如果已安装 Project 2007),或选择“2010”**节点(如果已安装 Project 2010)。
在项目模板列表中,选择**“Project 2007 外接程序”或“Project 2010 外接程序”**。
在**“名称”**框中键入 FirstProjectAddIn。
单击**“确定”**。
Visual Studio 即会创建 FirstProjectAddIn 项目并在编辑器中打开**“ThisAddIn”**代码文件。
编写用于将新任务添加到项目的代码
接下来,将代码添加到 ThisAddIn 代码文件中。 此新代码使用 Project 的对象模型将新任务添加到项目。 默认情况下,ThisAddIn 代码文件包含所生成的以下代码:
ThisAddIn 类的分部定义。 此类提供了代码的入口点,并提供了对 Project 对象模型的访问。 有关更多信息,请参见应用程序级外接程序编程。 ThisAddIn 类的其余部分是在一个隐藏的代码文件中定义的,您不应修改此代码文件。
ThisAddIn_Startup 和 ThisAddIn_Shutdown 事件处理程序。 当 Project 加载和卸载外接程序时会调用这些事件处理程序。 使用这些事件处理程序,可在加载外接程序时对外接程序进行初始化,并在卸载外接程序时清理外接程序所使用的资源。 有关更多信息,请参见 Office 项目中的事件。
向新项目中添加任务
在 ThisAddIn 代码文件中,将下面的代码添加到 ThisAddIn 类中。 此代码为 Microsoft.Office.Interop.MSProject.Application 类的 NewProject 事件定义一个事件处理程序。
用户创建新项目时,此事件处理程序将一个任务添加到该项目。
Private Sub Application_NewProject(ByVal pj As Microsoft.Office.Interop.MSProject.Project) Handles Application.NewProject Dim newTask As MSProject.Task newTask = pj.Tasks.Add _ ("This text was added by using code") newTask.Start = DateTime.Now newTask.Duration = "3" newTask.ResourceNames = "Rob Caron, Kelly Krout" End Sub
void Application_NewProject(Microsoft.Office.Interop.MSProject.Project pj) { MSProject.Task newTask = pj.Tasks.Add ("This text was added by using code", missing); newTask.Start = DateTime.Now; newTask.Duration = "3"; newTask.ResourceNames = "Rob Caron, Kelly Krout"; }
为修改此项目,该代码示例使用以下对象:
ThisAddIn 类的 Application 字段。 Application 字段返回一个 Microsoft.Office.Interop.MSProject.Application 对象,该对象表示 Project 的当前实例。
NewProject 事件的事件处理程序的 pj 参数。 pj 参数是一个 Microsoft.Office.Interop.MSProject.Project 对象,用于表示该项目。 有关更多信息,请参见 项目解决方案。
如果您使用的是 C#,请将以下代码添加到 ThisAddIn_Startup 事件处理程序中。 此代码将 Application_Newproject 事件处理程序与 NewProject 事件连接起来。
this.Application.NewProject += new Microsoft.Office.Interop.MSProject._EProjectApp2_NewProjectEventHandler(Application_NewProject);
测试项目
在生成和运行项目时,请验证新任务是否显示在生成的新项目中。
测试项目
按**“F5”**生成并运行项目。 Microsoft Project 启动并自动打开一个新的空白项目。
生成项目时,代码会编译成一个程序集,此程序集包含在项目的生成输出文件夹中。 Visual Studio 还会创建一组注册表项,通过这些注册表项,Project 能够发现和加载此外接程序;Visual Studio 还将开发计算机上的安全设置配置为允许此外接程序运行。 有关更多信息,请参见 Office 解决方案生成过程概述。
验证新任务是否添加到此空白项目中。
验证该任务的**“任务名称”**字段中是否显示下面的文本。
This text was added by using code.
关闭 Microsoft Project。
清理项目
完成项目的开发后,请从开发计算机上移除外接程序程序集、注册表项和安全设置。 否则,每次在开发计算机上打开 Microsoft Project 时,此外接程序都将运行。
清理项目
- 在 Visual Studio 的**“生成”菜单中,单击“清理解决方案”**。
后续步骤
您已经创建了一个基本的 Project 应用程序级外接程序,现在可以从下面这些主题中了解有关如何开发外接程序的更多内容:
可在 Project 外接程序中执行的常规编程任务:应用程序级外接程序编程。
使用 Project 的对象模型:项目解决方案。
生成和调试 Project 的应用程序级外接程序:生成和调试 Office 解决方案。
部署 Project 的应用程序级外接程序:部署 Office 解决方案。