使用 Inno Setup 安装时应用程序无法运行

2024-02-27

我正在开发桌面数据库应用程序。使用rdlc报告和reportviewer。开发过程中一切顺利,reportviewer 可以顺利显示所有数据。我使用 Inno Setup 部署应用程序。但是当我安装该应用程序时,报告查看器不显示数据。当数据正确插入表中时。


对于使用 Inno Setup 安装时无法正常工作或完全失败的应用程序Program Files文件夹中,首先要测试的是尝试将应用程序手动部署到同一文件夹中。


如果手动部署后应用程序仍失败,最常见的问题是应用程序要求用户对应用程序文件夹具有写入权限。与现代版本的 Windows 一样,用户通常没有写入权限Program Files文件夹,应用程序无法运行。所以问题通常与Inno Setup无关,而是应用程序本身的问题。

解决问题的方法:

  • 最好的解决方案是重新设计应用程序,使其不需要对其文件夹的写入权限。 Windows 应用程序不应要求对其文件夹具有写入权限。这违反了 Windows 准则。应用程序应将数据写入用户配置文件文件夹(C:\Users\username\AppData)或公共数据文件夹(C:\ProgramData).
  • 一个肮脏的解决方法是让安装程序授予用户对安装文件夹的写入权限。仅当您无法修复应用程序时才执行此操作(例如,它是第 3 方应用程序)。
    See Inno Setup - 如何设置安装文件夹的权限 https://stackoverflow.com/q/34717752/850848.
  • 更严重的解决方法是将应用程序配置为以提升的(管理员)权限执行。
    See Inno Setup 桌面快捷方式(链接),其中设置了“以管理员身份运行”高级属性 https://stackoverflow.com/q/44073886/850848 or 如何使用 Inno Setup 在文件上设置“以管理员身份运行” https://stackoverflow.com/q/16978917/850848.
  • 另一个解决方案是启用旧版兼容模式,使 Windows 将所有应用程序写入尝试重定向到虚拟存储。也可以看看使用 Inno Setup 安装的应用程序将文件写入未知位置而不是其安装文件夹 https://stackoverflow.com/q/39718820/850848.

应用程序安装失败的原因还有许多其他可能的原因,包括:

  • 您省略了一些依赖项:

    • DLL库
    • .NET 程序集
    • .NET框架
    • Java运行时环境
    • 其他运行时
    • COM/ActiveX 对象等
  • 该应用程序需要一些配置:

    • a file
    • 注册表项[包括 COM/ActiveX 对象注册]
    • 环境变量等
  • 该应用程序不适用于从名称中包含空格的文件夹执行(Program Files).

  • 应用程序因 Windows 文件虚拟化而感到困惑(尽管不太可能)。看使用 Inno Setup 安装的应用程序将文件写入未知位置而不是其安装文件夹 https://stackoverflow.com/q/39718820/850848.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Inno Setup 安装时应用程序无法运行 的相关文章

