visual studio setup para microsoft español create dll visual-studio-2013 dependencies windows-installer vdproj

dll - studio - DIRCA_CHECKFX Valor de retorno 3-Proyecto de implementación VS 2013



visual studio 2013 create installer (4)

Tengo el problema temido de mi intento de instalación de un MSI:

MSI (c) (98:B0) [18:01:22:818]: Invoking remote custom action. DLL: C:/DOCUME~1/sspencer/LOCALS~1/Temp/1/MSI19.tmp, Entrypoint: CheckFX MSI (c) (98:FC) [18:01:22:833]: Cloaking enabled. MSI (c) (98:FC) [18:01:22:833]: Attempting to enable all disabled privileges before calling Install on Server MSI (c) (98:FC) [18:01:22:833]: Connected to service for CA interface. Action ended 18:01:22: DIRCA_CheckFX. Return value 3.

Después de un poco de excavación, esto indica que la DLL no se cargó completamente, el servidor de CA no pudo conectarse y comenzó a golpear los puntos de entrada de la DLL.

Usé orca y 7zip para extraer la acción personalizada para el DIRCA_CheckFX que es insertado por Visual studio cuando se construye el proyecto de implementación. Tomé el DLL y luego ejecuté Dependency Walker en el sistema host (Server 2003 R2) que dio el error:

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.

Recopilé el sistema usando el compilador VS 2010, extraje la DLL y ejecuté el caminante de dependencias en él, lo que no creó el mismo error. Por ejemplo, la compilación de VS 2010 funciona, la compilación de VS 2013 falla porque la DLL incluida no se carga en el entorno de destino.

Mi pregunta es ¿cómo soluciono los archivos DLL que faltan para solucionar el error reportado por Dependency Walker?


Debe estar instalado VS 2010 desde el cual puede obtener el archivo válido "dpca.dll".

  1. Cerrar Visual Studio 2013
  2. Copie el archivo con reemplazar dpca.dll desde C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/Tools/Deployment en C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/CommonExtensions/Microsoft/VSI/bin .
  3. Proyecto abierto
  4. Reconstruir

Esto es lo que hice para solucionar este problema para un proyecto de implementación de 32 bits.

  1. Construye el proyecto de configuración en VS2010 una vez. Este paquete no se ve afectado por el problema, pero no quería tener que seguir compilando en una versión diferente de VS.

  2. Abra el msi resultante con Orca, seleccione la tabla binaria y exporte el contenido de MSVBDPCADLL a un archivo.

  3. Ahora, después de compilarlo en VS2013, use Orca para importar los datos exportados a Binary / MSVBDPCADLL para arreglar el paquete.

Tengo que hacer algo similar con el proyecto de 64 bits, pero en este caso es importar el binario correcto de InstallUtil (siendo C: / Windows / Microsoft.NET / Framework64 / v4.0.30319 / InstallUtilLib.dll).


La vista previa de la resurrección .vdproj usa DLL que no son compatibles con Windows XP o Server 2003. Microsoft publicó una actualización que podría haber solucionado ese error.


Los proyectos de implementación de Visual Studio fueron tan horribles que Microsoft los eliminó de Visual Studio 2012. Los desarrolladores eran tan ignorantes de por qué eran tan horribles que les rogaron y les rogaron que regresaran. Los tipos inteligentes de Microsoft que entienden que MSI abandonó el edificio y las personas que quedaban cedieron ante los desarrolladores que pedían que regresara.

Uno de esos tipos realmente inteligentes lo resumió perfectamente en un tweet:

El regreso de vdproj: disparos a la cabeza, personas, o vuelven como caminantes.

Escribí un artículo sobre mis sentimientos: Visual Studio Installer Resurrection

Así que hablemos de la manera en que la herramienta te está fallando esta vez. Tómese un momento para leer este artículo escrito por uno de los otros realmente inteligentes para dejar MSFT:

Zataoca: las acciones personalizadas son (generalmente) una admisión de fracaso.

VDRPOJ creó una acción personalizada para hacer algo que MSI podría haber hecho de forma nativa y ahora está fallando. Entonces, digamos que encuentra la DLL y la arregla para que funcione en su máquina. ¿Qué sucede cuando envía su MSI a 1,000,000 de máquinas? ¿Cuántas máquinas fallará allí? ¿Cuántas llamadas de soporte recibirá? ¿Cuántos tweets conseguirás que tu producto apeste?

En pocas palabras, rehaceré su instalador utilizando una herramienta mejor como Windows Installer XML y Industrial Strength Windows Installer XML. Si tiene dinero para gastar, InstallShield Professional también es una buena opción.