我试图从WPF应用程序运行一个Python脚本,但是我不知道如何在客户机上找到该文件。我知道ClickOnce会将文件安装到AppData\Local\,但这似乎是一种搜索脚本的糟糕方法。在
在我的代码中,我启动了一个shell,如下所示:
var p = new Process();
p.StartInfo.FileName = @"C:\Python27\python.exe";
p.StartInfo.Arguments = String.Format("{0} {1}", ScriptName, args);
//p.StartInfo.WorkingDirectory = @"<path\to\project>";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
在我的开发机器上,WorkingDirectory
参数如果设置为项目路径就可以了,因为Python脚本就在那里。在
我在ClickOnce文件清单中包含了该脚本,并且我已经验证了它最终会出现在应用程序部署的每个版本中。我还验证了该文件最终在客户机上的模糊层次结构中结束,因此除了我无法让我的WPF应用程序实际运行它之外,一切都就绪了。我总是可以将文件复制到机器上的一个已知位置,但这完全违背了ClickOnce的意义。在
任何想法都将不胜感激。在
我有这个办法,但我不能百分之百确定怎么做。不管怎样,这是我所做的,以防它帮助别人。在
不要设置进程工作目录(已经在我的问题中注释掉了) 按如下所示设置Python脚本属性:
在“项目属性”下的“发布”选项卡中,将应用程序文件中的脚本设置为
Include
。在通过上述更改,我的应用程序可以正确地部署到客户机上。在
相关问题 更多 >
编程相关推荐