2012-10-10 24 views
7

Esta es la primera vez que uso .NET para crear un complemento de nivel de aplicación para Outlook. Al usar un tutorial anoté un código y se compiló con éxito, pero no pude depurar el código. Al depurar un cuadro de alerta aparece diciendo:No se puede depurar el complemento de nivel de aplicación para Outlook

No puede ejecutar o depurar este proyecto porque la versión requerida de la aplicación de Microsoft no está instalada.

estoy usando Visual Studio 2010 yMS Office 2007. Para depurar el código, ¿qué debo hacer? ¿Puedo hacer algún cambio en el código para poder depurarlo?

Este es el código

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml.Linq; 
using Outlook = Microsoft.Office.Interop.Outlook; 
using Office = Microsoft.Office.Core; 
using Microsoft.Office.Interop.Outlook; 
namespace OutlookAddIn1 
{ 

    public partial class ThisAddIn 
    { 
     Outlook.Inspectors inspectors; 
     event InspectorsEvents_NewInspectorEventHandler NewInspector; 


     private void ThisAddIn_Startup(object sender, System.EventArgs e) 
     { 
      inspectors = this.Application.Inspectors; 
      inspectors.NewInspector += 
      new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector); 
     } 

     private void ThisAddIn_Shutdown(object sender, System.EventArgs e) 
     { 

     } 
     void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector) 
     { 
      Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem; 
      if (mailItem != null) 
      { 
       if (mailItem.EntryID == null) 
       { 
        mailItem.Subject = "This text was added by using code"; 
        mailItem.Body = "This text was added by using code"; 
       } 

      } 
     } 
     #region VSTO generated code 

     /// <summary> 
     /// Required method for Designer support - do not modify 
     /// the contents of this method with the code editor. 
     /// </summary> 
     private void InternalStartup() 
     { 
      this.Startup += new System.EventHandler(ThisAddIn_Startup); 
      this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); 
     } 

     #endregion 
    } 
} 

Respuesta

18

La cuestión no es su código - se trata de una mala configuración del archivo de proyecto y de qué versión de MS Office que haya instalado. Ver related SO post regarding editing DebugInfoExeName in the csproj to match the proper Office version.

Office Version | Version Number 
---------------+----------------- 
    2007  | 12.0 
    2010  | 14.0 
    2013  | 15.0 
    2016  | 16.0 

Para MS Office 2007, el archivo de proyecto DebugInfoExeName debería ser:

DebugInfoExeName = "# Software \ Microsoft \ Office \ 12.0 \ Outlook \ InstallRoot \ ruta # outlook.exe"

+1

Para MS Office 2016, el número de versión es "16.0". –

Cuestiones relacionadas