2010-04-17 12 views
32

Tenemos algún proyecto de instalación en la solución de Visual Studio (Otros tipos de proyectos -> Configuración e implementación -> Proyecto de configuración). Este proyecto tiene otro proyecto de tipo de biblioteca con una clase de instalación llamada InstallationCore como resultado del proyecto. En la acción del usuario, llamo a Instalar y Desinstalar funciones del instalador de InstallationCore.El registro de DragDrop no tuvo éxito en el proyecto de instalación

InstallationCore tiene formularios de Windows para interactuar con el usuario. Allí, en formularios, utilizo la función de arrastrar y soltar para arrastrar y soltar texto de la vista de árbol a cuadro de texto.
Pero en línea:

txbUserName.AllowDrop = true; 

me sale error de depurador JIT:

excepción no controlada se ha producido
registro DragDrop no tuvo éxito
System.InvalidOperationException: el registro DragDrop no tuvo éxito

Y una larga pila de trazas después de eso.
Es importante decir que cuando ejecuto la función Installer desde el proyecto de prueba, el error no se produce y todo funciona bien. El error ocurre solo cuando ejecuto el paquete .msi.

¿Alguna sugerencia?

+3

La causa se describe aquí: http://stackoverflow.com/questions/135803 Pero no estoy seguro si la solución se puede aplicar en proyectos de instalación. – dtb

+0

+1 @dtb, esto es completamente correcto. Existe una posible solución [aquí] (http://www.ozcandegirmenci.com/post/2010/08/Visual-Studio-Setup-Project-OLE-Call-And-Dialog-Show-Support.aspx). – ssamuel

Respuesta

0

Intente limpiar el directorio BIN.

0

Elimine toda la carpeta Obj del directorio de la solución y la solución Rebuild. Recuerda no Build solo Rebuild. Porque Build solo prepara nuevos cambios en la última versión exitosa. Por lo tanto, usa la opción Reconstruir.

0

Compilar: para compilar archivos y reemplazar o sobreescribir todos los archivos, estén o no presentes en la carpeta bin.

Reconstrucción: - Utilice el archivo existente si no hay modificaciones.

Limpiar: - Borra todos los archivos de la ubicación del contenedor.

Recomendado es Limpiar y compilar, si no necesita las referencias y compilar archivos relacionados, siempre use re-build.

Aparte de esto, en RUN, (botón de Windows + R), vaya a la carpeta temporal (Escriba% temp% en RUN) hay una carpeta relacionada con archivos temporales .NET, intente eliminar eso si no puede eliminar luego cierra Visual Studio y luego intenta eliminarlo. Esto se crea cada vez que construimos o reconstruimos la aplicación y, a veces, crea problemas.

1

Tiene varios subprocesos que causan este problema. Si es así, encontrarlos y obligarlos a STA

trd = New Threading.Thread(AddressOf ThreadTask) 
trd.IsBackground = True 
trd.SetApartmentState(ApartmentState.STA) 
1

He arreglado este problema mediante la supresión de mi bin directorio.

Cuestiones relacionadas