我正在开发 wpf 应用程序,我的安装将所有必需的数据(dll、exe 等)保存到驱动器上的某个文件夹中(我已经指定了默认路径)。当我更改此文件夹时(出于安全目的,我正在应用 CLSID)应用程序不会找到该文件夹并使用相同的文件夹和数据重新安装它,这意味着我的安装依赖于该文件夹。为什么会这样?如何使其独立,以便对文件夹的任何更改都应使应用程序正常运行?我正在使用 Visual Studio 安装程序来创建设置。请帮助我。
问问题
181 次
1 回答
2
编辑
显然您正在尝试保护该文件夹。
你成功了。
用户不能再访问它,也不能在其中运行程序。这不是一个错误,它是一个特性。在我看来,您在抱怨当您锁定文件夹时,您将无法再访问该文件夹...
根据评论,您在安装后更改文件夹。
可能会出什么问题
安装应用程序时,应用程序将在注册表中注册,以便可以卸载它。
此外,可以注册应用程序的组件,以便在执行期间可以找到它们。
此外,在安装过程中,可以在写入配置存储(数据库、注册表、配置文件等)的(自定义)操作中使用安装路径,从而使应用程序依赖于这些设置。
开始菜单或桌面上的快捷方式也指向旧位置。因此,当使用这样的快捷方式启动应用程序时,可能会导致 Windows 检查/运行设置,因为它找不到应用程序。
最后,如果您将文件扩展名与应用程序关联并通过打开文件来启动应用程序,应用程序的注册也会被破坏。
如何解决这个问题
首先:设置后不要更改文件夹名称。它将破坏我上面提到的所有依赖项。更改文件夹名称不会以任何方式提供安全性。
通过让用户输入正确的文件夹名称(包括 CLSID)来运行安装程序并将应用程序安装在正确的文件夹中,或者通过在用户输入路径后修改安装程序文件夹将 CLSID 附加到安装程序中。
于 2013-05-24T08:50:45.323 回答