Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Actualizar proyectos de Excel y Word para migrarlos a .NET Framework 4 o .NET Framework 4.5

Si tiene un proyecto de excel o word en el que usa cualquiera de las características, debe modificar el código si el marco de destino se cambia .NET Framework 4 o a .NET Framework 4.5:

También debe quitar Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute y las referencias a la clase de Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy de los proyectos de excel redestinados a .NET Framework 4 o a .NET Framework 4.5. Visual Studio no quita este atributo o la referencia de la clase.

Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute se ha quitado de la parte de Visual Studio 2010 Tools para Office Runtime que se utiliza para soluciones destinadas .NET Framework 4 o .NET Framework 4.5. Common Language Runtime (CLR) en .NET Framework 4 y .NET Framework 4.5 siempre pasa el identificador de configuración regional 1033 al modelo de objetos de Excel, y puede utilizar ya no este atributo para deshabilitar este comportamiento. Para obtener más información, vea Globalización y localización de las soluciones de Excel.

Para quitar ExcelLocale1033Attribute

  1. Con el proyecto abierto en Visual Studio, abra el Explorador de soluciones.

  2. Bajo el nodo Propiedades (para C#) o el nodo Mi proyecto (para Visual Basic), haga doble clic en el archivo de código AssemblyInfo de modo que se abra en el editor de código.

    Nota Nota

    Para ver el archivo de código AssemblyInfo en los proyectos de Visual Basic, haga clic en el botón Mostrar todos los archivos del Explorador de soluciones.

  3. Busque el atributo Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute y quítelo del archivo o márquelo como comentario.

    <Assembly: ExcelLocale1033Proxy(True)>
    

    [assembly: ExcelLocale1033Proxy(true)]
    

Proyectos creados mediante Microsoft Visual Studio 2005 Tools for the Microsoft Office System crean instancias del objeto de Excel Microsoft.Office.Interop.Excel.Application mediante la clase de Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy. Esta clase se ha quitado de la parte de Visual Studio 2010 Tools para Office Runtime que se utiliza para soluciones destinadas .NET Framework 4 o .NET Framework 4.5. Por lo tanto, debe quitar o marcar como comentario la línea de código que haga referencia a esta clase.

Para quitar la referencia a la clase de ExcelLocal1033Proxy

  1. Abra el proyecto en Visual Studio, y abra Explorador de soluciones.

  2. En Explorador de soluciones, abra el menú contextual para ThisAddin.cs (para C#) o ThisAddin.vb (para Visual Basic) y, a continuación ver código.

  3. En el editor de código, en la región de VSTO generated code, quite o marque como comentario la siguiente línea de código.

    Me.Application = CType(Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Wrap(GetType(Excel.Application), Me.Application), Excel.Application)
    
    

    this.Application = (Excel.Application)Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Wrap(typeof(Excel.Application), this.Application);
    
    

En proyectos destinados a .NET Framework 3.5, los métodos HasVstoObject y GetVstoObject están disponibles como métodos de extensión en uno de los siguientes objetos nativos del proyecto: Microsoft.Office.Interop.Word.Document, Microsoft.Office.Interop.Excel.Workbook, Microsoft.Office.Interop.Excel.Worksheet o Microsoft.Office.Interop.Excel.ListObject. Al llamar a estos métodos, no necesita pasar ningún parámetro. En el siguiente ejemplo de código, se muestra cómo utilizar el método GetVstoObject en un complemento de Word destinado a .NET Framework 3.5.

Microsoft.Office.Tools.Word.Document vstoDocument = 
    Globals.ThisAddIn.Application.ActiveDocument.GetVstoObject();

En proyectos destinados .NET Framework 4 o .NET Framework 4.5, debe modificar el código para obtener acceso a estos métodos en una de las siguientes maneras:

  • Puede seguir obteniendo acceso a estos métodos como métodos de extensión en los objetos Microsoft.Office.Interop.Word.Document, Microsoft.Office.Interop.Excel.Workbook, Microsoft.Office.Interop.Excel.ListObject o Microsoft.Office.Interop.Excel.Worksheet. Sin embargo, deberá pasar a estos métodos el objeto devuelto por la propiedad Globals.Factory.

    Dim vstoDocument as Microsoft.Office.Tools.Word.Document = _
        Globals.ThisAddIn.Application.ActiveDocument.GetVstoObject(Globals.Factory)
    

    Microsoft.Office.Tools.Word.Document vstoDocument = 
        Globals.ThisAddIn.Application.ActiveDocument.GetVstoObject(Globals.Factory);
    
  • Asimismo, puede obtener acceso a estos métodos en el objeto devuelto por la propiedad Globals.Factory. En este caso, deberá pasar al método el objeto nativo que desee extender.

    Dim vstoDocument as Microsoft.Office.Tools.Word.Document = _
        Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveDocument)
    

    Microsoft.Office.Tools.Word.Document vstoDocument = 
        Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveDocument);
    

Para obtener más información, vea Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución.

En proyectos de nivel de documento destinados a .NET Framework 3.5, las clases generadas en los proyectos se derivan de las siguientes clases del Runtime de Microsoft Visual Studio Tools para Office:

