0

我使用 vb.net visual studio 2008 for windows desktop 创建了一个共享软件应用程序,并使用 innosetup 5.3.8 对其进行了打包。问题是当我在 C:\Program Files\Application 中安装了应用程序并且它成功运行(使用应用程序的试用期)时,我还可以通过安装在不同的目录中以相同的设置重新安装应用程序。例如 C:\Program Files\Application new 。C:\Program Files\Application new 中的应用程序没有任何已安装的设置。

我哪里错了。我需要在我的应用程序(vb.net)或 innosetup 中处理这个问题吗?如何照顾 innosetup 中已安装的路径或通过升级旧应用程序将已安装应用程序的设置带到新安装的路径。

我不想在注册表中写任何东西,因为该应用程序不需要任何管理权限要求。如果我将应用程序安装在同一路径中,它会更新为旧设置被接管到这个新设置,它工作正常。

4

1 回答 1

1

Windows 应用程序通常将其设置保存在注册表中HKEY_CURRENT_USER\Software\YourCompany\YourApp或保存为%APPDATA%\YourCompany\YourApp. 这两个位置都可以在没有管理员权限的情况下写入,并且两个位置都是特定于用户的。也就是说,如果两个用户使用同一台计算机,那么他们都可以使用自己的设置来使用您的应用程序,而不会影响其他用户。

您永远不应该将任何设置保存在c:\Program Files. 写入 Program Files 文件夹需要管理员权限。如果您的应用程序没有清单,那么写入 Program Files 可能会起作用。真正发生的是,您正在写入 Program Files 文件夹的文件被重新路由到 VirtualStore。除非系统管理员禁用了 VirtualStore。那么你的申请就会失败。

如果您希望您的应用程序健壮,它应该只将设置保存到HKEY_CURRENT_USER\Software\YourCompany\YourApp和/或%APPDATA%\YourCompany\YourApp. 如果在这些位置找不到以前保存的设置,您的应用程序应使用其默认设置。

于 2010-07-17T14:37:39.130 回答