随机推荐

  • Zend框架装饰器问题

    我需要在输入字段之前和之后添加一些带有文本的随机 html 内容 我知道我可以使用描述装饰器并将转义选项设置为 false 这样我可以简单地注入任意 html 块作为装饰器 但这只占 1 个 html 块 我需要在输入字段后添加第二个块 如
  • Appmaker组访问权限供开发人员将组添加到角色

    我在这篇文章中找到了一些有用的信息 将 google 群组添加到角色 https stackoverflow com questions 49573392 adding google groups to roles 51430901 514
  • 如何检查字典是否是另一个复杂字典的子集

    我需要验证另一个字典是否是另一个字典的子集 有一个技巧 在这些字典中有字典数组 超集 dct 1 x x y t 123 a a subset dict 2 x x y t 123 from 检查字典是否是另一个字典的子集的递归函数 htt
  • 如何在 WinUI 3 中从 C# 调用 Powershell 函数

    我正在尝试调用 PowerShell 脚本文件中的函数 我在用WinUI 3 我在调试器输出中得到难以理解的输出 并且 PowerShell 脚本似乎根本没有执行 我已验证当我直接从 PowerShell 运行 PowerShell 脚本
  • C# 最高字符串

    这看起来很微不足道 但我没有通过谷歌找到答案 我正在寻找排序字符串列表末尾的信号量字符串的高值 在我看来 char highest ToString 应该这样做 但这比较低 而不是高 显然 创建尽可能高的字符串是不可能的 因为它总是低于相同
  • 在 spring-mvc 上处理密码确认

    我正在 spring mvc 中进行用户增删改查 我的模型具有以下属性 private Long id private String password private String username private Collection
  • 电子邮件营销经理如何报告退回的电子邮件?

    谁能指出我如何处理捕获退回电子邮件信息的正确方向 我正在考虑编写一个电子邮件活动经理 并且希望能够报告该数据 您可以编写一个应用程序来轮询坏邮件文件夹以识别退回的电子邮件 发送电子邮件后 您应该等待一段时间 然后再检查电子邮件是否已送达或退
  • pandas数据框的条件过滤

    我有一个关于足球结果的熊猫数据框 数据帧的每一行代表一场足球比赛 每场比赛信息如下 Day WinningTeamID LosingTeamID WinningPoints LosingPoints WinningFouls 1 13 1
  • 如何输出DOM文档?

    也许我遗漏了一些东西 但是这段代码中的 DOM 对象是空的 input file get contents http www google com doc new DOMDocument doc gt loadHTML input supr
  • 如何在 MLPClassifier 中设置初始权重?

    我找不到设置神经网络初始权重的方法 有人可以告诉我如何设置吗 我正在使用 python 包 sklearn neural network MLPClassifier 这是供参考的代码 from sklearn neural network
  • JS 闭包上下文对象的生命周期?

    背景 我正在尝试移植长生不老药演员模型语言原语转换为 JS 我想出了一个解决方案 用JS 来模拟receiveelixir 关键字 使用 接收器 函数和生成器 这是一个简化的实现和演示 向您展示这个想法 APIs type ActorRef
  • 即使使用相同的密钥库,更新 apk SHA1 也会有所不同

    I have uploaded my app to Goggle Play few months back after signing it with a release keystore I have stored that Keysto
  • 检查 exec.Cmd 是否在 Go 中运行完毕

    我正在尝试检查是否exec Cmd 在跑在这些场景中 在我真正开始命令之前 命令开始之后但完成之前 命令完成后 这将允许我终止该命令 如果它正在运行 以便我可以使用不同的参数再次启动它 下面是一个简单的用例 c exec Command o
  • 网络浏览器无法打开新窗口

    我刚刚找到了一份远程工作的新工作 我必须通过打开一堆页面并登录来开始我的一天 我很想自动化这个过程 因为它可能有点乏味 我想保留我的个人浏览窗口并打开一个包含我需要的所有页面的新窗口 这是我想做的事情的要点 import webbrowse
  • iOS 8 / Safari 8 不支持 ASP.NET AJAX 扩展

    iOS 8 推出后 我们的网站突然停止运行 ASP NET UpdatePanel 内的每次回发都会导致一个空页面 如果在 Safari 8 在 Mac 上 中将用户代理设置为 Chrome 它仍然有效 我已经发现 一些 ScriptRes
  • 受歧视工会没有多余的财产检查

    给定的是受歧视的联合类型S1 S2 S3 type S1 d1 foo type S2 d1 bar isSuccess true type S3 d1 baz isSuccess false errorMessage string typ
  • Google App Engine:添加到任务队列比执行数据存储写入更快吗?

    我正在尝试通过将后台任务添加到任务队列而不是立即执行操作来优化应用程序的一些面向用户的部分 对于 CPU 密集型任务来说 这样做是一个明显的选择 但是如果只是保存数据呢 平均而言 执行 taskqueue add 操作或 db put 操作
  • 如何切换标记?

    我制作标记的代码 for var marker in markers var posMarker new google maps Marker position new google maps LatLng markers marker l
  • 重定向多个标准输入?

    我有三个文件 名为一 二 三 其中一项包含 1 3 2 两个包含 4 6 5 三包含 7 9 8 当我发出以下命令时 sort lt One lt Two lt Three 我得到输出 7 8 9 但是当我发出以下命令时 sort One
  • 使用 Inno Setup 安装时应用程序无法运行

    我正在开发桌面数据库应用程序 使用rdlc报告和reportviewer 开发过程中一切顺利 reportviewer 可以顺利显示所有数据 我使用 Inno Setup 部署应用程序 但是当我安装该应用程序时 报告查看器不显示数据 当数据