如何在 Windows 中禁用文件锁

如何在 Windows 中禁用文件锁

如何在 Windows 中禁用文件锁定,以便可以像在 Linux 系统中一样覆盖锁定的文件?

我正在开发一个插件,它是一个 dll。在再次编译它之前,我总是需要在加载它的程序中卸载它。如果我可以一直编译它,然后稍后通过再次卸载/加载来重新加载它,这将大大减少工作量。对于 Linux 来说这没有问题,编译器只会覆盖插件,下次打开时将使用新版本。Windows 对其有一个写锁,因此编译器无法写入它并中止。

答案1

您不能“仅仅”禁用可执行文件/库文件的锁定。

但是,你可以移动或重命名正在使用的文件,因此让您的构建过程将现有的 DLL 移动到其他地方并在其位置编译新的 DLL。


他们很可能没有添加隐藏开关,因为操作系统的各个部分都假设它会一直存在。例如,文件系统代码可能期望文件始终至少有一个链接(因此在删除最后一个链接后可以立即释放空间)——所以如果强制它删除正在使用的文件,可能会导致各种文件系统损坏,例如两个文件使用相同的磁盘空间。

话虽如此,旧事物新曾经写道,在 WinNT 内核中允许 Linux 风格的文件删除实际上并不难,他们只是为了避免一些兼容性问题才没有这样做。

相关内容