1

我创建了一个小型应用程序,用户通过指向网络共享的桌面快捷方式启动它。每当我重新编译应用程序并希望将其移动到网络共享以使其可用时,它总是被许多使用它的用户锁定,这是可以理解的。我没有得到的是我可以关闭所有句柄(net file 1234 /close)并且用户不受影响,即他们仍然可以在应用程序上工作。然后我复制新文件并要求他们重新启动。

有没有办法在用户启动后以编程方式从网络 exe 文件中“切断”用户,这样我就不必每次都手动关闭所有句柄?

4

1 回答 1

3

他们会受到影响,但抖动的工作方式确实使他们的程序不太可能崩溃。当您在代码中使用反射或用户的机器受到来自其他进程的内存压力并且程序执行未经过抖动的代码时,可能会发生崩溃。YMMV。

此处正确的部署选择是 ClickOnce。这会在用户机器上创建程序的本地副本。当它们重新启动时,它会自动看到您的更新。

一个可能的创可贴是重命名可执行文件。之所以有效,是因为 Windows 锁定了文件内容,而不是目录条目。这使您可以复制具有相同名称的更新。任何重新启动应用程序的用户现在都将获得新版本。您最终将能够删除重命名的文件。但首先要支持 ClickOnce。

于 2013-08-15T11:29:52.990 回答