En proyectos destinados .NET Framework 4 o .NET Framework 4.5, los tipos de Runtime de Microsoft Visual Studio Tools para Office enumerado anteriormente son interfaces, en lugar de clases. Las clases generadas en proyectos destinados .NET Framework 4 o .NET Framework 4.5 deriva de las siguientes clases nuevas de Runtime de Microsoft Visual Studio Tools para Office:

Si el código del proyecto hace referencia a una instancia de una de las clases generadas como clase base de la que se deriva, deberá modificar el código.

Por ejemplo, en un proyecto de libro de Excel destinado a .NET Framework 3.5, puede haber un método auxiliar que use instancias de las clases Sheetn generadas en el proyecto.

private void DoSomethingToSheet(Microsoft.Office.Tools.Excel.Worksheet worksheet)
{
    // Do something to the worksheet object.
}

Si cambia el destino del proyecto a .NET Framework 4 o a .NET Framework 4.5, deberá realizar uno de los siguientes cambios en el código:

Debe agregar una instrucción using (C#) o Imports (Visual Basic) para el espacio de nombres Microsoft.Office.Tools.Excel o Microsoft.Office.Tools.Word al principio de cualquier archivo de código que use la propiedad Controls para agregar controles de Windows Forms al documento o la hoja de cálculo mediante programación.

En proyectos destinados a .NET Framework 3.5, los métodos que agregan controles de Windows Forms (por ejemplo, el método AddButton) se definen en las clases Microsoft.Office.Tools.Word.ControlCollection y Microsoft.Office.Tools.Excel.ControlCollection.

En proyectos destinados .NET Framework 4 o .NET Framework 4.5, estos métodos son métodos de extensión que están disponibles en la propiedad de Controls. Para usar estos métodos de extensión, el archivo de código en el que se usan los métodos debe tener una instrucción using o Imports para el espacio de nombres Microsoft.Office.Tools.Excel o Microsoft.Office.Tools.Word. Esta instrucción se genera automáticamente en los nuevos proyectos destinados .NET Framework 4 o .NET Framework 4.5. Sin embargo, no se agrega automáticamente en el caso de los proyectos destinados a .NET Framework 3.5, por lo que es necesario agregarla cuando se modifica el destino del proyecto.

Para obtener más información, vea Agregar controles a documentos de Office en tiempo de ejecución.

En proyectos destinados a .NET Framework 3.5, los eventos de los controles de contenido de Word los controla el delegado EventHandler<TEventArgs> genérico. En proyectos destinados .NET Framework 4 o .NET Framework 4.5, estos eventos controla otros delegados.

La tabla siguiente se enumeran los eventos de control de contenido de word y los delegados asociados a ellos en proyectos destinados .NET Framework 4 o .NET Framework 4.5.

En proyectos destinados a .NET Framework 3.5, puede agregar controles personalizados (por ejemplo, controles de usuario de Windows Forms) a un documento o una hoja de cálculo utilizando las clases Microsoft.Office.Tools.Word.OLEControl y Microsoft.Office.Tools.Excel.OLEObject.

En proyectos destinados .NET Framework 4 o .NET Framework 4.5, estas clases se han reemplazado por las interfaces de Microsoft.Office.Tools.Excel.ControlSite y de Microsoft.Office.Tools.Word.ControlSite. Debe modificar el código que haga referencia a Microsoft.Office.Tools.Excel.OLEObject y Microsoft.Office.Tools.Word.OLEControl de modo que haga referencia a Microsoft.Office.Tools.Excel.ControlSite y Microsoft.Office.Tools.Word.ControlSite. Aparte de los nuevos nombres, estos controles se comportan de la misma manera que en los proyectos destinados a .NET Framework 3.5.

Para obtener más información, vea Agregar controles a documentos de Office en tiempo de ejecución.

En proyectos destinados a .NET Framework 3.5, puede utilizar la propiedad Item(Object) property of the Microsoft.Office.Tools.Word.Document.Controls o Microsoft.Office.Tools.Excel.Worksheet.Controls para determinar si un documento o una hoja de cálculo tiene un control concreto.

En proyectos destinados .NET Framework 4 o .NET Framework 4.5, la propiedad de Item(Object) se ha quitado de estas colecciones. Para determinar si un documento o una hoja de cálculo contiene un control concreto, utilice el método Contains(System.Object) de la colección Document.Controls o Worksheet.Controls.

Para obtener más información sobre la colección Controls de documentos y hojas de cálculo, vea Agregar controles a documentos de Office en tiempo de ejecución.

En proyectos destinados a .NET Framework 3.5, hay varios tipos de colección en Runtime de Microsoft Visual Studio Tools para Office que derivan de la clase CollectionBase, por ejemplo Microsoft.Office.Tools.SmartTagCollection, Microsoft.Office.Tools.Excel.ControlCollection y Microsoft.Office.Tools.Word.ControlCollection.

En proyectos destinados .NET Framework 4 o .NET Framework 4.5, estos tipos de colección son interfaces que no se derivan de CollectionBase. Algunos miembros ya no están disponibles en estos tipos de colección, como Capacity, List e InnerList.

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.