准备exe以供分发

时间:2012-08-05 16:08:07

标签: delphi

我可以请求一些指导吗?

Development machine – Windows 7  64bit
IDE – Delphi 7 pro (with 7.1 update)
Target machine for install – Windows XP (SP3) – NB this is the Win 7 Virtual Machine

我已经构建了一个小应用程序,只不过是一个测试应用程序。网格,连接到MS accdb文件的TADOConnection和一些TADOTables。使用Inno Setup我也构建了一个安装程序。我保证,这是一个非常简单的应用程序。

当我在XP虚拟机上安装'应用程序'时,一切都按计划进行,即没有错误消息,安装程序完成。但是,应用程序将无法启动。在同一个XP VM上,我安装了D7,如果IDE正在运行,这里很奇怪,我的应用程序将毫无问题地启动。如果我关闭IDE,我的应用程序将无法重新启动。

我得到的只是沙漏一两秒钟,就是这样......没有错误消息,没有可怕的MS对话框问我是否要向他们发送有关这个可怕应用程序的信息,事实上我没有得到任何反馈。< / p>

注意 - 无论是在IDE上运行,还是在IDE外部,在Win 7机器上运行,应用程序都可以正常运行。

我显然错过了一些非常明显的东西,但我迷路了。我甚至试过......。

program Project1;
uses
  Dialogs,
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
begin
  Application.Initialize;
  ShowMessage('Starting');
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

但我没有看到ShowMessage对话框。

我已阅读了许多“Hello World”教程。从慷慨的SO贡献者那里收集了大量的知识(谢谢)。但必须有另一个教程,教我如何做“准备”我的应用程序包含在安装程序中。我想如果我取消选中Project Options中的'Build with runtime packages',然后执行Project&gt; Project Build,我可以构建一个文件,其中包含在IDE之外运行应用程序所需的一切。

请问是否有人可以指出我最后一块拼图,好吗?

顺便说一下,有没有办法在IDE外部调试可执行文件?也许Delphi中的一些切换会在应用程序启动时产生一个日志文件......或者尝试。

谢谢你的时间?

此致 约翰。

编辑 - 我之前提到该文件将在我的W7机器上的IDE外部运行。我弄错了......除非D7启动并运行,否则它不会运行。此外,我使用此文件制作了原始文件夹的副本,并开始弄乱项目选项开关。突然,新文件的大小是原来的两倍,运行正常。问题...我无法复制我在原始文件/项目上更改的内容,以确定我所做的是原因/修复。

编辑2 - 确定 - 问题肯定与不同的文件大小有关。我在XP卷上创建了一个文件夹,并在Win 7 Delphi安装中从Output目录中删除了所有BPL的副本。在那里删除我的exe(不会在IDE之外运行的文件),以及我的accdb文件。双击和...嘿Presto - 它运行。网格显示我的样本数据......很漂亮。

这就是......项目&gt;选项&gt;套餐&gt;使用运行时包进行构建是未选中的。这应该构建一个LARGE exe文件 - (这是正确的)但它构建了一个相对较小的exe,需要BPL !!!!

会做更多的测试......

1 个答案:

答案 0 :(得分:0)

你可能在ide中连接了你的tconnection。

这可以让你了解IDE中真实数据的外观,但是现在当你运行你的应用程序时,它会尝试在开始时连接,当时可能还没有正确设置。

一种可能的解决方案:保持连接组件断开连接,并在稍后阶段连接,例如通过“连接”按钮。

至少可以更容易地正确处理这样的异常。