Process.Start是否存储远程执行文件的本地副本?

我需要直接从远程计算机执行一个程序,由于他们与程序的networking许可系统。
您在服务器上安装并注册一次,所有客户端通过打开可执行文件通过networking共享访问它。 我写了一个小应用程序,可以很容易地访问networking共享并打开程序。

到目前为止没有问题。 我能够像这样执行程序,并打开。 好极了

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

但程序popup消息,该程序可能已被复制。 就好像它已经在本地执行了一样。

如果我通过资源pipe理器打开程序,则不会发生此问题,只需通过以下方式打开=> \\192.168.0.100\Share\MyProgram.exe

Process.Start()是否存储在本地机器上临时打开的文件? 如果是这样,有没有办法?

其他信息:
问:有人可能会认为,为什么要经历这么多的麻烦,如果你能在桌面上创build一个快捷方式? 或者为什么不制作batch file?
答:国际海事组织,这是更容易模糊c#中的凭据。 只有在必要时才能访问networking共享。 这只有当有人想要使用该程序时才需要。

不,不。 它确实在内存中加载文件,但对于每个启动的程序都是一样的。

您可以使用简单的控制台应用程序自行尝试:

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

这里打印\\someserver\temp\ConsoleApplication8.exe

您提到的程序可以对计算机名称进行一些检查,例如检查是否被复制。 我建议检查进程监视器 ,看它是否创建/读取包含“上次使用的计算机名称”或类似的文件。 我只是用控制台应用程序自己试了一下,但没有指向被复制的文件。