Pregunta

necesito ayuda con mi archivo de MSBuild que creé hace un tiempo.

Todo lo que quiero hacer es construir la solución, publicar un proyecto dentro de la solución y que copia los archivos a un directorio

En el momento en que me puse a TeamCity .net 4 msbuild, MSBUILD 4.0 herramientas y el 86 me sale un error que indica

  

error MSB4067:. El elemento <ItemDefinitionGroup> debajo elemento <Project> no se reconoce


<?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>
¿Fue útil?

Solución

Me estoy poniendo el código de error también, aunque quejándose de un elemento diferente:

  

error MSB4067:. El elemento <ArtifactAssemblies> debajo elemento <ItemGroup> no se reconoce

Me di cuenta de que TeamCity está invocando la versión 2.0 de MSBuild, lo que podría explicar por qué msbuild está luchando con el código XML.

  

'C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ MSBuild.exe'   '@ "D: \ BuildAgent \ trabajo \ 2f016459feee51ce \ build \ BuildSolution.msbuild.teamcity.msbuild.tcargs"   "D: \ BuildAgent \ trabajo \ 2f016459feee51ce \ Build \ BuildSolution.msbuild.teamcity.patch.tcprojx"'   trabajando dir =   'D: \ BuildAgent \ trabajo \ 2f016459feee51ce'   Microsoft (R) Construir la versión del motor   2.0.50727.4016 [Microsoft .NET Framework, versión 2.0.50727.4200]

He arreglado el problema 2.0 msbuild añadiendo a la \ conf \ buildagent.properties archivo en la máquina agente de compilación equipo de la ciudad, lo siguiente:.

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

Reiniciar el servicio después de eso y problema resuelto.

Otros consejos

Por desgracia, no se empaquetan los objetivos WebApplications. No puedo encontrar un SDK que tiene estos objetivos envasados ??sin tener instalado VS ... de ninguna manera. No entiendo por qué EM CI hace tan difícil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top