Est-ce que Process.Start stocke une copie locale d’un fichier exécuté à distance?

Je dois exécuter un programme directement depuis un ordinateur distant, en raison du système de licence réseau dont ils disposent avec le programme.
Vous installez et enregistrez-le une fois sur un serveur et tous les clients y accèdent via le partage réseau en ouvrant l’exécutable. J’ai écrit une petite application qui devrait faciliter l’access au partage réseau et ouvrir le programme.

Aucun problème jusqu’à présent. Je suis capable d’exécuter le programme comme ça, et il s’ouvre. Yay

// Some cred and network stuff. // ... Process.Start("\\192.168.0.100\Share\MyProgram.exe"); 

Mais le programme affiche un message indiquant que le programme a été copié. C’est comme s’il avait été exécuté localement.

Ce problème ne se produit pas si j’ouvre le programme via l’explorateur, simplement en l’ouvrant de cette manière => \\192.168.0.100\Share\MyProgram.exe .

Est- Process.Start() que Process.Start() stocke les fichiers ouverts à distance localement sur la machine (temporairement)? Et si c’est le cas, y a-t-il un moyen de contourner le problème?

Infos complémentaires:
Q: Certains pensent peut-être, pourquoi avoir tant de problèmes pour cela, si vous pouviez simplement créer un raccourci sur votre bureau? Ou pourquoi ne pas créer un fichier batch?
A: IMO, il est plus facile de masquer les informations d’identification dans c #. L’access au partage réseau ne doit être donné que si nécessaire. Et cela n’est nécessaire que si quelqu’un veut utiliser le programme.

Non, ce n’est pas le cas. Il charge le fichier en mémoire cependant, mais c’est la même chose pour chaque programme que vous démarrez.

Vous pouvez l’essayer vous-même avec une simple application console:

 static void Main(ssortingng[] args) { Console.WriteLine(typeof(Program).Assembly.Location); Console.ReadKey(); } 

Ceci imprime \\someserver\temp\ConsoleApplication8.exe ici.

Le programme que vous mentionnez peut avoir des vérifications sur le nom de l’ordinateur, par exemple pour vérifier s’il a été copié. Je suggère de vérifier Process Monitor pour voir s’il crée / lit un fichier contenant le «dernier nom d’ordinateur utilisé» ou quelque chose de similaire. Je viens de l’essayer moi-même avec l’application console, mais rien ne pointe vers le fichier en cours de copie.