Question

Je construis une installation à l’aide de VS 2003. L’installation comprend un classeur Excel et deux bases de données Access. Je dois forcer le chargement des fichiers Access quelle que soit la date de création / modification des bases de données existantes sur l'ordinateur de l'utilisateur. J'utilise actuellement ORCA pour imposer un numéro de version sur les deux fichiers, mais j'aimerais trouver une solution plus simple et plus élégante (l'édition manuelle d'un fichier .msi n'est pas quelque chose que je considère comme une "meilleure pratique".

Existe-t-il un moyen d'ajouter un numéro de version aux bases de données à l'aide d'Access qui serait ensuite utilisé lors de l'installation?

Existe-t-il un meilleur moyen pour moi de le faire?

Était-ce utile?

La solution

@LanceSc

Je ne pense pas que le tableau MsiFileHash aidera ici. Voir ce excellent article par Aaron Stebner. Il est fort probable que la date de la dernière modification de la base de données Access sur l'ordinateur client sera différente de sa date de création. Windows Installer supposera correctement que le fichier a changé depuis l’installation et ne le remplacera pas.

La bonne façon de résoudre ce problème (comme l'a souligné l'auteur de la question) consiste à définir le champ Version dans la table Fichier.

Malheureusement, les projets d'installation dans Visual Studio sont très limités. Vous pouvez créer un script VBS simple qui modifierait les enregistrements de la table File (à l'aide de SQL), mais je suggère plutôt de rechercher d'autres outils de création d'installation, tels que WiX , InstallShield ou Wise. WiX est à mon avis le meilleur.

Autres conseils

Étant donné que vous semblez ne pas disposer de ressources correctement versionnées, avez-vous essayé de modifier la propriété REINSTALLMODE?

IIRC, dans la valeur par défaut de "omus", c'est l'indicateur "o" qui ne vous permet de l'installer que si vous avez une version plus ancienne. Vous pouvez essayer de changer ceci de «o» à «e». Soyez averti que cela écrasera les fichiers manquants, plus anciens ET avec version égale.

L'ajout manuel de versions était une mauvaise façon de démarrer, mais cela devrait vous éviter de devoir manuellement modifier les numéros de version pour pouvoir les installer.

Recherchez des événements de construction pour votre projet. Il peut être possible de réviser les versions des fichiers lors d'un événement de construction. [Ne me citez pas là-dessus]. Je ne sais pas si vous le pouvez ou non, mais ce serait l'endroit où je commencerais par enquêter en premier.

Vous devez renseigner le MsiFileHash table pour ces fichiers. Regardez WiFilVer.vbs thtat fait partie du Kit de développement logiciel (SDK) de la plate-forme Microsoft pour savoir comment procéder.

Mon autre suggestion serait de regarder WiX au lieu de Visual Studio 2003 pour effectuer des installations. Visual Studio 2003 ne supporte que très peu le MSI et vous risquez de passer beaucoup de temps à le combattre plutôt que de vous faire un travail utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top