La respuesta correcta depende de muchos criterios.
La forma más sencilla de implementar es copiar archivos. Simplemente ponga su .exe, el .dll dependiente y el archivo .config en un directorio y cópielo en la máquina de destino. Es simple, pero hay muchas restricciones a este enfoque:
- Asume que la máquina de destino tiene instalada la versión correcta de .NET Framework
- Asume cierta competencia técnica por parte de la persona que instala el software.
- La instalación no hará cosas básicas como crear elementos del menú de inicio.
Publicar el programa para la implementación ClickOnce aborda muchos de estos problemas, pero tiene su propio conjunto de limitaciones. No lo he usado mucho, así que probablemente haya más que estos, aunque estos solo son bastante significativos:
- Los programas se instalan en la caché de ClickOnce, no en el directorio Archivos de programa.
- Si su programa hace algo fuera del entorno limitado ClickOnce, tiene que lidiar con la elevación de seguridad y la firma de código.
Puede crear un proyecto de configuración e implementación VS y crear un archivo .msi para instalar el programa. El inconveniente más obvio de esto es que es complicado: los archivos .msi pueden hacer muchas cosas, y el modelo de objetos de Instalación y Despliegue es complejo, con una documentación que es, por así decirlo, fantasiosa. Pero hay cosas que puede hacer con la instalación .msi que no puede hacer fácilmente con otros enfoques, incluidos (y sin limitarse a ellos):
- Limpiamente desinstala el programa a través de Agregar / Quitar Programas.
- Proporcione una interfaz de usuario real para la instalación que le permita al usuario decidir dónde colocar el programa.
- Admite la instalación con guiones a través de MSIEXEC.
- Instale componentes además del programa, p. Ej. Bases de datos, objetos COM, etc.
- Coloque los componentes en el GAC de la máquina objetivo.