【问题标题】:why my installation folder where I installed exe, dll required data to be used by application is dependent为什么我安装 exe、dll 应用程序需要使用的数据的安装文件夹是依赖的
【发布时间】:2013-05-24 06:10:32
【问题描述】:

我正在开发 wpf 应用程序,我的安装将所有必需的数据(dll、exe 等)保存到驱动器上的某个文件夹中(我已经指定了默认路径)。当我更改此文件夹时(出于安全目的,我正在应用 CLSID)应用程序不会找到该文件夹​​并使用相同的文件夹和数据重新安装它,这意味着我的安装依赖于该文件夹。为什么会这样?如何使其独立,以便对文件夹的任何更改都应使应用程序正常运行?我正在使用 Visual Studio 安装程序来创建设置。请帮助我。

【问题讨论】:

  • 安装过程中或安装后是否更改文件夹?安装是否在配置文件或注册表中注册任何内容?
  • 感谢 Erno de Weerd 的回复。实际上,我通过将 CLSID 键附加到现有路径来更改文件夹路径,但我没有在注册表中输入
  • 安装过程中或安装后是否更改文件夹路径?
  • 安装后我将文件夹路径 C:\\xyz 更改为 c:\\xyz。{132edafg23w34erer}
  • 您能解释一下重命名文件夹如何使其安全吗?

标签: .net wpf setup-project


【解决方案1】:

编辑

显然你正在尝试secure the folder

你成功了。

用户不能再访问它,也不能在其中运行程序。这不是一个错误,它是一个特性。在我看来,您在抱怨当您锁定文件夹时,您将无法再访问该文件夹...


根据您在安装后更改文件夹的 cmets。

可能会出什么问题

安装应用程序时,应用程序将在注册表中注册,以便可以卸载它。

此外,可以注册应用程序的组件,以便在执行期间可以找到它们。

此外,在设置过程中,可以在写入配置存储(数据库、注册表、配置文件等)的(自定义)操作中使用安装路径,从而使应用程序依赖于这些设置。

开始菜单或桌面上的快捷方式也指向旧位置。因此,当使用这样的快捷方式启动应用程序时,可能会导致 Windows 检查/运行设置,因为它找不到应用程序。

最后,如果您将文件扩展名与应用程序关联并通过打开文件来启动应用程序,应用程序的注册也会被破坏。

如何解决这个问题

首先:不要在设置后更改文件夹名称。它将破坏我上面提到的所有依赖项。更改文件夹名称不会以任何方式提供安全性。

通过让用户输入正确的文件夹名称(包括 CLSID)来运行安装程序并将应用程序安装到正确的文件夹中,或者通过在用户输入路径后修改安装程序文件夹将 CLSID 附加到安装程序中。

【讨论】:

  • 我也试过这个技巧:在应用程序文件夹的 DefaultLocation 如果我提供带有附加 CLSID 的路径(即我使用 C:\\xyz.{q345rt234tdsfg24t45g} 而不是 C:\\xyz)然后在安装后,单击快捷方式时,应用程序将无法打开。为什么会这样?
  • 是的,我检查了这个,我的快捷方式指向了应用程序文件夹中包含的正确 exe
  • 我还尝试了一个技巧:我在目标位置创建了新文件夹并将所有数据添加到该文件夹​​,并将所有必要的数据(如 .dll、.exe、.ico 等)保存在文件夹之外,以便删除安装的依赖,但没有用
  • 是的,在锁定文件夹后,它无法从外部访问,但可以通过编程方式访问,我正在使用它并且工作正常,但问题是我的快捷方式无法这样做,因此安装了每个我舔后的时间
  • 这不是您可以解决的问题。它已被锁定,因此快捷方式无法访问它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多