delphi - Delphi 项目的 RELEASE 的 MSBuild 仍然设置 D+ 选项

标签 delphi msbuild delphi-2007

我们正在尝试使用 MSBuild 构建 Delphi 2007 项目。在 IDE 中,我们将所有 Buidl 配置设置为“调试”(其中包括)启用 D+ 选项。

发布构建配置当然关闭了调试选项。

我们使用以下命令行构建项目:

Msbuild /target:Build /property:configuration=Release /clp:NoItemAndPropertyList

生成的 DCC 命令包含正确的命令参数 (-$D-):

C:\Program Files (x86)\CodeGear\RAD Studio\5.0\bin\dcc32.exe 
    -B 
    -GD 
    -H- 
    -I <removed for clarity>
    -LE<removed for clarity>
    -LN <removed for clarity>
    -O <removed for clarity>
    -R <removed for clarity>
    -U <removed for clarity>
    --no-config 
    -$C- 
    -$D- 
    -$L- 
    -$Y- 
    -W-   projectname.dpk   

但是当我运行该项目时,D+ 选项处于打开状态,因为我的代码在 {$ifopt D+} 之后显示了一个警告对话框。如果我更改 IDE 中的事件 Buidl 配置,它可以正常工作。因此,dcc32 似乎仍在从 IDE 读取选项,而不是命令行覆盖。

谁能帮我解决这个问题吗?

编辑:现在意识到 .dpk 已明确包含其编译选项({DEBUGINFO ON})。显然这会覆盖 dcc32 命令的命令行参数。这可能是我的问题的原因吗? ...以及如何覆盖它们?

最佳答案

我自己找到了答案:-)

.dpk 中的显式设置是问题所在,但可以通过更改 {$ 来覆盖它们,而不会丢失 IDE 功能。进入{<space>改变了。

请参阅以下链接:Compile DPK files using DCC32

关于delphi - Delphi 项目的 RELEASE 的 MSBuild 仍然设置 D+ 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132564/

相关文章:

delphi - 作为事件处理程序的接口(interface)方法

delphi - 如何将 Variant 或 TObject 传递给同一个方法参数?

c# - MsDeploy - 无法更新应用程序池

powershell - 如何使用 Powershell 将 .Net Web 应用程序部署到 Azure

msbuild - Azure DevOps - 错误 : The value for PublishProfile is set to 'FileSystem'

delphi - 为什么 TDateTimePicker.Checked 在 Windows 7 上始终返回 True?

xml - 为什么 IXMLNode.IsTextElement 不为 CDATA 元素返回 True?

c++ - 从 Delphi 应用程序调用外部函数 (C++) 时发生访问冲突

delphi - 是否有技术原因不使用 Delphi 中的 TWebBrowser 查看 Google Earth?

database - 绑定(bind)到一个数据库列的多个 UI 控件的聚合