2010-10-22 6 views
2

Notre société utilise ClickOnce pour déployer en interne notre application principale (AppA). Je suis en train d'écrire une application d'aide (AppB) qui, idéalement, serait lancée via AppA. Nous avions prévu d'inclure AppB dans la solution d'AppA, puis d'ajouter une référence à AppB.Exécuter un nouveau processus via la méthode Appelez dans ClickOnce

Est-il possible de faire quelque chose comme Process.Start en appelant AppB.Program.Main()? Puis, pour ajouter un niveau de complexité, comment cela est-il pris en compte dans le déploiement ClickOnce d'AppA?

Toute idée de me pointer dans la bonne direction serait grandement appréciée.

Merci.

Répondre

0

J'ai trouvé la solution pour nous de voir s'ils avaient déjà installé AppB en recherchant le raccourci .appref-ms dans le menu Démarrer. S'ils l'avaient, faites un Process.Start(). Si ce n'est pas le cas, envoyez-les à l'URL d'installation.

Private Sub LoadAppBFromClickOnce() 
    Dim argsToPass As String = "?arg1=1" 

    Dim s As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Programs), "CompanyName", "AppB.appref-ms") 
    If File.Exists(s) Then 
     Try 
      Process.Start(s, argsToPass) 
     Catch ex As Exception 
      Throw ex 
     End Try 
    Else 
     MessageBox.Show(String.Format("AppB is not installed. Please install from {0}.", APPB_INSTALL_URL), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
     Process.Start("iexplore.exe", APPB_INSTALL_URL) 
    End If 
End Sub 
3

oui, cela peut être fait. Nous avons un clic une fois une application qui appelle un exe. Lorsque nous le déployons, nous devons déployer des.exe dans le dossier Resources. Aussi, nous le déployons comme une confiance totale.

Questions connexes