Question

J'ai besoin d'aide avec mon fichier MSBuild j'ai créé il y a un certain temps.

Tout ce que je veux faire est de construire la solution, publier un projet dans la solution et que copier les fichiers dans un répertoire

Au moment où je mis Teamcity à 4 .net msbuild, MSBuild 4.0 outils et 86 je reçois une erreur indiquant

  

MSB4067 erreur. Le <ItemDefinitionGroup> de l'élément sous l'élément <Project> est méconnu


<?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>
Était-ce utile?

La solution

Je reçois ce code d'erreur aussi bien se plaindre d'un autre élément:

  

MSB4067 erreur. Le <ArtifactAssemblies> de l'élément sous l'élément <ItemGroup> est méconnu

J'ai remarqué que Teamcity invoque la version 2.0 de MSBuild, ce qui pourrait expliquer pourquoi msbuild est aux prises avec le code XML.

  

'C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ MSBuild.exe'   « @ "D: \ BuildAgent \ work \ 2f016459feee51ce \ build \" BuildSolution.msbuild.teamcity.msbuild.tcargs   "D: \ BuildAgent \ work \ 2f016459feee51ce \ build \ BuildSolution.msbuild.teamcity.patch.tcprojx" »   dir = travail   'D: \ BuildAgent de travail \ 2f016459feee51ce'   Microsoft (R) Version Moteur Construire   2.0.50727.4016 [Microsoft .NET Framework, version 2.0.50727.4200]

Je fixe le problème 2.0 msbuild en ajoutant à la \ conf \ buildagent.properties fichier sur la ville d'équipe pour la machine de l'agent, ce qui suit:.

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

Redémarrez le service après et le problème est résolu.

Autres conseils

Malheureusement, ils n'emballent pas les objectifs de webapplications. Je ne peux pas trouver un SDK qui a ces objectifs emballés sans avoir VS installé ... aucun moyen. Je ne comprends pas pourquoi MS rend CI si difficile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top