Appeler un projet de la même solution

bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 - 9 juin 2011 à 09:58
 Utilisateur anonyme - 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

6 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
9 juin 2011 à 10:07
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.
0
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
9 juin 2011 à 10:41
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
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
9 juin 2011 à 11:17
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).
0
Utilisateur anonyme
10 juin 2011 à 11:22
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.
0

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

Posez votre question
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
10 juin 2011 à 11:25
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)
0
Utilisateur anonyme
10 juin 2011 à 12:00
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"...
0
Rejoignez-nous