我需要构建一个容器 C# WinForm 应用程序,该应用程序将在按钮单击事件中吐出另一个 WinForm 应用程序的.exe文件。
例如:我有一个名为ProjectA的Winform应用程序,它接受一个启动参数。现在我有一个名为ProjectB的容器WinForm App。我想通过在单击按钮时将所需的参数传递给 ProjectA 应用程序,在 Project B 中以编程方式生成ProjectA.exe。
在谷歌上找不到与此相关的任何内容。任何人都可以投入一些光来实现这一目标。
请注意,Winforms应用程序都必须用C#编写。
我有一个非常模糊的想法,即使用MSBuild命令来构建项目A,这反过来将产生其.exe 但是我对此不太清楚。
没有必要为此弄乱MSBuild。您可以将程序的代码生成为字符串,然后动态生成可执行文件:
https://support.microsoft.com/en-us/help/304655/how-to-programmatically-compile-code-using-c-compiler
举个例子:
Process.Start(@"C:Program Files (x86)MSBuild12.0BinMSBuild.exe", @"d:app1app1.sln");
再比如:
Process.Start(@"C:Program Files (x86)MSBuild12.0BinMSBuild.exe", @"d:app1app1.sln /t:Rebuild /p:Configuration=Debug;TargetFrameworkVersion=v4.0");
将上面的代码放在按钮单击上。