2011-03-01 3 views
0

를 작동하지 않는 파일 I 사용자 정의 .targets 아래와 같은 파일을 생성 한 같은사용자 정의 .targets

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <!-- ******************************************************************************************* 
     Common tasks 
     ******************************************************************************************* --> 

    <Target Name="H1"> 
    <Exec Command="del /F/Q @(S_PACK_H1)" /> 
    <RemoveDir Directories="@(D_PACK_H1)" /> 
    </Target> 
    <Target Name="H2"> 
    <Exec Command="del /F/Q @(S_PACK_H2)" /> 
    <RemoveDir Directories="@(D_PACK_H2)" /> 
    </Target> 
    <Target Name="H11"> 
    <Exec Command="del /F/Q @(S_PACK_H11)" /> 
    <RemoveDir Directories="@(D_PACK_H11)" /> 
    </Target> 

</Project> 

모든 매크로/배열 (그냥 .targets 파일에 myproj.vcxproj 파일에 필요한 모든 일반적인 작업을 추가) 내가 cmd를

으로 MSBuild myproj.vcxpr 아래 사용할 때 S_PACK_H1, D_PACK_H11가 myproj.vcxproj 파일에 정의 된 후 나는

<Import Project="C:\Program Files\MSBuild\MyCompany\Mycustom.targets" /> 

아래로 myproj.vcxproj 파일이 가져 오기입니다 OJ/t : H11

은 오류 "오류 MSB4057 : 대상"제공

H11은

"프로젝트에 존재하지 않는"하지만를 내가 대신 .targets의 .vcxproj 파일에 작업 같은 목록이있는 경우 파일을 누른 다음 잘 작동합니다.

  1. 나는 .vcxproj 파일에 매크로를 정의하고 파일 .targets에서 사용할 수 있습니까? MSBuild에서 해당 정의/값을 가져올 수 있습니까? 그렇지 않다면 어떻게 타겟 파일의 vxcproj 파일에 정의 된 것을 사용하거나 전달할 것인가?

  2. msbuild가 대상 파일 인 .sproj 파일에있을 때 내 작업을 볼 수없는 이유는 무엇입니까? 그 밖의 무엇을해야합니까?

답변

0

작동하지 않는 분명한 이유는 없습니다. 그렇습니다. 가져온 파일에서 대상을 정의 할 수 있으며 가져 오기가 발생한 위치에 관계없이 사용할 수 있어야합니다. 전처리 된 파일에 대한

> msbuild mproj.vcxproj /pp 

봐 : 당신은 MSBuild 4.0을 사용하는 경우 다음과 같이, 당신은 완전히 전처리 파일을 생성 할 수 있습니다 (귀하의 .targets에는 ToolsVersion 속성은 위의 파일을, 그래서 잘 모르겠어요있다) 동일한 폴더에 있습니다. 텍스트 편집기에서 열어서 가져온 내용을 검색하십시오. 모두 있어야합니다. 그렇지 않다면, 아마도 전처리 된 파일은 어떤 일이 잘못되고 있는지를 밝힐 수 있습니다.

관련 문제