2010-04-13 3 views
4

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

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

В тот момент, когда я установить Teamcity в .net 4 MSBuild, MSBuild 4.0 инструменты и 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> 

ответ

8

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

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

Я заметил, что Teamcity вызывает версию 2.0 MSBuild, которая может объяснить, почему 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) версия сборки двигателя 2,0 .50727.4016 [Microsoft .NET Framework, версия 2.0.50727.4200]

Я исправил проблему 2.0 msbuild, добавив в. \ C ОНФ \ buildagent.properties файл на команду городов машине сборки агента, следующее:

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

перезапустить службу после этого и проблемы решены.

+1

Работал первым идти: D FYI для других \ конф находится в папке сборки, указанной на установке.: D –

+0

TeamCity 7+ поддерживает специальные версии MSBuild в сборки бегунов: Посмотрите на «MSBuild версии:» в MSBuild построить шаг –

1

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