Solución de problemas en soluciones de Office
Se aplica a: Visual Studio
En este artículo se presenta cómo solucionar problemas que pueden surgir al realizar diferentes tareas al desarrollar soluciones de Office en Visual Studio。
Problemas al crear, actualizar y abrir proyectos
Es posible que encuentre los siguientes problemas al crear o abrir proyectos de Office.
Problema 1: No se puede crear el proyecto
Si se produce un error al intentar crear o abrir un proyecto de Office, pero Visual Studio no tiene suficiente información para determinar la causa, intente cerrar el proyecto, salir de Visual Studio e iniciar de nuevo.
Si intenta crear un proyecto de nivel de documento, es posible que otro documento con el mismo nombre que el documento del nuevo proyecto ya esté abierto en Excel o Word. Asegúrese de que están cerradas todas las demás instancias de Excel o Word.
Problema 2: Las propiedades de control se pierden al crear un nuevo proyecto basado en un documento de un proyecto existente
Si crea un nuevo proyecto de Office basado en un documento de un proyecto existente, las propiedades de los controles que se encuentran en el documento no se copian en el nuevo proyecto. Restablezca las propiedades de los controles preexistentes manualmente. Como alternativa, puede conservar las propiedades del control creando una copia del proyecto existente en lugar de crear un proyecto nuevo, o cargando el proyecto existente en una solución nueva (en el diseñador) para copiar y pegar los controles del documento existente en el documento nuevo.
Problema 3: Errores al crear un proyecto de libro de Excel basado en un libro existente
Si crea un nuevo proyecto de libro de Excel basado en un libro existente, es posible que vea una combinación de los siguientes errores.
- En Excel: "Advertencia sobre confidencialidad: este documento contiene macros, controles ActiveX, información sobre paquetes de expansión XML o componentes web. Estos pueden incluir información personal que no se puede quitar por el Inspector de documento".
- En Visual Studio: "El diseñador no se cargó correctamente".
Estos errores pueden producirse al intentar crear un proyecto basado en un libro cuya información personal se quitó mediante el Inspector de documento. Para evitar este problema, realice los pasos siguientes antes de crear el proyecto:
- Abra el libro en Excel.
- En Excel, abra el Centro de confianza.
- En la pestaña Opciones de privacidad, desactive la casilla Quitar información personal de las propiedades del archivo al guardar .
- Guarde el libro y cierre Excel.
Problema 4: No se puede abrir un proyecto después de la migración
Después de migrar una solución de Office a Microsoft Office 2010, el proyecto no se puede abrir en un equipo de desarrollo con solo el sistema de Microsoft Office 2007 instalado. Es posible que vea los siguientes errores.
- "Uno o varios proyectos de la solución no se cargaron correctamente. Consulte la ventana de salida para obtener más información".
- "No se puede crear el proyecto porque la aplicación asociada a este tipo de proyecto no está instalada en el equipo. Debe instalar la aplicación de Microsoft Office asociada a este tipo de proyecto".
Para resolver este problema, edite el archivo .vbproj o .csproj . Para un proyecto de Word, reemplace por HostPackage="{763FDC83-64E5-4651-AC9B-28C4FEB985A1}"
HostPackage="{6CE98B71-D55A-4305-87A8-0D6E368D9600}"
. Para un proyecto de Excel, reemplace por HostPackage="{B284B16A-C42C-4438-BDCD-B72F4AC43CFB}"
HostPackage="{825100CF-0BA7-47EA-A084-DCF3308DAF74}"
. Para un proyecto de Outlook, reemplace por HostPackage="{D2B20FF5-A6E5-47E1-90E8-463C6860CB05}"
HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}"
.
Como alternativa, asegúrese de que los proyectos migrados solo se abren en equipos de desarrollo con Microsoft Office 2010 instalado.
Problema 5: Errores en proyectos de nivel de documento de Office 2003 actualizados que contienen controles de Windows Forms
Si actualiza un proyecto de nivel de documento de Microsoft Office 2003 y el documento contiene controles de Windows Forms, es posible que el proyecto actualizado tenga errores de compilación o tiempo de ejecución. Para evitar este problema, instale Visual Studio 2005 Tools para Office Second Edition Runtime en el equipo de desarrollo antes de actualizar el proyecto. Esta versión del runtime está disponible como paquete redistribuible en el Centro de descarga de Microsoft en Microsoft Visual Studio 2005 Tools para Office Second Edition Runtime (VSTO 2005 SE) (x86).
Después de finalizar la actualización del proyecto, puede desinstalar visual Studio 2005 Tools for Office Second Edition Runtime desde el equipo de desarrollo si no lo usan otras soluciones de Office.
Problemas al usar los diseñadores
Es posible que encuentre los siguientes problemas al trabajar con el documento, el libro o el diseñador de hojas de cálculo en proyectos de nivel de documento.
Problema 1: El diseñador no se pudo cargar correctamente
Visual Studio no puede abrir el diseñador en los casos siguientes:
- Excel o Word ya están abiertos y muestran un cuadro de diálogo modal. Para abrir el diseñador, compruebe si Excel o Word tienen abierto un cuadro de diálogo modal y cierre todos los cuadros de diálogo modales que estén abiertos. Si no hay ningún cuadro de diálogo modal abierto, podría ser necesaria otra acción para que Excel o Word respondan.
- El proyecto se está depurando. Para abrir el diseñador, detenga o finalice la depuración.
- Un complemento de VSTO de Excel que está instalado en el equipo de desarrollo muestra un cuadro de diálogo cuando se inicia Excel. Para crear un proyecto de nivel de documento de Excel, primero debe deshabilitar el complemento de VSTO.
Problema 2: Los controles aparecen como rectángulos negros en el documento o hoja de cálculo
Si agrupa los controles en un documento o una hoja de cálculo, Visual Studio ya no los reconoce. No se puede acceder a los controles agrupados en la ventana Propiedades y aparecen como rectángulos negros en el documento o hoja de cálculo. Debe desagrupar los controles para restaurar su funcionalidad.
Problema 3: Los controles de una plantilla de Word no están visibles en Visual Studio
Si abre una plantilla de Word en el diseñador de Visual Studio, es posible que los controles de la plantilla que no estén en línea con texto no estén visibles. Esto se debe a que Visual Studio abre plantillas de Word en la vista Normal . Para ver los controles, seleccione el menú Ver , seleccione Vista de Word de Microsoft Office y, a continuación, seleccione Diseño de impresión.
Problema 4: Insertar el comando clip art no hace nada en el diseñador de Visual Studio
Cuando Excel o Word están abiertos en el diseñador de Visual Studio, al hacer clic en el botón Clip Art de la pestaña Ilustraciones de la cinta de opciones no se abre el panel de tareas Imágenes prediseñadas . Para agregar imágenes prediseñadas, debe abrir la copia del libro o documento que se encuentra en la carpeta principal del proyecto (no en la copia que se encuentra en la carpeta \bin ) fuera de Visual Studio, agregar la imagen prediseñada y, a continuación, guardar el libro o documento.
Problemas al escribir código
Es posible que encuentre los siguientes problemas al escribir código en proyectos de Office.
Problema 1: Algunos eventos de objetos de Office no son accesibles al usar C#
En algunos casos, podría ver un error del compilador similar al siguiente al intentar acceder a un evento determinado de una instancia de un tipo de ensamblado de interoperabilidad primario (PIA) de Office en un proyecto de Visual C#.
Ambigüedad entre "Microsoft.Office.Interop.Excel._Application.NewWorkbook" y "Microsoft.Office.Interop.Excel.AppEvents_Event.NewWorkbook"
Este error significa que está intentando acceder a un evento que tiene el mismo nombre que otra propiedad o método del objeto. Para acceder al evento, debe convertir el objeto en su interfaz de eventos.
Los tipos de PIA de Office que tienen eventos implementan dos interfaces: una interfaz básica con todas las propiedades y métodos, y una interfaz de eventos que contiene los eventos expuestos por el objeto. Estas interfaces de eventos usan la convención de nomenclatura _<objectname>Events<n>Event, como AppEvents_Event y .ApplicationEvents2_Event Si no puede acceder a un evento que espera encontrar en un objeto, convierta el objeto en su interfaz de eventos.
Por ejemplo, los objetos Application tienen un evento NewWorkbook y una propiedad NewWorkbook. Para controlar el evento NewWorkbook, convierta Application a la interfaz AppEvents_Event. En el ejemplo de código siguiente se muestra cómo hacerlo desde un proyecto de nivel de documento para Excel.
private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
((Excel.AppEvents_Event)this.Application).NewWorkbook +=
new Excel.AppEvents_NewWorkbookEventHandler(ThisWorkbook_NewWorkbook);
}
void ThisWorkbook_NewWorkbook(Excel.Workbook Wb)
{
// Perform some work here.
}
Para obtener más información sobre las interfaces de eventos en los PIA de Office, vea Información general de las clases e interfaces en los ensamblados de interoperabilidad primarios de Office.
Problema 2: No se puede hacer referencia a clases pia de Office en proyectos que tienen como destino .NET Framework 4 o .NET Framework 4.5
En los proyectos que tienen como destino .NET Framework 4 o .NET Framework 4.5, el código que hace referencia a una clase definida en un PIA de Office no se compilará de forma predeterminada. Las clases de los PIA usan la convención <de nomenclatura objectname>Class, como DocumentClass y WorkbookClass. Por ejemplo, el código siguiente de un proyecto de complemento vsto de Word no se compilará.
Word.DocumentClass document = (Word.DocumentClass) Globals.ThisAddIn.Application.ActiveDocument;
Este código produce los siguientes errores de compilación:
- Visual Basic: "No se permite la referencia a la clase 'DocumentClass' cuando su ensamblado está vinculado mediante el modo No-PIA".
- Visual C#: "No se puede incrustar el tipo de interoperabilidad "Microsoft.Office.Interop.Word.DocumentClass". Use la interfaz aplicable en su lugar".
Para resolver este error, modifique el código para hacer referencia a la interfaz correspondiente. Por ejemplo, en lugar de hacer referencia a un objeto DocumentClass, haga referencia a una instancia de la interfaz Document.
Los proyectos que tienen como destino .NET Framework 4 o .NET Framework 4.5 insertan automáticamente todos los tipos de interoperabilidad de los PIA de Office de forma predeterminada. Este error de compilación se produce porque la característica de tipos de interoperabilidad insertados solo funciona con interfaces, no clases. Para obtener más información acerca de las interfaces y clases de los PIA de Office, vea Información general de las clases e interfaces en los ensamblados de interoperabilidad primarios de Office. Para obtener más información sobre la característica de tipos de interoperabilidad insertados en proyectos de Office, vea Diseño y creación de soluciones de Office.
Problema 3: No se reconocen las referencias a clases de Office
Algunos nombres de clase, por ejemplo, Application, están en varios espacios de nombres, como Microsoft.Office.Interop.Word y System.Windows.Forms. Por este motivo, la instrucción Imports/using en la parte superior de las plantillas de proyecto incluye una constante de calificación abreviada, por ejemplo:
Este uso de la instrucción Imports/using requiere que se diferencien las referencias a las clases de Office con el calificador de Word o Excel, por ejemplo:
Si usa una declaración no calificada, obtendrá errores, por ejemplo:
Aunque haya importado el espacio de nombres de Word o Excel y tenga acceso a todas las clases que contiene, debe calificar completamente todos los tipos con Word o Excel para quitar la ambigüedad del espacio de nombres.
Problemas al compilar proyectos
Es posible que encuentre los siguientes problemas al compilar proyectos de Office.
Problema 1: No se puede compilar un proyecto de nivel de documento basado en un documento con permisos restringidos
Visual Studio no puede compilar proyectos de nivel de documento si el documento tiene permisos restringidos. Si el proyecto contiene un documento que tiene permisos restringidos, el proyecto no se compilará y recibirá el siguiente mensaje en la ventana Lista de errores.
No se pudo agregar la personalización.
Si desea incluir un documento con permisos restringidos, use un documento sin restricciones mientras desarrolla y compila la solución. A continuación, aplique los permisos restringidos al documento en la ubicación de publicación después de publicar la solución.
Problema 2: Se producen errores del compilador después de eliminar un control NamedRange
Si elimina un NamedRange control de una hoja de cálculo que no es la hoja de cálculo activa en el diseñador, es posible que el código generado automáticamente no se quite del proyecto y se produzcan errores del compilador. Para asegurarse de que se quita el código, siempre debe seleccionar la hoja de cálculo que contiene el control NamedRange para convertirla en la hoja de cálculo activa antes de eliminar el control. Si el código generado automáticamente no se elimina al eliminar el control, puede hacer que el diseñador elimine el código activando la hoja de cálculo y realizando un cambio para que la hoja de cálculo se marque como modificada. Cuando vuelva a compilar el proyecto, el código se quita.
Problemas al depurar proyectos
Es posible que encuentre los siguientes problemas al depurar proyectos de Office.
Problema 1: La solicitud de desinstalación aparece al publicar e instalar una solución en el equipo de desarrollo
Cuando se depura una solución de Office, podría ver el siguiente error.
No se puede instalar la personalización porque otra versión está instalada actualmente y no se puede actualizar desde esta ubicación.
Este error indica que ha publicado e instalado previamente la solución de Office en el equipo de desarrollo. Para impedir que aparezca el mensaje, desinstale la solución desde la lista de programas instalados en el equipo antes de depurar la solución. También puede crear otra cuenta de usuario en el equipo de desarrollo para probar la instalación de la solución publicada.
Problema 2: Los proyectos de nivel de documento creados en ubicaciones de red UNC no se ejecutan desde Visual Studio
Si crea un proyecto de nivel de documento para Excel o Word en una ubicación de red UNC, debe agregar la ubicación del documento a la lista de ubicaciones de confianza en Excel o Word. De lo contrario, la personalización no se cargará al intentar ejecutar o depurar el proyecto en Visual Studio. Para obtener más información sobre las ubicaciones de confianza, consulte Concesión de confianza a documentos.
Problema 3: Los subprocesos no se detienen correctamente después de la depuración
Los proyectos de Office en Visual Studio siguen una convención de nomenclatura de subprocesos que permite al depurador cerrar el programa correctamente. Si crea subprocesos en la solución, debe asignar al nombre de cada subproceso el prefijo VSTA_ para asegurarse de que estos subprocesos se controlan correctamente cuando se detiene la depuración. Por ejemplo, puede establecer la Name
propiedad de un subproceso que espera a que un evento de red VSTA_NetworkListener.
Problema 4: No se puede ejecutar ni depurar ninguna solución de Office en el equipo de desarrollo
Si no puede ejecutar o desarrollar un proyecto de Office en el equipo de desarrollo, es posible que vea el siguiente mensaje de error.
No se pudo cargar la personalización porque no se pudo crear el dominio de aplicación.
Visual Studio usa Fusion, el cargador de ensamblados de .NET Framework, para almacenar en caché los ensamblados antes de cargar las soluciones de Office. Asegúrese de que Visual Studio puede escribir en la caché de Fusion e inténtelo de nuevo. Para obtener más información, vea Ensamblados de instantáneas.
Problema 5: Error al detener el depurador en un proyecto de nivel de documento después de usar Editar y continuar
Si usa Editar y continuar para realizar cambios en el código de un proyecto de nivel de documento para Excel o Word mientras el proyecto está en modo de interrupción, es posible que vea un cuadro de diálogo con el siguiente mensaje de error si detiene el depurador.
La finalización del proceso en su estado actual puede provocar resultados no deseados, incluida la pérdida de datos y inestabilidad del sistema.
Tanto si selecciona Sí como No en el cuadro de diálogo, Visual Studio finaliza el proceso de Excel o Word y detiene el depurador. Para detener la depuración del proyecto sin mostrar este cuadro de diálogo, salga de Excel o Word directamente en lugar de detener el depurador en Visual Studio.