He intentado recientemente implementar una aplicación C# en una computadora que no tiene .NET instalado.Empaquetado de una aplicación .NET para que se ejecute en una computadora sin .NET
Sé que ha habido muchas preguntas sobre el mismo tema aquí en StackOverflow. Aquí están algunos de ellos, de los cuales he leído las respuestas a todos:
Packaging up the .net framework with a .net application deployment
Run a .net application without installing .net client profile?
Run C# windows application in windows XP without installing .NET Framework
Así que todas las respuestas a las preguntas anteriores sostienen que resulta imposible sin software específico, etc. Un software mencionado fue el Salamander .NET Linker. El único problema con eso es que parece que no puedo ejecutar la aplicación después de que haya sido procesada por Salamender. Entiendo que esto en sí mismo es imposible, ya que requiere la ejecución de la máquina virtual .NET. Sin embargo, en el pasado, he hecho aplicaciones Java y, junto con ellas, he enviado toda la JVM. Sorprendentemente, todavía funcionaban. Entonces la razón por la que esto no es un duplicado de las preguntas anteriores es porque mi verdadera pregunta es:
¿Qué elementos del framework .NET necesitaría empaquetar? Si logro empaquetar todo, ¿colocarlos en el mismo directorio que la aplicación que estoy ejecutando permite que la aplicación se ejecute?
Encontré una solución para esto, el Microsoft .NET Redist Package. El único problema con esto es que tiene una GUI propia. Aparte de eso, sería un ajuste perfecto. Entonces, ¿alguien podría decirme una de estas dos cosas:
¿Hay un paquete .NET de línea de comandos y, de ser así, dónde lo descargo?
Si no hay, o no sería práctico hacerlo, aproximadamente qué directorios necesitaría copiar desde las instalaciones .NET?
Entiendo que estos archivos y directorios son específicos del sistema, y que mi instalación de .NET puede no funcionar en su computadora, pero si C# es como Java, entonces esto debería ser posible. ¿Lo es? El tamaño no es una limitación, no me importa si la aplicación y todos sus archivos son de 1 GB o si solo es de 1 MB.
Si en caso de que no haya otra solución, utilicé Dependency Walker para verificar todas las dependencias de mi programa. Si tuviera que empaquetar la mayoría de ellos, ¿mi aplicación, en teoría, funcionaría?
Estos enlazadores estáticos son una idea terrible. Su aplicación no se beneficiará de las correcciones de seguridad y otras mejoras (al igual que Windows Update). –