1

我最近使用 Rio、IB-Lite 和 FastReports VCL 6 (pro) 完成了一个新项目(仅限 Windows)。一切都很好,安装在多台电脑上都没有问题。根据项目部署中所示的要求创建了安装包(32 位和 64 位)。

不幸的是,我昨天收到一位用户的通知,当他尝试在他的 PC 上安装时,收到了“需要 MSVCR120.DLL”消息(他正在安装到 Win 8.1 64 位 PC)。我对此感到有些惊讶,但知道名称中的“120”指的是 Visual C++ Redistributable 2012 版本,我记得我有一台很旧的笔记本电脑,可能没有安装(运行 XP)。果然,我安装了32位程序,报错了。将 MSVCR120.DLL 和 MSCVP120.DLL 文件复制到旧 PC 上的应用程序文件夹后,一切都运行良好(实际上,我有点惊讶)。对于这种情况,我更新了安装包以包含这些文件。

所以,我的问题是:什么需要这种依赖(如果有人知道的话),为什么 Project Deployment 不选择它?项目使用的库单元有:

//  Library Units used in project

// Data & FireDac
Data.DB, FireDAC.Comp.BatchMove, FireDAC.Comp.BatchMove.DataSet,
FireDAC.Comp.BatchMove.Text, FireDAC.Comp.Client, FireDAC.Comp.DataSet,
FireDAC.Comp.Script, FireDAC.Comp.ScriptCommands, FireDAC.Comp.UI,
FireDAC.DApt, FireDAC.DApt.Intf, FireDAC.DatS, FireDAC.Phys,
FireDAC.Phys.IB, FireDAC.Phys.IBBase, FireDAC.Phys.IBDef, 
FireDAC.Phys.IBLiteDef, FireDAC.Phys.Intf, FireDAC.Phys.SQLite,
FireDAC.Phys.SQLiteDef, FireDAC.Phys.SQLiteVDataSet, FireDAC.Stan.Async,
FireDAC.Stan.Def, FireDAC.Stan.Error, FireDAC.Stan.ExprFuncs,
FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
FireDAC.Stan.Pool, FireDAC.Stan.StorageJSON, FireDAC.Stan.StorageXML,
FireDAC.Stan.Util, FireDAC.UI.Intf, FireDAC.VCLUI.Error, FireDAC.VCLUI.Wait,

// Fast Reports VCL 6
frxChBox, frxClass, frxCross, frxDBSet, frxDCtrl, frxDesgn,
frxExportBaseDialog, frxExportCSV, frxExportDOCX, frxExportPDF, 
frxExportRTF, frxExportText, frxExportXLS, frxFDComponents, frxGradient,
frxOLE, frxRich,

// System
System.Actions, System.Classes, System.DateUtils, System.ImageList,
System.IniFiles, System.IOUtils, System.Math, System.StrUtils,
System.SysUtils, system.types, System.Variants,

//VCL
Vcl.ActnList, Vcl.BaseImageCollection, Vcl.Buttons, Vcl.ComCtrls,
Vcl.Controls, Vcl.DBCtrls, Vcl.DBGrids, Vcl.Dialogs, Vcl.ExtCtrls,
Vcl.FileCtrl, Vcl.Forms, Vcl.Graphics, Vcl.Grids, vcl.htmlhelpviewer,
Vcl.ImageCollection, Vcl.Imaging.jpeg, Vcl.Imaging.pngimage,
Vcl.ImgList, Vcl.Mask, Vcl.Menus, Vcl.StdCtrls, Vcl.ToolWin,
Vcl.VirtualImageList, Vcl.WinXCtrls,

//WinAPI
Winapi.Messages, Winapi.Windows;

包括 DLL 不是问题,更关心我应该如何知道首先包括它们

谢谢 - 里克

4

0 回答 0