Pb deploiement Install personnalisée et raccourci sur le poste cible

dbaf Messages postés 9 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 14 février 2006 - 6 oct. 2005 à 11:25
SrBelial Messages postés 1 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 11 décembre 2008 - 11 déc. 2008 à 09:56
Bonjour,

J'ai un problème lors du déploiement de mon appli via le setup VS .NET, le raccourci créé sur le poste cible me lance le setup avant l'appli elle même !!
En fait, j'ai créé une classe (inclue dans une dll : Install.dll) héritant du System.Configuration.Install.Installer me permettant de lancer la création d'une base de données par un script lors du Setup. J'ai donc fait une action personnalisée prenant en compte la sortie principale de la dll Install. Jusque là ça fonctionne (prise en compte de ma nouvelle méthode Install lors du lancement du Setup).

Par contre, dans mon setup j'ai également la création de raccourci sur le poste cible (basé sur la sortie principale de mon appli) pour le lancement de mon appli et là ça ne va plus !! Lors de l'exécution du raccourci il lance la nouvelle méthode Install avant de lancer l'exe. Comment faire pour exécuter ma nouvelle méthode Install seulement lors du Setup et pas lors du lancement du raccourci??? HELPP !!!!

Quelqu'un a déjà eu le problème??

d_baf

5 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
6 oct. 2005 à 11:36
normalement ta méthode install est dans les actions personnalisées non ?

et le raccourcis pointe vers la sortie principale de ton projet...

Sébastien FERRAND
0
dbaf Messages postés 9 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 14 février 2006
6 oct. 2005 à 12:22
J'ai inclu ma methode Install dans une dll et mon action personnalisée est définit dans la partie "Installer" comme cela :
Name : sortie principal de Install.dll
Entry point :
Installer Class : True

Y'a un autre moyen de faire??

Le raccourci pointe effectivement sur la sortie principal de mon projet.

Par contre du coup, dans mon projet de déploiement je me retrouve avec deux sorties principales :
- sortie principale de mon projet
- sortie principale de Install.dll (nécessaire pour créer mon action personnalisée)

Info supplémentaire : si je créé le raccourci à la mano y'a pas de problème !! Y'aurait-il un bug dans la création de raccourci du Setup????

d_baf
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
6 oct. 2005 à 12:26
normalement, la création de raccourcis du setup marche bien... mais tu peux aller voir ceci : http://blogs.developpeur.org/sebmafate/archive/2005/09/26/11698.aspx

Sébastien FERRAND
0
dbaf Messages postés 9 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 14 février 2006
6 oct. 2005 à 17:22
Nickel !!
J'ai créé mes raccourcis avec la methode du tuto...ça marche nettement mieux !!
Par contre les raccourcis définit directement via le systeme de fichiers du Setup j'ai laissé tomber...ça m'a pas l'air de fonctionner tiptop...en tout cas pas dans mon cas

Merci pour le tuyau !!

d_baf
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SrBelial Messages postés 1 Date d'inscription jeudi 8 novembre 2007 Statut Membre Dernière intervention 11 décembre 2008
11 déc. 2008 à 09:56
Le sujet date carrément, mais étant tombé sur le même problème récemment, je vous fais part quand même de mes trouvailles (on sait jamais ça pourrait intéresser quelqu'un qui passerait par là de la même façon que je suis tombé sur ce sujet en cherchant comment résoudre ce problème)

Donc en effet dans le cas d'un projet de déploiement, la création de raccourcis (sur le bureau ou dans le menu démarrer) se fait en pointant vers la sortie principale d'un des projets que vous souhaitez déployer. C'est en tout cas la façon de faire recommandée dans un projet de déploiement.

Si aucune action personnalisée n'est présente pour customiser l'installation, pour moi tout se passe bien.
En revanche le symptôme apparait lorsque une ou des actions personnalisées sont présentes dans l'installeur : soit l'install se passe mal (recherche d'un fichier .installState introuvable, désinstallation impossible, ...) soit les raccourcis créés en pointant vers la sortie principale des projets ont pour effet de relancer l'exécution du .msi.

Petite explication à ce phénomène : si vous regardez les propriétés de ces raccourcis, vous verrez qu'ils ne pointent pas directement vers le fichier que vous souhaitiez exécuter, leur cible est en effet l'application déployée dans sa globalité (cible : "MonProjet") ...pas d'extension de fichier, rien, et le chemin "exécuter dans" pointe bien vers le dossier ou est censé se trouver la sortie principale du projet déployé.
Alors pourquoi donc est-ce que la cible de ces raccourcis ne lance pas ce que l'on attend ? le fichier est présent tout va bien ..... ???

Hé bien la réponse est qu'une des actions personnalisées de l'installeur ne s'est pas déroulée correctement (le plus souvent l'action "commit"), ce qui a pour effet qu'à chaque tentative de lancement du raccourci, l'installeur lance une réparation de l'installation avant de lancer l'application voulue....

Comment corriger ce problème? vérifiez que les fonctions Install, Commit, Rollback et Uninstall sont toutes les 4 implémentées par votre classe installer (celle qui se compile en dll utilisée pour les actions personnalisée), vérifiez également que vous utilisez cette classe dans les 4 actions personnalisées, même si les fonctions citées plus haut ne sont pas utiles à vos yeux, et enfin, vérifiez que ces fonctions font bien les appels suivants : (exemple en C#)

public override void Install(System.Collections.IDictionary stateSaver)
        {
            base.Install(stateSaver);
        }

        public override void Commit(System.Collections.IDictionary savedState)
        {
            base.Commit(savedState);
        }

        public override void Rollback(System.Collections.IDictionary savedState)
        {
            base.Rollback(savedState);
        }

        public override void Uninstall(System.Collections.IDictionary savedState)
        {
            base.Uninstall(savedState);
        }

voila voila,

.-SrB-.
0
Rejoignez-nous