为什么Delphi命令行给我一个不同的IDE输出?

为什么Delphi命令行给我一个不同的IDE输出?,delphi,msbuild,delphi-10-seattle,Delphi,Msbuild,Delphi 10 Seattle,自从我搬到德尔福10西雅图后,我的构建机器出现了问题。尽管在生成计算机上使用了MSBuild并设置了正确的配置,但生成计算机正在生成不同的IDE结果。它在我的机器上做同样的事情,所以它与机器上的东西无关。到目前为止,我能看到的区别是: 可执行文件大小不同。39MB命令行MSBuild,35MB IDE build 我从命令行生成的可执行文件中得到一个整数溢出错误,而IDE中的可执行文件却没有出现这种情况。它们显然是两个不同的可执行文件 在IDE中构建的COM DLL为22mb,而在命令行中构建的

自从我搬到德尔福10西雅图后,我的构建机器出现了问题。尽管在生成计算机上使用了MSBuild并设置了正确的配置,但生成计算机正在生成不同的IDE结果。它在我的机器上做同样的事情,所以它与机器上的东西无关。到目前为止,我能看到的区别是:

  • 可执行文件大小不同。39MB命令行MSBuild,35MB IDE build
  • 我从命令行生成的可执行文件中得到一个整数溢出错误,而IDE中的可执行文件却没有出现这种情况。它们显然是两个不同的可执行文件
  • 在IDE中构建的COM DLL为22mb,而在命令行中构建的COM DLL约为59mb。进一步的研究表明,它实际上是在向DLL中添加调试信息,尽管在发布配置中调试信息处于关闭状态。如果我设置“将调试信息放在一个单独的TDS文件中,我将得到相同的22mb文件和36mb TDS文件。这证明了两件事。正在添加调试信息,并且我有正确的配置,因为此更改会产生影响
  • rsvars&MSBUILD/target:build/p:config=Release/p:platform=win32 project.dproj


    标记为重复的并不能真正回答这个问题,它只是给出了一个关于查看内容的提示。

    问题在于DProj文件已损坏。很难说它是如何损坏的。但是很明显,在配置中设置了几个命令行选项,这些选项在配置中是而不是。它们似乎也没有出现DCC32命令行MSBuild发出声音,但我开始怀疑我是否错过了它们。这个项目最初可能至少是Delphi 6,因此一直在升级。为了修复它,我删除了所有DPROJ、BDSPROJ和CFG文件,只留下了dpr文件。然后,我在Delphi 10西雅图打开了dpr文件,创建了新的DPROJ文件。我重置了我想要的条件定义、搜索路径、编译器和链接器选项以及viola,一切都恢复正常。

    您的IDE是否也设置为内置版本的32位窗口?这可能也很方便:是的,相同的精确配置,我已经比较了IDE中输出窗口中的DCC32和msbuildI实际调用的内容d那个问题…很久以前了!:)哈哈,我没有注意到:P也许试着在Embarcadero论坛上问这个问题?