我正在开发C#Windows窗体应用程序项目。该表单包含一个按钮,并在按钮单击事件之后使用Process.Start()
方法启动cmd.exe。 StartInfo.Arguments()
包含一个指向存储在项目资源文件夹中的exe文件的路径(我创建了一个名为Resources的新文件夹,另一个名为SW1的子文件夹。该exe文件位于SW1文件夹中)
现在,exe文件存储在本地计算机的其他位置,我使用完整路径引用StartInfo.Argument()中的exe文件。但是,当我发布C#应用程序时,我希望exe文件将作为资源捆绑在一起。在这种情况下,如何引用exe文件?
private async void button1_Click(object sender, EventArgs e)
{
await RunCMDAsync();
}
private async static Task RunCMDAsync()
{
try
{
using (Process myProcess = new Process())
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = @"/C cd <path to the exe file on my local computer here> & <name of exe --additional arguments>";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
myProcess.StartInfo = startInfo;
myProcess.Start();
myProcess.WaitForExit();
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
在上面的代码中,无论何时启动cmd.exe进程,我都想使用StartInfo.Arguments()
传递两个参数
startInfo.Arguments = @"/C cd <path to the exe file on my local computer here> & <name of exe --additional arguments>";
第一个参数是cd进入包含exe文件的文件夹
(/C cd <path to the exe file on my local computer here>
)
第二个参数运行带有某些参数(<name of exe --additional arguments>
)的exe文件
将其发布为独立应用程序后,如何在资源> SW1文件夹中引用exe文件?在安装C#应用程序期间是否需要将exe文件提取到目标计算机上的某个位置,并使用与上面相同的代码,或者是否可以直接引用资源文件夹?
答案 0 :(得分:0)
如果您需要查找程序正在运行的目录(我不确定我是否理解您的问题),请使用System.AppDomain.CurrentDomain.BaseDirectory
。
string exePath = System.AppDomain.CurrentDomain.BaseDirectory +
"Resources\\SW1\\" + exefilenameWithExtension;