Given the fact that NetOffice supports all recent versions of Office, a mechanism for determining at designtime and runtime which versions support the functionality in question is needed. Therefore, all entities in NetOffice are annotated with the SupportByLibrary attribute and XML source documentation. Take a look at the following code excerpt:

///<summary>
/// DispatchInterface _Application SupportByLibrary Excel, 09,10,11,12,14
///</summary>
[SupportByLibrary("Excel", 09,10,11,12,14)]
[EntityTypeAttribute(EntityType.IsDispatchInterface)]
public class _Application : COMObject
{
	/// <summary>
	/// SupportByLibrary Excel 09, 10, 11, 12, 14
	/// </summary>
	[SupportByLibrary("Excel", 09,10,11,12,14)]
	public bool Visible { get; set; }

	/// <summary>
	/// SupportByLibrary Excel 12, 14
	/// </summary>
	[SupportByLibrary("Excel", 12,14)]
	public bool EnableLivePreview { get; set; }

	/// <summary>
	/// SupportByLibrary Excel 14
	/// </summary>
	[SupportByLibrary("Excel", 14)]
	public bool PrintCommunication { get; set; }
}

You can see that the class _Application is present in all supported versions, just like its property Visible. The property EnableLivePreview is only offered in versions 12 and 14, the property PrintCommunication only in version 14. All Classes, Properties, Methoden, Enums, Enum Values, etc. are annotated this way. When you have created an assembly which is using NetOffice, you can check your assembly with the tool NetOffice.DeveloperToolbox with which Office versions your assembly is compatible.

Following you can see an Overview of the different version attributes.

  Version Attribute Type Library
Office      
  Office 2000 09 Microsoft Office   9.0 Object Library
  Office 2002 10 Microsoft Office  10.0 Object Library
  Office 2003 11 Microsoft Office  11.0 Object Library
  Office 2007 12 Microsoft Office  12.0 Object Library
  Office 2010 14 Microsoft Office  14.0 Object Library
       
Excel      
  Excel 2000 09 Microsoft Excel  9.0 Object Library
  Excel 2002 10 Microsoft Excel  10.0 Object Library
  Excel 2003 11 Microsoft Excel  11.0 Object Library
  Excel 2007 12 Microsoft Excel  12.0 Object Library
  Excel 2010 14 Microsoft Excel  14.0 Object Library
       
Word      
  Word 2000 09 Microsoft Word  9.0 Object Library
  Word 2002 10 Microsoft Word 10.0 Object Library
  Word 2003 11 Microsoft Word 11.0 Object Library
  Word 2007 12 Microsoft Word 12.0 Object Library
  Word 2010 14 Microsoft Word 14.0 Object Library
       
Outlook      
  Outlook 2000 09 Microsoft Outlook  9.0 Object Library
  Outlook 2002 10 Microsoft Outlook 10.0 Object Library
  Outlook 2003 11 Microsoft Outlook 11.0 Object Library
  Outlook 2007 12 Microsoft Outlook 12.0 Object Library
  Outlook 2010 14 Microsoft Outlook 14.0 Object Library
       
PowerPoint      
  PowerPoint 2000 09 Microsoft PowerPoint  9.0 Object Library
  PowerPoint 2002 10 Microsoft PowerPoint 10.0 Object Library
  PowerPoint 2003 11 Microsoft PowerPoint 11.0 Object Library
  PowerPoint 2007 12 Microsoft PowerPoint 12.0 Object Library
  PowerPoint 2010 14 Microsoft PowerPoint 14.0 Object Library
       
Access      
  Access 2000 09 Microsoft Access  9.0 Object Library
  Access 2002 10 Microsoft Access 10.0 Object Library
  Access 2003 11 Microsoft Access 11.0 Object Library
  Access 2007 12 Microsoft Access 12.0 Object Library
  Access 2010 14 Microsoft Access 14.0 Object Library

Last edited Oct 21, 2011 at 1:55 PM by SebastianDotNet, version 11