Delphi .dpr和.dproj不匹配的后果 - 后果是什么?

7
在Delphi项目的.dpr和.dproj文件中,如果“uses”列表不匹配会有什么影响(如果重要,XE)?
乍一看,似乎.dproj会更新以匹配.dpr,但这总是这种情况吗?
我们出现这个问题的原因是,在检出版本控制后,我们需要对项目应用参数,这个参数因开发人员而异,所以总是在版本控制中给我们带来冲突。我们决定使用模板文件并从此生成.dproj文件来解决这个问题。现在我们可能会遇到开发人员忘记在添加/删除.pas文件时修改模板的潜在问题。正如我所说,它似乎可以工作,但是否有人知道我们可能会遇到的任何危险?
或者,是否有更好的解决方案?DProjMaker似乎很有趣-有人用过吗?http://delphi-divining.blogspot.co.uk/2012/10/dprojmaker-tool-to-create-delphi.html 第二个选项-我们是否可以从模板中删除所有.pas链接,并依靠Delphi在需要时重新生成它们?我认为这只会影响MSBuild?(有人能确认一下吗)
针对评论的额外信息: 该参数是一个编码字符串,包含数据库连接信息(可能还有其他内容,我没有深入研究)。
在正常(用户)操作中,我们有一个登录程序,用户选择要连接的数据库并启动其他应用程序,将此信息作为参数传递。作为开发人员,我们需要直接启动程序,因此我们为我们正在连接的数据库生成相关代码,并将其设置为要在Delphi中传递给应用程序的参数。

2
我的建议是找到一种解决问题的方法,而不需要开发人员特定的设置。这应该是可能的,并且将绕过在此处寻找答案的需要。它还可以使您的QA更加强大。 - David Heffernan
1
你需要应用什么参数?它控制什么?也许你可以使用*.inc文件或类似的东西。 - Uli Gerhardt
关于您所编辑的内容:这听起来好像可以通过编译器指令(比如 $DEFINE,例如 DEVELOPER_DB_ACCESS)进行控制。将其添加到调试配置中的定义中,并确保在 MSBuild 脚本(或者您用于部署的任何其他工具)中取消定义。 - Uli Gerhardt
1
我是DprojMaker的作者。它的编写旨在半自动化从dpr创建dproj,当像我一样你有几十个应用程序时非常方便。然而,它并不是万能药,坦率地说,你永远无法比删除dproj,打开dpr并让Delphi重新创建更好。很多问题可以得到解决,如无法进行远程调试、导致幽灵警告的奇怪xml参数等 - 这些都是由于让Delphi 1..XE5不断地“升级”dproj!我也知道这里的其他人手动编辑proj,但那并不适合胆小的人... - Brian Frost
谢谢回复。由于当前的参数传递有点嵌入式,并且需要一些政治资本来改变,我想现在我会选择我的第二个选项——即从dproj文件中删除所有“USES”等效项。这应该可以确保它只使用dpr作为源,而不是如果它使用了略微过时的dproj可能会出现的奇怪错误。不过,我会把问题留着,以防有其他建议。 - Matt Allwood
显示剩余2条评论
1个回答

1
根据Brian Frost的建议:
解决方案是删除`.dproj`文件。 当打开`.dpr`文件时,Delphi将重新创建该文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接