4 votes

Le fichier OCX ne se déploie pas à partir du MSI généré avec Visual Studio 2003 sur Windows 7

J'ai une ancienne installation d'une application DotNet 1.1 (avec Visual Studio 2003) qui ne déploie pas le fichier msflxgrd.ocx lors de la PREMIÈRE installation sur Windows 7. Si je désinstalle le MSI et que j'exécute à nouveau le même MSI, (et les installations futures sur le même ordinateur portable), le fichier msflxgrd.ocx se déploie. Au début, je soupçonnais qu'il s'agissait d'un problème de regsvr32, mais comme il n'y a pas de fichier à enregistrer, il semble que ce soit plutôt un problème de déploiement. J'ai les droits d'administration sur les machines.

J'ai des liens vers les journaux MSI aquí :

Quelqu'un peut-il m'aider ?

Merci !

0voto

Christopher Painter Points 32519

D'après ce que je vois dans le journal 1, la machine n'est pas aussi propre que vous le pensez. FindRelatedProducts trouve une installation précédente de votre produit et demande à RemoveExistingProducts de la désinstaller avant d'installer votre nouvelle version.

J'ai vu des situations où les règles des composants sont violées et où MSI pense qu'un fichier n'a pas besoin d'être installé, mais le fichier est ensuite désinstallé par la suppression du produit mis à niveau et le fichier finit par ne pas être installé. En désinstallant et en réinstallant, vous divisez l'opération en deux étapes, de sorte que lorsque la seconde installation évalue la nécessité du fichier, celui-ci est déclaré oui et est installé.

Le fait qu'il s'agisse d'un serveur COM OCX n'est qu'une coïncidence et n'a pas vraiment d'incidence sur le véritable problème.

J'ai besoin de la MSI déjà installée et de la mise à jour de la MSI pour vous donner des remèdes spécifiques.


Début de l'action 14:55:44 : FindRelatedProducts. MSI (s) (A0:18) [14:55:44:119] : PROPERTY CHANGE : Ajout de la propriété PREVIOUSVERSIONSINSTALLED. Sa valeur est '{08D8BF6E-E399-4B8A-8B8D-7DFF68F81131}'. MSI (s) (A0:18) [14:55:44:119] : Sauter l'action : ERRCA_CANCELNEWERVERSION (la condition est fausse) MSI (s) (A0:18) [14:55:44:119] : Exécute l'action : VSDCA_VsdLaunchConditions Action terminée 14:55:44 : FindRelatedProducts. Valeur de retour 1.

0voto

Christopher Painter Points 32519

Ma réponse précédente consistait à expliquer ce qui n'allait pas. Cette réponse sera comment le réparer.

InstallShield distribue un module de fusion pour ce contrôle qui contient la version 6.0.84.18. Cependant, il semble que ce module de fusion soit ancien et n'inclut pas une mise à jour de sécurité publiée par Microsoft il y a quelques années. Voir le fil de discussion :

Modules de fusion mis à jour pour le bulletin de sécurité MS08-070

Dans ce fil de discussion, Mike Marino a essayé d'obtenir des modules de fusion mis à jour auprès de Microsoft, mais on lui a répondu :

Microsoft ne fournira pas de modules de fusion pour ces derniers. Ils recommandé aux utilisateurs de construire leurs propres MSM ou d'inclure ces fichiers fichiers dans leurs propres MSI.

Voici donc ce que je ferais. Assurez-vous que la msflxgrd.dll est la dernière version de MS08-070 (6.1.98.14) ou plus récente. Autorisez-la dans votre installateur dans le répertoire SystemFolder. Marquez-le comme Permanenet = true. Définissez l'attribut Register sur vsdraCOM et définissez SharedLegacyFile = true.

Reconstruisez votre installateur et testez à nouveau votre scénario de mise à niveau. Vous devriez être prêt à partir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X