我创建了一个小应用程序,用户通过指向网络共享的桌面快捷方式启动。每当我重新编译应用程序并希望将其移动到网络共享以使其可用时,它总是被许多使用它的用户锁定,这是可以理解的。我没有得到的是我可以关闭所有句柄(网络文件1234 /关闭)并且用户不受影响,即他们仍然可以在应用程序上工作。然后我复制新文件并要求他们重新启动。
有没有办法在网络exe文件启动后以编程方式“切断”网络exe文件中的用户,这样我就不必每次都手动关闭所有句柄?
答案 0 :(得分:3)
它们会受到影响,但抖动的方式确实使它的程序崩溃的可能性有点小。当你在你的代码中使用Reflection或者用户的机器受到来自其他进程的内存压力并且程序执行尚未被jitted的代码时,可能会发生崩溃。 YMMV。
这里适当的部署选择是ClickOnce。这会在用户的计算机上创建程序的本地副本。它会在重新启动时自动看到您的更新。
可能的创可贴是重命名可执行文件。这是有效的,因为Windows会锁定文件内容,而不是目录条目。这使您可以使用相同的名称复制更新。任何重启应用程序的用户现在都将获得新版本。您最终将能够删除重命名的文件。但首先要支持ClickOnce。