Appeler un projet de la même solution

Messages postés
34
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
22 juin 2011
- - Dernière réponse : alexandrevandenberghe
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
- 10 juin 2011 à 12:00
bonjour,

Je développe une grosse application découper en plusieurs programme, j'ai donc plusieurs projet dans la même solution. En cliquant sur un bouton je voudrais lancer l'autre application.

je ne sais pas faire et je ne trouve pas sur internet.

Clement B
Afficher la suite 

6 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Salut,

lorsque tu "génères" (compile) la solution, chacun de tes projet l'est. Les exe/dll générées seront alors créés dans le répertoire maSolution/monProjetAnnexe1/bin/Release/ (si tu compiles en release, sinon Debug/). Tu peux donc les atteindre ainsi.

Une technique un peu plus propre (à mon goût) est d'utiliser les commandes post-compilation (Propriété du projet > Evénement de génération > lignes de commande après génération). Tu pourras ainsi automatiser la copie des tes exe/dll annexes vers le répertoire bin/Release de ton projet maître. Tes appels et ton déploiement seront alors simplifiés.
Commenter la réponse de cs_jopop
Messages postés
34
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
22 juin 2011
0
Merci
c'est ça le truc, si je vais chercher l'applic en suivant le chemin
maSolution/monProjetAnnexe1/bin/Release/
ca va pas suivre lors de la publication, si?

la technique propre je doit faire comment?

Clement B
Commenter la réponse de bobarman
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Effectivement ça va te galérer pour tes déploiements, d'où la méthode propre.
Pour cela il faut dans chacun de tes projets annexes :
- allez dans "Propriété du projet",
- onglet "Evénements de génération",
- dans la case "lignes de commande après génération" tu mets un truc du genre :
xcopy /s /y "$(ProjectDir)bin\Release\*.exe" "$(SolutionDir)ProjetMaitre\bin\Release"


(je considère que ton projet maître s'appelle ProjetMaitre)
(je considère que tu compiles en Release pour tous tes projets)
(je considère que c'est un exe qui est généré dans tes projets annexes)

Ensuite dans ton projet maître tu auras simplement à écrire un truc comac :
Process.Start("ProjetAnnexe1.exe")


Et pour le déploiement seul le répertoire ProjetMaitre/bin/Release sera a exporter, car il contiendra tout (attention toutefois si t'embarques des DLL tiers).
Commenter la réponse de cs_jopop
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
2
0
Merci
Bonjour,

Moi j'ai une solution sur Visual Studio 2010 qui contient 4 projets : 1 "Lanceur", 1 "DEV", 1 "TEST" et 1 "LIVE".

Dans le projet "LANCEUR" l'utilisateur choisi s'il veux bosser en "TEST" ou "LIVE" (le "DEV" est reservé aux utilisateurs IS), et en fonction du choix le projet "TEST" ou "LIVE" est lancé.

Ce que j'ai eu à faire est assez simple, mais je ne sais pas s'il pourra être appliqué à ton probleme.

Dans le projet "LANCEUR" j'ai ajouté comme reference les projet "LIVE" "TEST" et "DEV", et lorsque l'utilisateur choisi "LIVE" ou "TEST" alors je lance la fiche du menu qui va bien :

If rbLive.Checked Then
   Dim fNew As LIVE.frmMainMenu = New LIVE.frmMenu
   Me.Visible = False
   fNew.ShowDialog()
ElseIf rbTest.Checked Then
   Dim fNew As TEST.frmMainMenu = New TEST.frmMenu
   Me.Visible = False
   fNew.ShowDialog()
ElseIf rbDev.Checked Then
   Dim fNew As DEV.frmMainMenu = New DEV.frmMenu
   Me.Visible = False
   fNew.ShowDialog()
End If


J'espere que cela aidera...
Dans tous les cas cela fonctionne parfaitement chez moi.
Commenter la réponse de alexandrevandenberghe
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
Dans ton cas les projets doivent tous être référencés dans "LANCEUR".
(je précise pour que bobarman ait toutes les infos pour tester ta méthode)
Commenter la réponse de cs_jopop
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
2
0
Merci
Exact, et j'ajouterai aussi que je peux "acceder" aux projet "LIVE", "TEST" et "DEV" depuis "LANCEUR" mais je ne peux pas "acceder" au projet "LANCEUR" depuis "LIVE" ou depuis "TEST" ou depuis "DEV", je n'ai testé qu'une seule fois (par curiosité parce que je n'en avais pas l'utilité) et cela n'a pas fonctionné car si j'ajoute "LANCEUR" comme reference dans un des projets "LIVE" ou "TEST" ou "DEV" alors j'ai une erreur du genre "reference circulaire"...
Commenter la réponse de alexandrevandenberghe