Справка по TeamCity MSBuild 4.0 - PullRequest
4 голосов
/ 13 апреля 2010

Мне нужна помощь с моим файлом MSBuild, который я создал некоторое время назад.

Все, что я хочу сделать, - это построить решение, опубликовать проект внутри решения и затем скопировать файлы в каталог

В тот момент, когда я устанавливаю Teamcity на .net 4 msbuild, msbuild 4.0 tools и для 86 я получаю сообщение об ошибке

ошибка MSB4067: элемент <ItemDefinitionGroup> под элементом <Project> не распознан.


<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Run">

  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"/>

  <PropertyGroup>
    <OutputFolder>$(OutputDir)</OutputFolder>
    <DeploymentFolder>$(DeploymentDir)</DeploymentFolder>
    <CompilationDebug />
    <CustomErrorsMode />
    <ContentEditorsEmail />
    <AdministratorsEmail />
  </PropertyGroup>

  <Target Name="Run">
    <CallTarget Targets="Compile" />
    <CallTarget Targets="Publish" />
    <CallTarget Targets="Deploy" />
  </Target>

  <Target Name="Clean">
    <ItemGroup>
      <BinFiles Include="bin\*.*" />
    </ItemGroup>
    <Delete Files="@(BinFiles)" />
  </Target>

  <Target Name="Compile" DependsOnTargets="Clean">
    <MSBuild Projects="WebCanvas.ZakisCatering.Website.sln"
        Properties="Configuration=Release"/>
  </Target>

  <Target Name="Publish">
    <RemoveDir Directories="$(OutputFolder)" ContinueOnError="true" />
    <MSBuild Projects="WebCanvas.ZakisCatering.Website\WebCanvas.ZakisCatering.Website.csproj"
             Targets="ResolveReferences;_CopyWebApplication"
             Properties="Configuration=Release;WebProjectOutputDir=$(OutputFolder);OutDir=$(WebProjectOutputDir)\" />
  </Target>

  <Target Name="Deploy">
    <RemoveDir Directories="$(DeploymentFolder)"
               ContinueOnError="true" />
    <ItemGroup>
      <DeploymentFiles Include="$(OutputFolder)\**\*.*" />
    </ItemGroup>
    <Copy SourceFiles="@(DeploymentFiles)"
          DestinationFolder="$(DeploymentFolder)\%(RecursiveDir)" />
  </Target>

</Project>

Ответы [ 2 ]

8 голосов
/ 13 апреля 2010

Я тоже получаю этот код ошибки, хотя жалуюсь на другой элемент:

ошибка MSB4067: элемент <ArtifactAssemblies> под элементом <ItemGroup> не распознан.

Я заметил, что Teamcity вызывает версию MSBuild 2.0, которая может объяснить, почему msbuild борется с xml.

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ MSBuild.exe ' @ "D: \ BuildAgent \ работа \ 2f016459feee51ce \ Построить \ BuildSolution.msbuild.teamcity.msbuild.tcargs" "D: \ BuildAgent \ работа \ 2f016459feee51ce \ Построение \ BuildSolution.msbuild.teamcity.patch.tcprojx"» рабочий каталог = 'D: \ BuildAgent \ работа \ 2f016459feee51ce' Версия Microsoft (R) Build Engine 2.0.50727.4016 [Microsoft .NET Framework, версия 2.0.50727.4200]

Я исправил проблему с 2.0 msbuild, добавив в файл. \ Conf \ buildagent.properties на компьютере агента сборки команды city:

env.MSBuild=%system.DotNetFramework4.0_x86_Path%

После этого перезапустите службу и проблема решится.

1 голос
/ 03 мая 2010

К сожалению, они не упаковывают цели WebApplications. Я не могу найти SDK, в котором эти цели были упакованы, не установив VS ... никак. Я не понимаю, почему MS делает КИ таким сложным.

...