在 Visual Studio 安装程序中取消设置 SharedLegacyFile

Unset SharedLegacyFile in Visual Studio Installer

我是安装程序项目的新手,正在修改设置以尝试学习一些东西。我打开了 SharedLegacyFile,卸载我的应用程序后文件仍然存在。我手动删除了文件,以便回到空白状态(应用程序已经卸载,只剩下文件)。然后我安装了一个旧版本,我知道以前在卸载时删除了所有文件。卸载了这个版本,文件仍然存在。

看来SharedLegacyFile是某处的系统设置。我该如何扭转这一局面?唯一的搜索结果是来自先前 Stack Overflow 问题的 this。不过它没有提到如何reverse/unset。

找到答案感谢 this 资源:

It uses the Windows' shared file counting feature (located in the registry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs). Each time the file is registered, the reference count for the file is incremented. When an application using the file is removed, the reference count is decremented. If the count reaches zero, the file is deleted.

但对我来说,我的文件没有在此注册表项中找到。我在注册表中搜索了 SharedDLLs 密钥并找到了 3 个条目:

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\SharedDlls
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\SharedDlls

我的文件是在来自 WOW6432NodeSharedDlls 密钥中找到的。删除条目,卸载程序再次运行。