Генерация Winforms Project .exe программно из приложения Winforms - PullRequest
0 голосов
/ 05 июня 2018

У меня есть требование для создания контейнера C # WinForm Application, который будет выплевывать файлы .exe другого WinForm приложения при событии нажатия кнопки.

Например: у меня есть одно приложение Winform с именем ProjectA, который принимает один аргумент запуска.Теперь у меня есть приложение WinForm контейнера с именем ProjectB .Я хочу сгенерировать ProjectA.exe программно в ProjectB, передав необходимый параметр приложению ProjectA по нажатию кнопки.

Не удалось найти что-либо релевантное по этому поводу в Google.Может ли кто-нибудь пролить некоторый свет на достижение этой цели?

Обратите внимание, что оба приложения Winforms должны быть написаны на C #.

У меня есть одна очень смутная мысль об использовании MSBuild Команда для сборки ProjectA, которая, в свою очередь, сгенерирует его .exe. Однако я не слишком уверен в этом.

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

В качестве примера:

Process.Start(@"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe", @"d:\app1\app1.sln");

Другой пример:

Process.Start(@"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe", @"d:\app1\app1.sln /t:Rebuild /p:Configuration=Debug;TargetFrameworkVersion=v4.0");

поставить указанный выше код на нажатие кнопки.

0 голосов
/ 05 июня 2018

Для этого не нужно связываться с MSBuild.Вы можете сгенерировать код вашей программы в виде строки, а затем сгенерировать исполняемые файлы на лету:

https://support.microsoft.com/en-us/help/304655/how-to-programmatically-compile-code-using-c-compiler

...