mediante el uso de archivos de elementos de copyfile no se puede enlazar al paquete msi
-
05-07-2019 - |
Pregunta
Estoy usando wix 3.0. Tengo un nombre de carpeta '' images ''. Así que quiero copiar todos los archivos de las imágenes en el paquete msi. Cuando copio todo el archivo e instalo msi en otra PC, entonces no se vinculó las imagenes. Y cuando uso un elemento de archivo simple, los archivos se enlazan al paquete msi. Entonces, ¿qué debo hacer,
Respondeme pronto
Gracias Samir
Solución
Aparentemente, desea crear una aplicación que pueda generar un instalador de salvapantallas que incluya una serie de archivos de imagen seleccionados por el usuario & # 8212; un tipo de aplicación InstallShield especializada solo para crear instaladores de protectores de pantalla.
Primero crearía un archivo MSI de plantilla (con wix o algo más) que hace la mayor parte de la obra. No sabe qué archivos seleccionará el usuario más adelante, por lo tanto, agregue un componente de marcador de posición con el ID " UserSelectedFiles " ;. Distribuir esto plantilla de archivo MSI con su aplicación.
Luego, cuando el usuario quiere generar un
nuevo instalador, comience copiando el
modelo. Edite el msi copiado para que también instale los archivos seleccionados por el usuario. Puedes hacer esto con las clases .NET
puedes encontrar en el " despliegue
herramientas de base " API Este es un conjunto de ensamblajes que vienen con wix; echa un vistazo a
C: \ archivos de programa \ Windows Installer
XML v3 \ sdk
.
Solo he usado la API de DTF para algunas cosas simples, como este ejemplo que cuenta las entradas de la tabla de archivos en el MSI:
var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);
Tu caso será un poco más complicado. Probablemente tendrá que
- generar un archivo CAB que contiene
los archivos de imagen con las clases que
encontrar en el
Microsoft.Deployment.Compression.Cab
espacio de nombres. - fusionar el archivo CAB en el msi
con
Database.Merge
- Agregar nuevas entradas a la tabla Archivo de la MSI
- Cambie el código del producto a algo único para cada MSI generado
- etcétera
Para tener una idea del contenido de un archivo MSI y cómo se puede editar, le recomiendo que primero juegue un poco con el orca y msidb herramientas.