2012-11-09 2 views
0

프로젝트 속성에 컴파일 기호 (MYSYMBOL)를 추가 한 프로젝트가 있습니다. VS에서 빌드 할 때 제대로 작동하므로 응용 프로그램이 적절하게 작동합니다.MSBUILD를 통해 건물을 짓는 경우 컴파일 기호가 사용되지 않습니까?

기타 프로젝트에는 이와 같이 정의 된 다양한 기호가 있습니다.

MSBUILD에서 빌드 할 때 MYSYBOL은 다소 이상한 이유로 무시되고 응용 프로그램은 설정되지 않은 것처럼 작동합니다.

msbuild 호출에 /p:"DefineConstants=MYSYMBOL"을 추가하려고 시도했지만 빌드가 실패합니다. 각 프로젝트의 다른 심볼을 혼자서이 어셈블리로 대체하기 때문에 하나의 어셈블리가됩니다. MYSYMBOL + OTHERSYMBOL이 필요하지만 이제는 MYSYMBOL 만받습니다.

msbuild를 통해 빌드 할 때 실제로 프로젝트가 OTHERSYMBOL을 사용하기 때문에 이상합니다.

누구든지 프로젝트 등록 정보에서 MYSYMBOL이 msbuild를 통해 빌드 할 때 사용되지 않도록 할 수있는 단서가 있습니까?

답변

0

빌드 스크립트가 컴파일러 심볼 세트를 자체적으로 명시 했으므로 별도의 프로젝트 설정에있는 컴파일러 심볼을 덮어 쓰면서이 문제가 발생했습니다.

내가 이해하는 한, 당신이 말하는 모든 것이 프로젝트 심볼을 대체 했으므로 하나 이상의 컴파일러 심볼을 추가 할 수 없습니다.

전체 솔루션에서 모든 프로젝트가 모든 심볼을 통과해야하는 상황이 발생했습니다.

너무 나쁜 :(

0

당신이 당신이 원하는 것을 할 것입니다 (DefineConstants의 전체 목록을 무시 반대로) DefineConstants의 목록에 새 기호를 추가 할 것입니다.

<PropertyGroup> 
    <DefineConstants>MYSYMBOL;$(DefineConstants)</DefineConstants> 
</PropertyGroup>