2008-09-19 18 views
1

Je construis une installation en utilisant VS 2003. L'installation a un classeur Excel et deux bases de données Access. J'ai besoin de forcer les fichiers Access à charger indépendamment de la date de création/modification des bases de données existantes sur l'ordinateur de l'utilisateur. J'utilise actuellement ORCA pour forcer un numéro de version sur les deux fichiers, mais je voudrais 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 "meilleure pratique"). un moyen d'ajouter un numéro de version aux bases de données à l'aide de l'accès qui seraient ensuite utilisés dans l'installation?Comment ajouter un numéro de version à un fichier Access dans un .msi

y at-il une meilleure façon pour moi de le faire?

Répondre

2

@LanceSc

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

La bonne façon de résoudre ce problème (comme l'auteur de la question l'a souligné) est de 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 dans la table File (en utilisant SQL), mais je suggère plutôt d'utiliser d'autres outils de création d'installation, tels que WiX, InstallShield ou Wise. WiX à mon avis est le meilleur.

0

comme il semble que vous n'avez pas correctement ressources versionnées, avez-vous essayé de changer la propriété REINSTALLMODE?

IIRC, dans la valeur par défaut de 'omus', c'est le 'o' f lag qui vous permet seulement d'installer si vous avez une version plus ancienne. Vous pouvez essayer de changer cela de 'o' à 'e'. Soyez averti que cela va remplacer les fichiers manquants, plus anciens et également versionnés.

L'ajout manuel de versions était une mauvaise façon de commencer, mais cela devrait vous éviter de devoir remonter manuellement les numéros de version pour les installer. Examinez les événements de construction pour votre projet.

0

Il peut être possible d'afficher les versions des fichiers lors d'un événement de génération. [Ne me citez pas sur ça]. Je ne suis pas sûr si vous pouvez ou non, mais ce serait l'endroit où je commencerais à enquêter en premier.

0

Vous devez renseigner la table MsiFileHash pour ces fichiers. Regardez WiFilVer.vbs thtat fait partie du Microsoft Platform SDK pour voir comment faire cela.

Mon autre suggestion serait de regarder WiX au lieu de Visual Studio 2003 pour faire des installations. Visual Studio 2003 a un support MSI très limité et vous pouvez passer beaucoup de temps à le combattre, plutôt que d'avoir un travail utile.