Bonjour,
Je galère avec un programme que j'ai initialement écrit sous Windows et que je souhaite finalement faire tourner sous Linux.
Tout est ok, sauf un dernier point.
Mon programme appelle un script PHP (pas un site distant, je parle bien d'un fichier PHP) car il contient une librairie de plusieurs milliers de lignes que j'ai pas envie de m'amuser à porter en C#...
Initialement, j'avais fait ça :
- ajout du fichier php à mon projet avec un output sans compilation
- ajout de php.exe et phop.dll à mon projet avec un output sans compilation
Et appel de tout ce petit monde avec ce code :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ProcessStartInfo psi = new("php.exe", $"encrypt.php {key}") { CreateNoWindow = true, UseShellExecute = false }; Process.Start(psi).WaitForExit();
Nickel, ça fonctionne parfaitement sous Windows.
Sauf que là, php.exe c'est la version Windows évidement.
Donc sur mon Linux j'ai installé php :
Et je peux exécuter un script php comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2sudo apt-get install -y php-cli
Et là, c'est le drame...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 php test.php
Je ne trouve pas la syntaxe pour lancer tout ça depuis mon programme...
J'ai essayé :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ProcessStartInfo psi = new("php", $"encrypt.php {key}") {...} ProcessStartInfo psi = new($"php encrypt.php {key}") {...} ProcessStartInfo psi = new("php.exe", $"encrypt.php {key}") {...}
Mais rien n'y fait
Une idée ?
Pourtant, ça marche :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ProcessStartInfo psi = new("echo", "Hello world") {...}
Partager