Использование System.Diagnostics C ++. Net 2003 fx1.1 - PullRequest
0 голосов
/ 17 февраля 2009

Когда ClickOnce развертывает приложения, он генерирует файл .application, который позволяет вам выполнить приложение, поэтому основное приложение построено на C ++. Net 2003 с использованием Fx1.1, когда я сказал ему, что вызывает первый файл (.application). файл из приложения ClickOnce Deployment C # 3.0) он не знал, как ¿?!

Я пытаюсь написать фрагмент кода, приведенный ниже код не может "открыть" файл приложения, созданный из ClickOnce. Спасибо

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
             System::Diagnostics::Process app ;
             app.StartInfo->FileName = "C:\INFORME\SRIMedico.application";
             app.StartInfo->Arguments = "";
             app.Start();

         }

1 Ответ

1 голос
/ 17 февраля 2009

Мне не очень понятно, что именно вы ищете, но насколько я знаю, ClickOnce не предназначался для развертывания приложений VC ++.

См. Развертывание ClickOnce для Visual C ++

Edit:

Есть одна вещь, которая бросается в глаза в вашем примере кода: вы не избежали символа "\" (который является специальным символом в C ++), и в этом случае указанный вами путь будет недействительным. Пожалуйста, попробуйте это так:


    // .. rest of code in your sample ommited 
    app.StartInfo->FileName = "C:\\INFORME\\SRIMedico.application";
    // .. rest of code in your sample ommited

Еще одна вещь, которую я упустил ранее, это то, что хотя вы можете использовать System :: Diagnostics :: Process для запуска установщика приложения ClickOnce, он работает только с использованием того места, откуда вы изначально установили приложение, а не того места, где оно было установлены. См. Раздел Замечания в документации Process.StartInfo .

Вы также можете использовать справочный файл приложения .appref-ms для запуска приложения, если оно установлено на компьютере. Предполагая, что этот файл находится в C: \ INFORME \, вы можете написать что-то вроде этого:



    System::Diagnostics::Process^ app = gcnew System::Diagnostics::Process()
    app->StartInfo->FileName = "C:\\INFORME\\SRIMedico.appref-ms";
    app->StartInfo->Arguments = "";
    app->StartInfo->CreateNoWindow = "false";
    app->Start();

Надеюсь, это поможет!

...