Приложение, требующее MSVCR120.DLL, но не показанное в Project Deployment - какое устройство требует его (если кто-нибудь знает) - PullRequest
1 голос
/ 01 мая 2019

Я недавно завершил новый проект (только для Windows), используя Rio, IB-Lite и FastReports VCL 6 (pro). Все отлично работает, установил его на нескольких ПК без проблем. Созданы установочные пакеты (32- и 64-разрядные) на основе требований, как показано в Project Deployment.

К сожалению, вчера я получил от пользователя сообщение о том, что, когда он пытался установить на свой ПК, получил сообщение «Need MSVCR120.DLL» (он устанавливал на 64-битный ПК с Win 8.1). Я был несколько удивлен этим, но, зная, что «120» в названии относится к выпуску Visual C ++ Redistributable 2012, я вспомнил, что у меня был очень старый ноутбук, который, вероятно, не был установлен (под управлением XP). Конечно же, я установил 32-битную программу и получил ошибку. После копирования файлов MSVCR120.DLL и MSCVP120.DLL в папку приложения на старом ПК все работало нормально (на самом деле, меня это как-то поразило). Я обновил установочные пакеты, чтобы включить эти файлы, в таких случаях, как этот.

Итак, мой вопрос: для чего нужна эта зависимость (если кто-то знает), и почему 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 не является проблемой, меня больше беспокоит то, как я должен был знать, чтобы включить их в первую очередь

Спасибо - Рик

...