La réinitialisation de la compatibilité de projet en vb6
Lorsque nous casser la compatibilité dans une dll vb6 j'ai effectuer les opérations suivantes:
- Définie sur non compatibilité binaire
- Recompiler
- La compatibilité de nouveau
- De supprimer la référence à changé dll à partir de tous les projets qui l'utilisent
- Ajouter un renvoi à tous les projets qui l'utilisent
- Recompiler tous ces projets
- Faire de même pour tous les projets qui utilisent ces projets, etc.
Bien sûr que c'est un peu simplifié mais la personne qui l'a fait auparavant devraient savoir de quoi je parle.
Ma question est: Avez-vous trouvé une meilleure façon de le faire, ou avez-vous trouvé un (pas trop cher) des outils pour faciliter ce processus? Ou mieux encore, avez-vous créé un que vous pouvez partager avec moi 🙂
Remarque que je me demande comment faire pour rendre ce processus plus facile, pas comment l'éviter. Donc merci de ne pas donner des réponses sur la façon mauvais, il est de casser la compatibilité et que nous ne devrions pas le faire. Je vis dans le monde réel, où il y a des choses en dehors de mon contrôle et je suis juste essayer de traiter avec ce que j'ai.
OriginalL'auteur Brandon Moore | 2011-11-17
Vous devez vous connecter pour publier un commentaire.
Dans un emploi précédent, j'ai eu, nous avons eu une énorme application VB6 qui contient des dizaines de VB6 Dll que nous avons évoqué à travers les projets dans notre groupe de projet. Nous avons été en rupture de compatibilité souvent, et de mettre à jour manuellement les références comme vous décrivez n'était pas une option.
Nous avons d'abord développé un outil qui permettrait de mettre à jour les références dans tous les .vbp fichiers dans un dossier après la rupture et de le recompiler, mais j'ai finalement trouvé Visual Construire par Kinook Logiciel (www.kinook.com) qui pourrait s'occuper de ce automatiquement.
J'ai utilisé leur solution pour de nombreuses années avec succès. Ce qui est bon au sujet de leur "Faire VB6" action (http://www.kinook.com/VisBuildPro/Manual/makevb6.htm) est qu'il peut construire un arbre des dépendances et de reconstruire l'ensemble de vos projets dans votre groupe de projet dans le bon ordre, tandis que la mise à jour des références en conséquence.
Pour votre scénario, vous devez définir le "Jeu de compatibilité de version avant de construire" option "compatibilité", puis cochez la case "Définir la compatibilité binaire" case à cocher afin que les projets sont revenus à la compatibilité binaire après la construction.
Si vous avez des projets que vous avez besoin pour maintenir la compatibilité binaire, il suffit de laisser en dehors de l' .de vbg et de ne pas la reconstruire.
Malheureusement, je ne vais pas à même de dépenser autant d'argent pour l'instant, mais je vais marquer le vôtre la réponse de toute façon la cause, on dirait que c'est exactement ce que je veux.
OriginalL'auteur Gabriel
Supplémentaires Visual Basic 5.0 & 6.0 Échantillons offre un la Compatibilité Binaire complément qui pourrait être utile. Voir la
ReadMe.txt
etRevised Binary Compatibility.doc
fichiers après "installation" (il y a des mesures à prendre après l'exécution de la télécharger).Cela peut ou peut ne pas répondre à votre question.
OriginalL'auteur Bob77
Vous ne devez pas modifier le paramètre de compatibilité. Vous ne devez vous assurer que la dll ou exe) que vous vous référez dans votre paramètre de compatibilité est pas l'emplacement que vous êtes sur le point de le compiler en.
Nous faire quelque chose de similaire, nous avons donc la structure suivante:
C:\ProductName\Bin
- contient tous les live assembléesC:\ProductName\Bin\Compatibility
- contient toutes les assemblées, car ils étaient dans la dernière buildAprès nous faisons construire (ce que nous faisons automatiquement par les bombardements VB6.exe) nous déplacer tout en
\Bin
à\Bin\Compatibility
oui, cela va casser la compatibilité, car c'est la comparaison avec la version précédente de ce qui peut ou peut ne pas être compatbile. Lorsque vous utilisez le VB6.exe pour compiler, vous n'obtiendrez pas l'interface graphique, vous demandant si vous souhaitez continuer, il a juste continue quel que soit
Peut-être que je ne comprends pas. Je suis en supposant que vous avez la compatibilité binaire allumé et la référence binaire est en
Bin\Compatibility
? Vous intégrezBin
. Donc les binaires dansBin
sont compatible au niveau binaire avecBin\Compatibility
. Ensuite, vous copiez les fichiers binaires dansBin
enBin\Compatibility
. Alors maintenant, lorsque vous générez à nouveau, vos nouvelles binaires binaire compatible avec les binaires dansBin\Compatibility
c'est à dire toutes les versions précédentes. C'est une méthode pour garder la compatibilité binaire pour toujours, pas pour le casser. Ou ai-je mal compris?Bien qu'ils peuvent ou peuvent ne pas être compatibles avec ceux de la
Bin\Compatibility
annuaire - c'est l'emplacement à des fins de comparaison, de sorte VB sait si la compilation va ou ne va pas casser la compatibilité.Son l'emplacement de la référence binaires. VB: (1) compile correctement et crée des versions binaires compatibles. Ou, (2) si youve fait des modifications de code qui signifie qu'il ne peut pas être sûr que la nouvelle construction sera compatible, VB vous invite à vous de décider ce que vous voulez faire. Mais Brandon veut délibérément casser la compatibilité, même si il a la pas fait aucune modification de code que la force d'une incompatibilité.
OriginalL'auteur Matt Wilko
J'ai trouvé la La Version de la Compatibilité des Composants ActiveX série sur MSDN très éclairant sur le sujet de la compatibilité et quand/comment casser. Je poste ce principalement pour référence future.
OriginalL'auteur Doc
- Je résoudre le problème en ne stockant pas les informations de compatibilité.
- Je supprimer le CompatibleEXE32={dllname} ligne de la .vbp fichiers
Je n'ai jamais enregistrer le .vbp fichiers après une génération , de sorte que le renvoi ne s'infiltrent pas dans.
OriginalL'auteur Kirsten Greed