使用innosetup打包的共享软件vb.net应用程序,安装在不同的目录中创建2个不同的应用程序集

时间:2010-07-16 09:31:09

标签: vb.net desktop-application packaging inno-setup shareware

我使用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中处理已安装的路径,或者通过升级旧路径将已安装的应用程序的设置带到新安装的路径。

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

1 个答案:

答案 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。如果在这些位置找不到以前保存的设置,您的应用程序应使用其默认设置。