Walkthrough: Creating Your First Application-Level Add-in for Project
This walkthrough shows you how to create an application-level add-in for Microsoft Office Project. The features that you create in this kind of solution are available to the application itself, regardless of which projects are open. For more information, see Office Solutions Development Overview.
Applies to: The information in this topic applies to application-level projects for Project 2013 and Project 2010. For more information, see Features Available by Office Application and Project Type.
This walkthrough illustrates the following tasks:
Creating a Project add-in project.
Writing code that uses the object model of Project to add a task to a new project.
Building and running the project to test it.
Cleaning up the completed project so that the add-in no longer runs automatically on your development computer.
Note
Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. The Visual Studio edition that you have and the settings that you use determine these elements. For more information, see Visual Studio Settings.
Prerequisites
You need the following components to complete this walkthrough:
An edition of Visual Studio 2012 that includes the Microsoft Office developer tools. For more information, see Configuring a Computer to Develop Office Solutions.
Project 2013 or Project 2010.
Creating the Project
To create a new project in Visual Studio
Start Visual Studio.
On the File menu, point to New, and then click Project.
In the templates pane, expand Visual C# or Visual Basic, and then expand Office/SharePoint.
Under the expanded Office/SharePoint node, select the Office Add-ins node.
In the list of project templates, select Project 2010 Add-in or Project 2013 Add-in.
In the Name box, type FirstProjectAddIn.
Click OK.
Visual Studio creates the FirstProjectAddIn project and opens the ThisAddIn code file in the editor.
Writing Code that Adds a New Task to a Project
Next, add code to the ThisAddIn code file. The new code uses the object model of Project to add a new task to a project. By default, the ThisAddIn code file contains the following generated code:
A partial definition of the ThisAddIn class. This class provides an entry point for your code and provides access to the object model of Project. For more information, see Programming Application-Level Add-Ins. The remainder of the ThisAddIn class is defined in a hidden code file that you should not modify.
The ThisAddIn_Startup and ThisAddIn_Shutdown event handlers. These event handlers are called when Project loads and unloads your add-in. Use these event handlers to initialize your add-in when it is loaded, and to clean up resources used by your add-in when it is unloaded. For more information, see Events in Office Projects.
To add a task to a new project
In the ThisAddIn code file, add the following code to the ThisAddIn class. This code defines an event handler for the NewProject event of the Microsoft.Office.Interop.MSProject.Application class.
When the user creates a new project, this event handler adds a task to the project.
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"; }
To modify the project, this code example use the following objects:
The Application field of the ThisAddIn class. The Application field returns an Microsoft.Office.Interop.MSProject.Application object, which represents the current instance of Project.
The pj parameter of the event handler for the NewProject event. The pj parameter is a Microsoft.Office.Interop.MSProject.Project object, which represents the project. For more information, see Project Solutions.
If you are using C#, add the following code to the ThisAddIn_Startup event handler. This code connects the Application_Newproject event handler with the NewProject event.
this.Application.NewProject += new Microsoft.Office.Interop.MSProject._EProjectApp2_NewProjectEventHandler(Application_NewProject);
Testing the Project
When you build and run the project, verify that the new task appears in the resulting new project.
To test the project
Press F5 to build and run your project. Microsoft Project starts and automatically opens a new blank project.
When you build the project, the code is compiled into an assembly that is included in the build output folder for the project. Visual Studio also creates a set of registry entries that enable Project to discover and load the add-in, and it configures the security settings on the development computer to enable the add-in to run. For more information, see Office Solution Build Process Overview.
Verify that a new task is added to the blank project.
Verify that the following text appears in the Task Name field of the task.
This text was added by using code.
Close Microsoft Project.
Cleaning up the Project
When you finish developing a project, remove the add-in assembly, registry entries, and security settings from your development computer. Otherwise, the add-in will run every time you open Microsoft Project on the development computer.
To clean up your project
- In Visual Studio, on the Build menu, click Clean Solution.
Next Steps
Now that you have created a basic application-level add-in for Project, you can learn more about how to develop add-ins from these topics:
General programming tasks that you can perform in add-ins for Project: Programming Application-Level Add-Ins.
Using the object model of Project: Project Solutions.
Building and debugging application-level add-ins for Project: Building Office Solutions.
Deploying application-level add-ins for Project: Deploying Office Solutions.