我有一个应用程序,它被放置在专用服务器上。它具有可插入的结构。它被设想为软件,具有一些来自网络应用程序的功能,例如能够“动态”替换其模块,而其他用户则在其用户空间中启动此应用程序。
为了实现此功能,我制作了一个带有多个插件的启动器,并将其放入共享文件夹中。就这样吧C:\App
。有一个 EXE 被调用MultiPlug2.exe
,所有插件都放在其中C:\App\Plugins
并有.bpl
扩展名(是的,该死的旧 Delphi XE2 被用作 IDE,我讨厌决定使用它的那一天)。启动器会Start.cmd
检查当前用户是否有%USERPROFILE%\App
文件夹,如果没有,则创建它。然后它为mklink linkname target
这些文件夹中的每个 EXE 和 BPL 创建符号链接(即,我允许在服务器策略中创建符号链接)。然后它启动了%USERPROFILE%\App\MultiPlug2.exe
。
启动后,一段时间内,我可以操作目标文件夹中的文件,尤其是删除和替换它们,但很快它们就会被锁定,就像我MultiPlug2
直接从其所在的文件夹启动一样。我该如何停止锁定它们?
答案1
这些文件是否%USERPROFILE%\App
只是指向 下文件的符号链接C:\App
?如果是这样,那么用户实际上是直接从原始文件夹运行它。符号链接不是原始文件的副本,而是原始文件。