Estoy escribiendo un complemento para otra aplicación a través de una API. Los complementos se distribuyen en un archivo DLL. ¿Es posible incrustar otros archivos en el archivo DLL como pdfs, imágenes, archivos de ayuda chm, etc.? Quiero poder proporcionar documentación con mi complemento, pero me gustaría conservar la capacidad de distribuir el complemento. -en un solo archivo, el usuario puede simplemente arrastrar y soltar en la aplicación para instalar.¿Puedo incrustar otros archivos en una DLL?
Respuesta
Resource Files es lo que necesita.
Sí, puedes hacer eso.
Agregue un archivo de recursos a su proyecto. Abra el archivo de recursos en Visual Studio y haga clic en Insertar recurso. Puede seleccionar diferentes tipos de recursos, incluidos archivos externos.
Visual Studio generará código para usted para que pueda recuperar los archivos como matrices de bytes en tiempo de ejecución de sus nombres a través del identificador Resources
.
Claro, puede insertar un recurso en su DLL. A continuación, en tiempo de ejecución que acaba de hacer:
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pdf");
Esto le daría una corriente en el fichero de Foo.pdf
incrustado en el archivo DLL. Preste atención al hecho de que el nombre del recurso debe ser delimitado por el espacio de nombres del tipo desde el que está invocando el método.
Claro, simplemente conviértanlas en "Recurso incrustado" en VS.NET (suponiendo que lo esté usando). A continuación, puede leerlos a través de las API de recursos o simplemente con Assembly.GetManifestResourceStream().
Como una opción alternativa, si necesita descomprimir y guardar los archivos en la máquina de los usuarios (digamos un archivo chm al que desea acceder fuera de su aplicación) también puede hacer lo mismo con los archivos zip.
Dijiste que querías que el archivo fuera "arrastrado" a tu aplicación. Simplemente haga que sus eventos DDE comprueben si el archivo es un archivo comprimido (tal vez incluso utilizando algo así como un contenedor con metadatos) y descomprima los archivos necesarios, incluido el complemento real.
Esta es la misma idea que los documentos de openxml, en realidad son solo cremalleras disfrazadas.
- 1. Incrustar archivos DLL en un ejecutable compilado
- 2. Incrustar dll no administrado en un C# dll administrado
- 3. Incrustar recursos de localización .DLL en el ejecutable en C#?
- 4. ¿Debo incrustar archivos CSS/JavaScript en una aplicación web?
- 5. ¿Puedo incrustar una DLL win32 en un ensamblado .NET y hacer llamadas con P/Invoke?
- 6. ¿Cómo obtengo una prueba unitaria para copiar mis archivos DLL y otros archivos cuando ejecuto una prueba?
- 7. Acerca de incrustar archivos Midi en una página web
- 8. Rake tareas en otros archivos
- 9. cómo incrustar archivos html en código php?
- 10. groff: ¿puedo incrustar imágenes?
- 11. ¿Puedo incrustar una fuente personalizada en una aplicación de Android?
- 12. ¿Puedo incrustar una imagen .png en una página html?
- 13. ¿Cómo puedo incrustar un archivo de manifiesto específico en una DLL de Windows con una compilación CMake?
- 14. Cómo incrustar archivos mjpeg en una página web
- 15. Incrustar Ver archivos como recurso dentro de Binario
- 16. ¿Cómo puedo agrupar otros archivos cuando uso cx_freeze?
- 17. Incrustar una fuente en delphi
- 18. ¿cómo puedo incrustar lua en java?
- 19. Incrustar Python en Windows: ¿por qué tiene que ser una DLL?
- 20. Dónde almacenar archivos DLL externos?
- 21. Incrustar Lua en C++
- 22. Fusiona varias DLL nativas en una DLL
- 23. Incluye dinámicamente otros archivos XSL en XSLT
- 24. Incrustar una aplicación en una ventana
- 25. ¿Cómo puedo obtener HINSTANCE de una DLL?
- 26. MEF cargando archivos DLL que requirieron archivos DLL en el GAC
- 27. ¿Debo firmar mis archivos DLL?
- 28. ¿Cómo incrustar .tlb como un archivo de recursos en .NET Assembly DLL?
- 29. ¿Cómo puedo incrustar un formulario de C++ no administrado en una aplicación .NET?
- 30. ¿Puedo separar un dll grande en 1 dll por clase?
Perfecto gracias! –
debe explicar cómo hacerlo, no solo pegar enlaces – Toolkit
¡El enlace está roto! – LuizLoyola