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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top