Programmatically access a Microsoft Project (MPP) file from C#

The MPXJ (mpxj.sf.net) library comes in both Java and .Net flavours and will allow you to read and write multiple Microsoft Project file formats using a single consistent API. I am aware of commercial products which use both the Java and the .Net versions of MPXJ without any issues.

Disclaimer: I'm the maintainer of MPXJ.


You may use Aspose.Tasks for .NET. This component allows you to work with Microsoft Project files. It doesn't require MS Office to be installed on the server, unlike Office Interop. The API is very simple and easy to use. And it provides a rich set of features to read, edit, write, and convert MPP files.

This component is a normal .NET assembly which can be used with your .NET applications. It works on any Windows OS and in 32/64-bit environments as well.

Disclosure: I work as developer evangelist at Aspose.


Here are the options:

  1. Interop (messy and horribly slow for large projects)
  2. Save project in XML and work with it (messy)
  3. Save project in the database (that's not publishing and it is available for project 2003 only - see ODBC option while saving). I've seen it being used a lot in the integration scenarios
  4. Projette (commercial, $10 per license)
  5. ILog Project Viewer (also commercial)

Tags:

C#

Ms Project