utilizzando i file degli elementi copyfile non è possibile collegarli al pacchetto msi
-
05-07-2019 - |
Domanda
Sto usando Wix 3.0. Ho un nome di cartella "Immagini". Quindi voglio copiare tutti i file dalle immagini in un pacchetto MSI. Quando copio tutto il file e installo MSI su un altro PC, allora non si legava le immagini. E quando uso un semplice File Element, i file si legano al pacchetto msi. quindi cosa dovrei fare,
Rispondi presto
Ringraziandovi Samir
Soluzione
Apparentemente vuoi creare un'applicazione in grado di generare un programma di installazione dello screensaver che includa una serie di file di immagini selezionati dall'utente, una sorta di applicazione InstallShield specializzata solo per la creazione di programmi di installazione di screensaver.
Vorrei prima creare un modello di file MSI (con wix o qualcos'altro) che fa la maggior parte di il lavoro. Non sai quali file l'utente selezionerà in seguito, quindi aggiungi un componente segnaposto con l'ID " UserSelectedFiles " ;. Distribuisci questo modello di file MSI con l'applicazione.
Quindi, quando l'utente vuole generare un
nuovo programma di installazione, iniziare copiando il file
modello. Modifica il msi copiato in modo che installi anche i file selezionati dall'utente. Puoi farlo con le classi .NET
puoi trovare nella distribuzione " ;.
strumenti di base " API. Questo è un insieme di assiemi forniti con wix; dare un'occhiata al
C: \ programmi \ Windows Installer
XML v3 \ sdk
.
Ho usato l'API DTF solo per alcune cose semplici, come questo esempio che conta le voci della tabella File nell'MSI:
var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);
Il tuo caso sarà un po 'più complicato. Probabilmente dovrai
- genera un archivio CAB che contiene
i file di immagine con le classi
trova nel
Microsoft.Deployment.Compression.Cab
namespace. - unisce l'archivio CAB in msi
con
Database.Merge
- Aggiungi nuove voci alla tabella File dell'MSI
- Cambia il codice prodotto in qualcosa di unico per ogni MSI generato
- etcetera
Per avere un'idea del contenuto di un file MSI e di come può essere modificato, ti consiglio di giocare prima un po 'con orca e msidb strumenti.