with desde compilar c# file executable

c# - desde - Cómo almacenar archivos en un EXE



compilar c# desde cmd (4)

Muy bien, entonces estoy trabajando en la programación de mi propio instalador en C #, y lo que me gustaría hacer es algo así como poner los archivos en el .exe, así que puedo hacer File.Copy (archivo, filedir);

O, si esto no es posible, ¿hay otra forma de hacer lo que estoy intentando hacer?


Estoy adivinando aquí, pero si intenta almacenar recursos en su aplicación antes de la compilación, puede en el Explorador de proyectos, hacer clic con el botón derecho en un archivo que le gustaría agregar, seleccionar propiedades y cambiar el tipo a Recurso incrustado.

A continuación, puede acceder a los recursos incrustados más tarde utilizando las instrucciones de este KB: http://support.microsoft.com/kb/319292


Honestamente, le sugiero que NO cree su propio instalador. Hay muchos problemas para crear instaladores. Incluso los grandes instaladores ya no crean sus propios instaladores, sino que crean paquetes personalizados de MSI.

Use el instalador de Mirosoft (MSI). Es la cosa justa que hacer. Haga su propio front-end personalizado, pero no recree la ya compleja rueda que existe.

ACTUALIZACIÓN: Si solo estás haciendo esto para aprender, entonces evitaría pensar en él como "un instalador". Es posible que tenga la tentación de realizar su "investigación" y utilizarla algún día, y francamente, así es como terminamos con tantos problemas cuando salen nuevas versiones de Windows. La gente crea sus propias ruedas con suposiciones que no son válidas.

Lo que realmente está tratando de hacer se llama "empaquetado", y realmente tiene que familiarizarse íntimamente con el formato PE ejecutable, porque está hablando de cambiar la estructura de la imagen PE en el disco.

Puede simularlo, hasta cierto punto, con poner archivos en recursos, pero eso no es realmente lo que hacen los instaladores o los autoextractores.

Aquí hay un enlace al tutorial de Self-Extractor , pero no está en C #.

No sé lo suficiente sobre los requisitos de .NET PE para saber si puede hacer esto con un ejecutable de código administrado o no.

ACTUALIZACIÓN2: probablemente sea más de lo que está buscando, incorpora archivos en el recurso, pero como dije, no es realmente la manera en que los instaladores profesionales o autoextractores lo hacen. Creo que hay varias limitaciones sobre lo que puedes incorporar como recursos. Pero esto es similar a una demostración de autoextracción escrita en C #.


No codificaría mi propio instalador, pero si realmente quiere incrustar archivos en su ensamblaje, podría usar recursos fuertemente tipados. En el cuadro de diálogo de propiedades de su proyecto abra la pestaña "Recursos" y luego agregue su archivo. Luego podrá obtener el archivo usando:

ProjectNamespace.Properties.Resources.MyFile

Luego podrá escribir el recurso incrustado en el disco usando:

System.IO.File.WriteAllBytes(@"C:/MyFile.bin", ProjectNamespace.Properties.Resources.MyFile);


en caso de que simplemente desee almacenar varios archivos en un único archivo de almacenamiento (y extraer archivos desde allí, interactuar, etc.), también puede desear consultar NFileStorage, un almacenamiento de archivos .net . escrito en 100% .NET C # con todas las fuentes incluidas. También viene con un intérprete de línea de comandos que permite la interacción desde la línea de comandos.