2010-04-01 4 views
3

누구든지 델파이의 빌드 시스템에 대한 좋은 설명을 알고 있습니까? (저는 MS Build를 사용하고 있습니다.) 저는 델파이 2009를 사용하고 있습니다.Delphi 2009 MS 빌드 두통

(종종 다른) 정의한 디버그 빌드 구성의 변형을 설정하고 싶습니다 (d2009는 "전 처리기 심볼"이라고 생각합니다). .

내가 가지고있는 문제는 "Base"와 "Debug"에 대해 "상속"을 해제했지만 매우 제한된 컨트롤 만 있습니다. 예를 들어 FastMM_을 제거 할 수 없습니다.

<PropertyGroup> 
     <ProjectGuid>{D7FE7347-8E2C-438C-A275-38B8DA9244B0}</ProjectGuid> 
     <ProjectVersion>12.0</ProjectVersion> 
     <MainSource>oca.dpr</MainSource> 
     <Config Condition="'$(Config)'==''">Debug</Config> 
     <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> 
     <Base>true</Base> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> 
     <Cfg_1>true</Cfg_1> 
     <CfgParent>Base</CfgParent> 
     <Base>true</Base> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> 
     <Cfg_2>true</Cfg_2> 
     <CfgParent>Base</CfgParent> 
     <Base>true</Base> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Base)'!=''"> 
     <DCC_StringChecks>off</DCC_StringChecks> 
     <DCC_MinimumEnumSize>4</DCC_MinimumEnumSize> 
     <DCC_RangeChecking>true</DCC_RangeChecking> 
     <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> 
     <DCC_UNIT_PLATFORM>false</DCC_UNIT_PLATFORM> 
     <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM> 
     <DCC_DcuOutput>.\dcu</DCC_DcuOutput> 
     <DCC_UnitSearchPath>C:\Prj\Lib\AutoQADocking\Delphi2009.Win32\Lib;$(BDS)\Source\DUnit\src;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> 
     <DCC_Optimize>false</DCC_Optimize> 
     <DCC_DependencyCheckOutputName>oca.exe</DCC_DependencyCheckOutputName> 
     <DCC_ImageBase>00400000</DCC_ImageBase> 
     <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias> 
     <DCC_Platform>x86</DCC_Platform> 
     <DCC_E>false</DCC_E> 
     <DCC_N>false</DCC_N> 
     <DCC_S>false</DCC_S> 
     <DCC_F>false</DCC_F> 
     <DCC_K>false</DCC_K> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Cfg_1)'!=''"> 
     <DCC_PentiumSafeDivide>true</DCC_PentiumSafeDivide> 
     <DCC_Optimize>true</DCC_Optimize> 
     <DCC_IntegerOverflowCheck>false</DCC_IntegerOverflowCheck> 
     <BRCC_Defines>MadExcept;FastMM;$(BRCC_Defines)</BRCC_Defines> 
     <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime> 
     <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> 
     <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> 
     <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> 
     <DCC_DebugInformation>false</DCC_DebugInformation> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Cfg_2)'!=''"> 
     <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe> 
     <BRCC_Defines>FastMM</BRCC_Defines> 
     <DCC_DebugDCUs>true</DCC_DebugDCUs> 
     <DCC_MapFile>3</DCC_MapFile> 
     <DCC_Define>DEBUG;FastMM_;madExcept;$(DCC_Define)</DCC_Define> 
    </PropertyGroup> 

내가 심지어 DCC를 제거하는 메모장 오늘을 편집했다가 델파이 UI가에 대한 액세스 권한을 부여하지 않는 것 같습니다 것을 정의한다. (델파이 컴파일러에서 제거 할 수없는 항목에 대해 말했습니다.)

누구든지 델파이에서이 기능을 사용하는 좋은 입문서를 알고 있습니까?

감사합니다.

+1

귀하의 질문에 명확하지 않습니다. 새 빌드 구성을 설정하는 방법을 묻는 중이거나 델파이의 빌드 파일에 대한 문서를 요청하고 있습니까? (답이 * both * 인 경우 두 개의 개별 질문을 게시하십시오. 하나만 질문 한 다음 다른 질문으로 새 게시물을 만드십시오.) –

+0

나는 Rob과 함께합니다. 정확히 무엇입니까? 뭘 하려구? .target 파일을 볼 필요가 없습니다. IDE는 구성과 관련하여 필요한 작업을 수행 할 수 있도록합니다. –

+0

나는 아주 간단한 일을하려고합니다. "디버그"에는 MadExcept, FastMM이 있어야합니다. "DebugForAQ"에는 모두 이 없지만 "부모"가 사라지는 것은 불가능한 것 같습니다. 나는 단순히 "상속"을 끌 수 있다고 생각했지만, 도움이되지 않았습니다. 포커스가 다음 셀로 이동하자마자 값을 되돌립니다. 꽤 짜증나! "최고"라는 것은 컴파일러에서 나온 것이므로 "기본"에서 벗어날 수없는 것입니다. 그것은 오랜 시간 전에 프로젝트를 이전하는 동안 끌어온 것으로 보인다. 지금까지 ms 빌드를 무시했습니다. 감사합니다. –

답변

1

당신은 델파이 자신의 documentation을 보았습니까? (이것은 도움말 파일 링크이지 웹 URL이 아닙니다.)이 주제에 관해서는 꽤 좋은 토론이 있습니다.

MSBuild의 MSDN 섹션을 참조하십시오. 링크는 MSBuild Reference 주제의 시작 부분입니다.

델파이에서 MSBuild를 사용하는 것은 다른 환경에서 MSBuild를 사용하는 것과 똑같은 일입니다. Microsoft 도구 (.NET Framework SDK, IIRC와 함께 배포 됨)입니다.

+0

ms 빌드를 제어하기 위해 델파이 UI에 어려움이있는 것 같습니다. 내가 그것을 실제로 사용하려고 시도 할 때까지는 충분히 단순 해 보였다. 그것의 개요에 대한 유용한 문서를 찾지 못했습니다. 물론, 이것은 내가 너무 바빠서 그만한주의를 기울일 때 나오지 않습니다. 도와 줘서 고마워! –

관련 문제