Delphi 如何重命名exe文件

Delphi 如何重命名exe文件,delphi,linker,rename,Delphi,Linker,Rename,假设我有一个通用的垂直市场应用程序,我想将其打包为两个独立的程序aaa.exe和bbb.exe。是否有任何方法可以使用Delphi链接器创建与DPR名称不同的EXE/DLL文件 我不能只是重命名文件,因为我得到了这个错误 bbb.exe - Unable to to locate component This application has failed to start because aaa.exe was not found. Re-installing the

假设我有一个通用的垂直市场应用程序,我想将其打包为两个独立的程序aaa.exe和bbb.exe。是否有任何方法可以使用Delphi链接器创建与DPR名称不同的EXE/DLL文件

我不能只是重命名文件,因为我得到了这个错误

bbb.exe - Unable to to locate component This application has failed to start because aaa.exe was not found. Re-installing the application may fix this problem. bbb.exe-无法定位组件 由于找不到aaa.exe,此应用程序无法启动。 重新安装应用程序可能会解决此问题。 一般来说,我可以重命名一个可执行文件,但不能重命名这个。谢谢你的评论,指出我在这方面的愚蠢。这是一个问题,只是显然不是一个正常的问题,甚至可能不一定与德尔福有关


我正在使用Delphi 7(如果在2007/2009年有可能的话,那将是非常棒的,因为我需要更多的素材来升级)

Delphi 2007和Delphi 2009都使用MSbuild。您可以在MSbuild中使用生成后事件来执行几乎任何您想要的操作。例如,您可以使用“复制”任务将EXE复制到新文件名中。

除了Craig的优秀答案(投票结果)之外,如果您不幸被困在D7中,Craig所说的仍然适用,您只需要自己完成繁重的工作,也就是说,自己创建一个构建脚本来构建应用程序,而不仅仅是从IDE进行编译,使用dos脚本或(甚至更好的)powershell,这是一项前期工作,但从长远来看会给您带来更大的灵活性。

您可以自己使用像FinalBuilder甚至MSBuild这样的构建管理器。不过我还是建议升级到Delphi2009。2009年还有很多其他精彩的新增内容。

或者你可以让程序在运行时检查它自己的exe名称。如果不是aaa.exe或bbb.exe,则让它将自身复制到这两个名称中并终止(或启动!)

否,您不能让编译器创建一个名称与项目名称不同的文件

您可以将项目放入“项目组”中。将批处理项目附加到该组中,然后在该批处理项目中,放入重命名或复制文件的命令。当选择“全部编译”或“全部编译”时,将处理主项目,如果编译成功,也将处理下一个项目,运行批处理文件

或者,因为您只是说要将其打包为两个程序,所以只需配置安装程序,在安装过程中使用不同的名称编写两个副本,而不是在构建环境中生成两个副本,然后分发文件的两个副本


我不理解你关于编译后无法重命名文件的评论。完全允许重命名EXE文件,只要它当时未被使用。

为什么编译后不能重命名该文件?我不了解整个unix参考。我可以重命名我在机器上找到的每个可执行文件,嗯。。。几乎所有人,只要他们目前没有执行这项任务

你为什么不能?你没告诉我们的是什么


在资源管理器中右键单击该文件,选择“重命名”,然后为其指定一个新名称。这对你不管用吗?如果没有,请告诉我们原因,因为有些事情你没有告诉我们你的情况。

这是我的错误。bbb.exe-找不到组件此应用程序无法启动,因为找不到bbb.exe。重新安装应用程序可能会解决此问题。无论如何,编译后重命名程序似乎不是一个很好的解决方案。如果磁盘上确实存在bbb.exe,那么问题不在于重命名,而在于错误地找不到文件的代码。我同意,重命名也没有问题。问题在于运行重命名的可执行文件。也许您应该尝试找出程序中哪些部分从构建步骤知道名称?我可以想象,代码可以很容易地更改,以适应程序在任何时候的任何文件名。为了生成此错误消息,您如何尝试重命名该文件?您使用什么工具/命令?输出看起来一点也不熟悉。它是一个windows消息框,当我尝试运行可执行文件时,会出现错误。我正在使用windows资源管理器重命名,没什么特别的。那么,您确实设法重命名了该文件,但当您尝试运行重命名后的可执行文件时会显示错误?从你之前的描述中根本不清楚。听起来您的程序正在查看自己的文件名,并试图从中派生一些内容。