点击式应用中运行捆绑的 Python 脚本

2024-05-08 19:25:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从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的意义。在

任何想法都将不胜感激。在


Tags: 文件方法代码脚本程序运行机器true应用程序
2条回答

我有这个办法,但我不能百分之百确定怎么做。不管怎样,这是我所做的,以防它帮助别人。在

不要设置进程工作目录(已经在我的问题中注释掉了) 按如下所示设置Python脚本属性:

  1. 构建操作=内容
  2. Copy to Output Directory=始终复制

在“项目属性”下的“发布”选项卡中,将应用程序文件中的脚本设置为Include。在

通过上述更改,我的应用程序可以正确地部署到客户机上。在

相关问题 更多 >

    热门问题