我最近使用Rio,IB-Lite和FastReports VCL 6(专业版)完成了一个新项目(仅Windows)。一切正常,将其安装在多台PC上都没有问题。根据项目部署中所示的要求创建安装包(32位和64位)。
不幸的是,昨天我收到一个用户的说明,当他尝试在自己的PC上安装时,收到“ Need 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并不是问题,更关心的是我应该如何首先将它们包括在内
谢谢-里克