2011-01-06 17 views
0

WPF 프로젝트의 <target> 태그에 문제가 있습니다.문제점 MSBUILD 스크립트 생성

내가하려고하는 것은 NDepend라는 코드 메트릭 측정을위한 통합 소프트웨어를 트리거하는 TFS 2010에서 설정 한 자동화 된 팀 빌드에서 포스트 빌드 이벤트를 구현하는 것입니다. NDepend의 site은 내가해야 할 일에 대한 몇 가지 코드 샘플을 제공합니다. 이 코드 조각은 다음과 같습니다 :

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="NDepend" > 
    <PropertyGroup> 
     <NDPath>c:\tools\NDepend\NDepend.console.exe</NDPath> 
     <NDProject>$(SolutionDir)MyProject.ndproj</NDProject> 
     <NDOut>$(TargetDir)NDepend</NDOut> 
     <NDIn>$(TargetDir)</NDIn> 
    </PropertyGroup> 
    <Exec 
     Command='"$(NDPath)" "$(NDProject)" /OutDir "$(NDOut)" /InDirs "$(NDIn)"'/> 
    </Target> 
</Project> 

<Target Name="AfterCompile" > 
    <BuildStep   TeamFoundationServerUrl="$(TeamFoundationServerUrl)" 
     BuildUri="$(BuildUri)" 
     Message="Running NDepend analysis"> 
     <Output TaskParameter="Id" PropertyName="StepId" /> 
    </BuildStep> 
    <PropertyGroup> 
     <NDPath>c:\tools\NDepend\NDepend.console.exe</NDPath> 
     <NDProject>$(SolutionRoot)\Main\src\MyProject.ndproj</NDProject> 
     <NDOut>$(BinariesRoot)\NDepend</NDOut> 
     <NDIn>$(BinariesRoot)\Release</NDIn> 
    </PropertyGroup> 
    <Exec 
     Command='$(NDPath) "$(NDProject)" /OutDir "$(NDOut)" /InDirs "$(NDIn)"'/> 
    <BuildStep 
     TeamFoundationServerUrl="$(TeamFoundationServerUrl)" 
     BuildUri="$(BuildUri)" 
     Id="$(StepId)" 
     Status="Succeeded" /> 
    <OnError ExecuteTargets="MarkBuildStepAsFailed" /> 
</Target> 

<Target Name="MarkBuildStepAsFailed"> 
    <BuildStep 
     TeamFoundationServerUrl="$(TeamFoundationServerUrl)" 
     BuildUri="$(BuildUri)" 
     Id="$(StepId)" 
     Status="Failed" /> 
</Target> 

내가하지만, 문제로 실행 곳이 코드를 삽입하는 방법 발견 할 때. 웹 사이트는 내가 알아야 할 모든 것을 말하고 있을지 모르지만 나는 그저 그것을 간과하고있다. 그러나 내가 <target> 태그를 타이핑 할 때마다 VS는 그것을 인식하지 못하는 것처럼 행동합니다. 사실 위의 스 니펫에서 모든 태그를 입력하면 VS를 인식하지 못하는 것입니다.

어딘가에 (일부) 어셈블리 참조가 누락 되었습니까?

이전에 XAML을 작성했지만 필자는 "대상"을 태그로 본 적이 없으며 항상 속성의 형태로 보았습니다. 따라서 처음에이 코드를 사이트에서 보았을 때 약간 이상하게 보였지만 XAML을 많이 접하지 않았기 때문에 생각했습니다.

편집은 : 위의 단락 잘못이다 - 코멘트에서 보는 바와 같이, 상기 코드는 XML이, 주어진 코드 조각은을 수행하는, VS2008에 대한 것을 말하는가

사이트를 XAML 아니다 차이, 나는 이해한다. 그러나, 나는 그것이 그 차이가 크다는 것을 깨닫지 못했습니다.

2008 년과 2010 년의 차이점은 무엇일까? 그렇다면 2008 년 코드와 2010 년 코드의 차이점은 무엇입니까?

답변

1

이것은 WPF 또는 XAML이 아니며 단순한 오래된 XML입니다. 이 이상한보고 왜 아무것도 VS.에 등록되지 왜

은 일반적으로 .proj 파일이 아닌 .xaml 파일에가는 MSBuild에서 스크립트

+0

Ahhhhh..that는 설명 할 수있다 그래서 난 그냥 내 솔루션에 들어가서, 새 항목을 추가하고 "XML 파일"을 선택하고 거기에 위의 코드를 넣을까요? – AmbiguousX

+0

메모장에 기존 .csproj 파일 중 하나 (csproj 파일 자체는 MSBuild 스크립트)를 엽니 다. csproj 파일 내에 게시 한 사이트의 샘플 코드 추가 – kenwarner

+2

또는 먼저 프로젝트를 언로드하면 Visual Studio에서 프로젝트 파일을 편집 할 수 있습니다. –