Выполнить новый процесс с помощью вызова метода в ClickOnce - PullRequest
2 голосов
/ 23 октября 2010

Наша компания использует ClickOnce для внутреннего развертывания нашего основного приложения (AppA). Я нахожусь в процессе написания вспомогательного приложения (AppB), которое в идеале будет запускаться через AppA. Мы планировали включить AppB в решение AppA, а затем добавить ссылку на AppB.

Есть ли способ сделать что-то вроде Process.Start, вызвав AppB.Program.Main ()?

Затем, чтобы добавить уровень сложности, как этот фактор влияет на развертывание AppA в ClickOnce?

Буду очень признателен, если вы поймете меня в правильном направлении.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 23 октября 2010

да, это можно сделать.У нас есть одноразовое приложение, которое вызывает exe.Вот код

        System.Diagnostics.Process Proc = new System.Diagnostics.Process();
        Proc.StartInfo.FileName = "Resources\\des.exe";
        Proc.StartInfo.Arguments = "-D -u -k \"6AAAAA(!\" " + encryptedFileName + " " + newFileName;
        Proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        Proc.StartInfo.CreateNoWindow = true;
        Proc.Start();
        Proc.WaitForExit();

Когда мы его развернем, нам нужно развернуть des.exe в папке Resources.Кроме того, мы используем его как полное доверие.

0 голосов
/ 19 мая 2011

Я нашел решение для нас, чтобы увидеть, если они уже установили AppB, ища .appref-ms 'ярлык' в меню Пуск. Если у них было это, сделайте Process.Start (). Если нет, отправьте их по адресу установки.

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
...