Проблема создания скрипта MSBUILD - PullRequest
0 голосов
/ 06 января 2011

У меня проблемы с тегом <target> в моем проекте WPF.

То, что я пытаюсь сделать, это реализовать событие после сборки в автоматизированной сборке команды, которую я настроил в TFS 2010, которая запускает часть интегрированного программного обеспечения для измерения метрик кода под названием NDepend. Сайт NDepend дает некоторые примеры кода того, что мне нужно сделать, я считаю. Эти фрагменты кода показаны ниже:

<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, а не XAML

На сайте написано, что приведенные фрагменты кода предназначены для VS2008, что, как я понимаю, действительно имеет значение. Однако я не осознавал, что это большая разница.

Так может ли быть разница с 2008 по 2010 год? В каком случае, чем отличается код от 2008 года, приведенный выше, и каким он должен быть в 2010 году?

1 Ответ

1 голос
/ 06 января 2011

Это не WPF или XAML, это просто старый XML.

Это скрипт MSBuild, который обычно идет в файле .proj, а не в файле .xaml

...