【发布时间】:2022-12-18 12:14:09
【问题描述】:
我通过 resx 添加 test.bat 作为资源。然后我试试
proc.StartInfo.FileName = myNamespace.Properties.Resources.test;
但它说
System.ComponentModel.Win32Exception: The system cannot find the file specified.'
我怎样才能解决这个问题?
这是我的完整代码:
public async void button_A_Click(object sender, EventArgs e)
{
button_A.Enabled = false;
await Task.Run(() => {
var proc = new Process();
proc.StartInfo.FileName = LOS_Installer.Properties.Resources.test;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.Arguments = path;
if (proc.Start())
{
void outputCallback(string data)
{
textBoxLog.AppendText(data);
textBoxLog.AppendText(Environment.NewLine);
}
proc.OutputDataReceived += (_, e) => Invoke(outputCallback, e.Data);
proc.ErrorDataReceived += (_, e) => Invoke(outputCallback, e.Data);
proc.BeginOutputReadLine();
proc.BeginErrorReadLine();
}
proc.WaitForExit();
});
button_A.Enabled = true;
}
小问题:资源管理器似乎不关心文件的扩展名。那么,如果我有 2 个同名但扩展名不同的文件怎么办?
【问题讨论】:
-
将资源复制到文件系统(例如临时文件夹)并从那里开始。
-
你的意思是使用绝对路径?如果是这样,那么它就有效