【发布时间】:2013-08-21 21:00:14
【问题描述】:
..我不知道为什么。我可以从调试文件夹(在 wpf 中创建的应用程序)运行 exe 输出文件,但我无法运行我需要将产品发送到以太网连接重量的文件。 此 exe 文件读取 .plu 文件(逐个产品)并将它们添加到权重内存中。
我正在使用的代码:
using (StreamWriter sw = new StreamWriter(appPath + "\\Wagi\\" + cbi.Content.ToString() + "\\Kasa1.plu"))
{
sw.WriteLine("[MT_STAND_FIRE,PLU,WRITE,0,0,0,0]");
foreach (DataRowView item in prodDG.Items)
{
//write lines about products
}
sw.WriteLine("[MT_STAND_FIRE,Extra Text,WRITE,0,0,0,0]");
sw.WriteLine("[MT_STAND_FIRE,Preset Key,Write,0,0,0,0]");
}
string ExecutableFilePath = appPath + @"\Wagi\" + cbi.Content.ToString() + @"\bComScale.exe";
if (File.Exists(ExecutableFilePath))
{
Process.Start(ExecutableFilePath);
}
有什么想法吗?
【问题讨论】:
-
你有什么错误吗?您是否尝试在命令提示符下运行该路径?当您从元素连接路径时,请使用
Path.Combine -
我尝试在字符串 ExecutableFilePath 中放置断点,读取值并将文本插入资源管理器的地址栏中 - 工作正常。
-
那么当您在
Process.Start(...)上设置断点时,它会执行命令并继续前进、挂起、引发错误吗? -
点仍然存在。可能是同一个问题。应用程序在哪里搜索输入/配置文件或写入错误文件?当前文件夹或应用程序文件夹?当您从资源管理器中双击 exe 时,它们是相同的,但是当您从另一个应用程序运行它时,它们可能会有所不同。在某个随机文件夹中打开命令提示符,过去的路径并尝试执行并查看会发生什么
-
应该很容易修复。尝试
Process.Start(ProcessStartInfo),除了要执行的文件,提供ProcessStartInfo.WorkingDirectory