Domanda

Sto creando un'installazione utilizzando VS 2003. L'installazione ha una cartella di lavoro Excel e due database di Access. Devo forzare il caricamento dei file di Access indipendentemente dalla data di creazione / mod dei database esistenti sul computer dell'utente. Attualmente uso ORCA per forzare un numero di versione sui due file, ma vorrei trovare una soluzione più semplice ed elegante (la modifica manuale di un file .msi non è qualcosa che vedo come "best practice".

Esiste un modo per aggiungere un numero di versione ai database utilizzando Access che verrebbe quindi utilizzato nell'installazione?

C'è un modo migliore per farlo?

È stato utile?

Soluzione

@LanceSc

Non credo che la tabella MsiFileHash possa essere d'aiuto qui. Vedi questo post eccellente di Aaron Stebner. Molto probabilmente la data dell'ultima modifica del database di Access sul computer client sarà diversa dalla data di creazione. Windows Installer supporrà correttamente che il file sia cambiato dall'installazione e non lo sostituirà.

Il modo giusto per risolvere questo problema (come sottolineato dall'autore della domanda) è impostare il campo Versione nella tabella File.

Purtroppo i progetti di installazione in Visual Studio sono molto limitati. È possibile creare un semplice script VBS che modifichi i record nella tabella File (usando SQL) ma suggerisco invece di cercare strumenti di creazione di installazione alternativi, come WiX , InstallShield o Wise. WiX secondo me è il migliore.

Altri suggerimenti

Dal momento che sembra che tu non abbia risorse con la versione corretta, hai provato a cambiare la proprietà REINSTALLMODE?

IIRC, nel valore predefinito di 'omus', è il flag 'o' che ti consente di installare solo se hai una versione precedente. Puoi provare a cambiarlo da 'o' a 'e'. Tieni presente che questo sovrascriverà i file mancanti, meno recenti e con la stessa versione.

L'aggiunta manuale delle versioni è stata il modo sbagliato di iniziare, ma ciò dovrebbe garantire che non sia necessario aumentare manualmente i numeri di versione per installarli.

Cerca in Build Events per il tuo progetto. Potrebbe essere possibile revocare le versioni dei file durante un evento di build. [Solo non citarmi su questo]. Non sono sicuro che tu possa o no, ma sarebbe quello il posto in cui inizierei a indagare per primo.

Dovresti popolare MsiFileHash tabella per questi file. Guarda WiFilVer.vbs che fa parte di Microsoft Platform SDK per vedere come eseguire questa operazione.

L'altro mio suggerimento sarebbe di guardare WiX invece di Visual Studio 2003 per fare le installazioni. Visual Studio 2003 ha un supporto MSI molto limitato e puoi finire per passare molto tempo a combatterlo, piuttosto che ottenere un lavoro utile don.

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