TeamCity 4.0 MSBuild Aide
-
26-09-2019 - |
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>
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.