1

我们有一个VB.Net Winforms(x86)应用程序,它使用Crystal Reports的可自由再发行版本。尽管应用程序在我的测试机器上正常工作,但在客户端机器上安装并尝试从应用程序打印报告时,出现以下错误:系统找不到指定的文件。文件名:显示CrystalDecisions.CrystalReports.Engine ...。如何安装Crystal Reports for .NET 3.5 Winforms应用程序

inno-setup包含客户端在安装过程中安装的CR可再发行“CRRedist2008_x86.msi”。 (我们也尝试运行“CRRedist2008_x64.msi”,但收到“不支持的处理器类型”错误)。

我已阅读有关.NET 1/2(VS 2002/2005)的先决条件的合并模块,但无法找到任何与.NET 3.5有关的有用信息,因此想知道这些文件是否仍然需要以及如何打包并在实际需要时部署它们。

有关如何解决此安装问题的任何指导,我们都非常感谢。

编辑 的汇创设置包含以下命令检查,看看是否安装了CR,如果不是MSI从最后的安装形式推出:

[Run] 
Filename: "{app}\CRRedist2008_x86.msi"; Description: "Crystal Reports"; Flags: nowait postinstall skipifsilent; Check: EnsureCrystalReports105Installed(); 
+0

您目前如何从安装脚本运行重新启动MSI? – Miral 2013-04-24 23:47:51

+0

我已经修改了我的问题以包含用于启动MSI的Inno-Setup代码。 – 2013-04-25 00:25:04

+0

我已经稍微编辑它以使其更具可读性。 – Miral 2013-04-26 02:21:12

回答

0

的问题是,你是没有实际执行MSI文件。您可以通过运行安装程序/LOG并查看生成的日志文件来查看。

这是因为MSI文件不能直接执行 - 它们是数据文件,而不是程序。

要解决此问题,您需要运行msiexec,而不是将MSI文件作为参数传递;例如。

[Run] 
Filename: {sys}\msiexec.exe; Parameters: "/i ""{app}\CRRedist2008_x86.msi"""; ... 

你应该审查MSIEXEC和MSI文件接受,看看你想要做一些不同的,例如性能接受了命令行参数。以交互方式静默运行安装。

另外,如果此组件对于您的应用程序是可选的,并且它可以优雅地处理它未安装的情况,那么将它作为postinstall运行会很好。如果情况并非如此,那么您应该将其视为先决条件,并始终通过PrepareToInstall进行安装。

相关问题