与Inno Setup一起安装时,应用程序无法工作
问题描述:
我正在开发桌面数据库应用程序。使用rdlc报告和reportviewer。在开发过程中一切都很好,reportviewer正在顺利显示所有数据。我使用Inno Setup部署应用程序。但是当我安装应用程序时,reportviewer不显示数据。数据正确插入表中。与Inno Setup一起安装时,应用程序无法工作
答
对于工作不正常或完全失败的应用程序,当由Inno Setup安装到Program Files
文件夹时,首先要测试的是尝试手动将应用程序部署到同一文件夹。
如果即使在手动部署后应用程序仍然失败,最常见的问题是应用程序需要用户拥有对应用程序文件夹的写入权限。在现代版本Windows上,用户通常没有对Program Files
文件夹的写入权限,因此该应用程序无法正常工作。所以这个问题通常与Inno Setup没有任何关系,但这是应用程序本身的问题。
为了解决这个问题:
- 最好的解决办法是重新实现从需要写权限的文件夹的应用程序。 Windows应用程序不应要求对其文件夹具有写入权限。这违反了Windows准则。应用程序应将数据写入用户配置文件文件夹(
C:\Users\username\AppData
)或公用数据文件夹(C:\ProgramData
)。 - 肮脏的解决方法是让安装程序授予用户对安装文件夹的写入权限。只有这样做,如果您无法修复应用程序(例如,它是第三方应用程序)。
见Inno Setup - How to set permissions of installation folder。 - 更为彻底的解决方法是将应用程序配置为使用提升(管理员)权限执行。
请参阅Inno Setup desktop shortcut (link) which has "Run as administrator" advanced property set 或How to set 'Run as administrator' on a file using Inno Setup。
另一种可能性是,该应用程序不是设计成从具有在其名称(Program Files
)的空间中的文件夹执行。
还有一件事是应用程序可能会被Windows文件虚拟化弄糊涂(尽管它不太可能)。请参阅Application installed with Inno Setup writes files to unknown location instead of its installation folder。
它可能是一个配置问题..检查你的API网址是否正确,可能尝试在服务器上执行一个简单的程序,然后对你的应用程序执行相同的操作 – Nevermore
如果您手动将应用程序复制到Program Files子文件夹,是否工作? –
不,即使我手动将其复制到Program Files子文件夹,reportviewer也不会显示数据。 @MartinPrikryl – Adnan