visual-studio winforms windows-installer inno-setup

visual studio - ¿Qué archivos de proyectos de Winform se deben empaquetar en el instalador?



visual-studio winforms (2)

Quiero empaquetar mi proyecto winform por Inno Setup . Pero además del ejecutable principal, debe especificar los otros archivos requeridos y hay muchos archivos en la carpeta del proyecto.

Entonces, ¿qué archivos se requieren? ¿Los scripts .cs son importantes? O simplemente los archivos en / bin / release /?


Todos los archivos necesarios para ejecutar la aplicación se pueden encontrar en la carpeta /bin/release , incluidos los archivos DLL y el propio archivo ejecutable.

Sin embargo, esto supone que usted agregó esas bibliotecas a su proyecto usando las herramientas integradas en Visual Studio.

Editar (gracias a Lex Li): si aún no ha instalado los archivos de tiempo de ejecución (normalmente se instalan con .NET), deberá instalarlos desde https://www.microsoft.com/net


En general : me gusta el consejo de Tom Blodget para encontrar dependencias y tiempos de ejecución. A continuación se muestran algunas opciones técnicas detalladas para determinar qué está sucediendo con las aplicaciones problemáticas. Montado a toda prisa.

Limpie Virtual : Y, obviamente, siga los consejos de Lex Li (comentarios anteriores a su pregunta) para configurar su aplicación manualmente en un virtual limpio para control de calidad y pruebas, y para determinar los requisitos de implementación de manera "iterativa".

Lista de verificación : y solo para el registro: una lista de verificación de propósito general para los problemas de inicio de la aplicación (que alguien haya votado por alguna razón, hágame saber qué errores puede encontrar allí. Soy un especialista en implementación, no un programador. es más una lista de "ideas" que una verdadera lista de verificación).

ACTUALIZACIÓN - Septiembre de 2018 :

Binarios de depuración : inicie la depuración de secuencias : puede insertar un cuadro de mensaje al principio de la secuencia de inicio de la aplicación e integrar los archivos binarios de depuración en su configuración, instalarlo y luego adjuntar el depurador al cuadro de mensaje de la aplicación al iniciar para iniciar el lanzamiento. ¿código? (establecer un punto de interrupción). Ahora puedes depurar, siempre que tu EXE despegue del todo .

  • Tal vez revise este buen tutorial de video de Advanced Installer para este "método de adjuntar depurador" . Muestra el mismo enfoque para el código de acción personalizado. El procedimiento es el mismo para lanzar aplicaciones. Solo adjúntalo al cuadro de mensaje y establece puntos de interrupción.

  • Nota : Obviamente, recuerde volver a compilar con los binarios de lanzamiento una vez que sepa cuál es el problema y vuelva a probar el lanzamiento. Los archivos binarios de depuración no son redistribuibles, se enlazan a las DLL de depuración que solo instala MS SDK. Las PC normales no tendrán (normalmente) estos archivos DLL de depuración.

Vista de módulos de Visual Studio : he visto que se recomienda ejecutar en modo de depuración en Visual Studio . Ejecute el proyecto de forma interactiva: Debug => Start Debugging y luego vaya: Debug => Windows => Modules para obtener una lista de lo que se ha cargado para que se ejecute la aplicación. No estoy seguro, francamente, si esto le da todo tipo de dependencias. Puede haber muchos tipos diferentes como se explica aquí en el archivo de ayuda de Dependency Walker . Traté de elegir el cerebro de nuestro Hans Passant sobre el tema :-) , pero probablemente sea demasiado detallado para analizarlo.

Dependency Walker : esta es una antigua herramienta SDK de Windows. Ya está muy desactualizado, hace 10 años desde la última actualización, creo. Era el antiguo caballo de guerra en el que confiar, pero no funciona muy bien para los binarios más nuevos. No es compatible con las dependencias de WinSxS (conjuntos win32 de lado a lado) o conjuntos de API-Sets .

  • Todavía lo utilizo para recordarme el " orden de búsqueda del módulo ". Con la herramienta abierta: Options => Configure Module Search Order... Windows localiza los archivos / módulos en un orden de búsqueda como ese, y con las diferencias entre las diferentes versiones del sistema operativo.
  • Es cierto que está desactualizado, pero al menos es un recordatorio de cómo se escanean las carpetas en Windows, y cada versión de Windows es diferente, especialmente con los manifiestos.

dumpbin : Otro antiguo caballo de trabajo del SDK de Windows (busque en %ProgramFiles(x86)% en un sistema con Visual Studio instalado). Esta es una herramienta de línea de comandos. Para los masoquistas :-). Sinceramente, no sé si cuenta con el soporte adecuado para los binarios más nuevos, pero parece mantenerse (a diferencia de Dependency Walker).

ProcMon (Sysinternals): esta es la herramienta que la gente confía cuando se trata de resolver los problemas de dependencia difíciles. Muestra de maqueta rápida . El trato real: un catalejo para lo que realmente está sucediendo bajo el capó. No soy experto en su uso, pero siempre es esclarecedor mirar el resultado de las ideas. Falta el registro del servidor COM, etc ...

ProcessExplorer (Sysinternals): Por favor verifique esta respuesta .

Fuslogvw.exe : ¿ Fuslogvw.exe dice algo? (Fallos de enlace de ensamblado .NET).

Dependencies.exe : Tal vez también pueda probar esta nueva reescritura de código abierto de Dependency Walker (la antigua herramienta SDK mencionada anteriormente) realizada parcialmente en C #: " Dependencies.exe ". Esta herramienta no está terminada y no presenta todas las funciones de Dependency Walker (no puedo ver ninguna característica de creación de perfiles para archivos exe), pero es compatible con API-Sets de API-Sets y dependencias de WinSxS , o ensamblajes de lado a lado de Win32 ( que falta en el Dependency Walker). No lo he probado lo suficiente como para recomendarlo, pero es de código abierto y, por lo tanto, se puede inspeccionar. I have contacted the author about an issue where the bundled peview.exe is identified as malware . El autor rápidamente volvió a explicar . Recomendamos que simplemente elimine peview.exe antes de comenzar a usar la aplicación.

NDepend ( wikipedia ): una herramienta que me temo que no uso, pero por favor marque esta respuesta (verifique).

Herramientas de implementación : varias herramientas de implementación además de la configuración Inno ( vista de lista, solo herramientas principales ).

Algunos enlaces :

.RED