我使用vb.net visual studio 2008为windows桌面创建了一个共享软件应用程序,并使用innosetup 5.3.8打包它。问题是当我在C:\ Program Files \ Application中安装应用程序并且它运行成功(使用应用程序的试用期)时,我还能够通过安装在不同的目录中以相同的设置再次安装应用程序。例如C:\ Program Files \ Application new。 C:\ Program Files \ Application new中的应用程序没有已安装的应用程序的任何设置。
我哪里出错了。我是否需要在我的应用程序(vb.net)或innosetup中处理此问题。如何在innosetup中处理已安装的路径,或者通过升级旧路径将已安装的应用程序的设置带到新安装的路径。
我不想在注册表中写任何东西,因为应用程序不需要任何管理权限要求。如果我在同一路径中安装应用程序,它会更新,旧设置被接管到这个新设置,它工作正常。
答案 0 :(得分: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
。如果在这些位置找不到以前保存的设置,您的应用程序应使用其默认设置。