使用 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 安装时应用程序无法运行 的相关文章

  • 如何制作一个简单包装 EXE 文件的 MSI

    经过大量实验后 我得出的结论是 Windows Installer 是一种糟糕的技术 但客户需要 MSI 文件 那么 如何创建一个 MSI 文件 将 EXE 文件提取到临时目录 并使用与传递给 EXE 文件相同或相似的选项运行它 MSI 的
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • Installshield 在次要升级时不更新相关 DLL

    我目前正在使用 InstallShield 部署 NET Winforms 应用程序 我是 InstallShield 的新手 不太喜欢学习过程 Winforms 应用程序具有三个相关的 DLL 这些 DLL 在次要升级期间不会更新 例如
  • Boost + Visual Studio 2010 + Windows 平台 SDK 7.1

    有人可以告诉我 bjam 的命令行开关或其他可以使用新的 Windows Platform SDK 7 1 工具链使用 VS2010 进行 boost 编译的东西吗 您可以在普通的视觉工作室项目中设置该选项 默认值是 v100 是平台 7
  • PostgreSql“运行安装后步骤...数据库集群初始化失败”

    我是一名 Windows 用户 我花了几个小时不断地安装和卸载 然后才使其正常工作 前 10 次左右才看到标题中的错误消息 我将其作为一个自我回答的问题放在这里 以防止其他人在安装时可能遇到同样的问题 并为像我这样第一次使用 Postgre
  • 如何在Windows 8上正确使用SCardGetStatusChange?

    智能卡服务在 Windows 8 上的行为有所不同 并且 MSDN 尚未更新其文档 任何人都可以提供有关如何正确调用 SCardGetStatusChange 来监视 Windows 8 上的智能卡操作的代码片段吗 提前致谢 这是我为个人博
  • 无法启动 Windows 服务,错误 1064

    我编写了一个在 Win10 上运行的 Windows 服务 它运行得非常好 直到我决定对其进行一些更改 我重写了一些逻辑 在调试和发布配置中进行了测试 一切都很好 然后 我使用卸载了当前版本的服务installutil exe u serv
  • 串行 I/O 与 Windows/Windows CE 重叠/不重叠

    抱歉 这不是一个大问题 但更多的是帮助那些在这些特定问题上遇到问题的人 我正在解决的问题需要使用串行 I O 但主要在 Windows CE 6 0 下运行 然而 最近有人问我该应用程序是否也可以在 Windows 下运行 所以我开始着手解
  • 在Windows 7上安装curl后缺少libcurl-4.dll

    按照这个人的安装curl后指示 https stackoverflow com a 28757477 1186038 除了第 2 步 已安装Win64 OpenSSL v1 0 1u 轻型相反 因为下载页面中缺少版本 k http slpr
  • VB - 以隐式方式链接 DLL

    我正在开发 VB6 图形界面 并且需要隐式链接到 DLL 这样做的动机来自于我上一个问题 https stackoverflow com questions 5194573 有问题的 DLL 使用静态 TLS declspec thread
  • 为什么 fopen 无法打开已存在的文件?

    我在 Windows XP 上使用 Visual Studio 6 是的 我知道它很旧 构建 维护 C DLL 我遇到了 fopen 无法打开现有文件的问题 它总是返回 NULL 我试过了 通过将 errno 和 doserrno 设置为零
  • 如何使用 Win32 API 与 com 端口 (RS232) 通信

    我正在尝试使用 win32 API 与 com 端口对话 我找到了这个http www robbayer com files serial win pdf http www robbayer com files serial win pdf
  • 仅在单个端口 8080 上转发到本地主机(Windows)可能吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我知道如何在 Windows 上使用 xampp 设置本地网络服务器 我在主机文件 c windows system32 drivers etc ho
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • Windows 窗体中的标准 Windows 菜单栏

    我注意到添加了一个MenuStrip 来自工具箱 我的表单设计不会产生像许多本机 Windows 应用程序中那样的菜单栏 相反 我得到了一个像 Visual Studio 自己的菜单栏 没有任何样式设置MenuStrip似乎模仿了更常见的本
  • Visual C++ 找不到“Windows 类型”,如 PVOID、DWORD、ULONG 等

    Windows 似乎无法找到任何这些类型 我完全不知道该怎么办 我在 MSDN 上找到的东西似乎表明它们是默认包含的 但它们在 Native 程序或 CLR 程序中不起作用 我收到的具体错误是
  • 如何使用 ruby​​ 和命令行工具在 mavericks 中正确安装 cocoapod?

    这是我的设置 小牛队10 9 1 Xcode 5 0 2 哪个红宝石返回这个 Users quique123 rvm rubies ruby 1 9 3 p194 bin ruby 但 dvm install ruby 返回 Already
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 从其可执行文件的路径获取服务名称

    我有一个可执行文件的路径 它是一个正在运行的服务应用程序 例如 C Program Files x86 Someapp somesvc exe 我想停止并启动它 为此我想我需要获取服务的名称 如下所示 this https stackove
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消

随机推荐

  • 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 部署应用程序 但是当我安装该应用程序时 报告查看器不显示数据 当数据