TeamCity MSBuild 4.0帮助

Chr*_*nko 4 teamcity msbuild-4.0

我需要一些我之前创建的MSBuild文件的帮助.

我想要做的就是构建解决方案,在解决方案中发布项目,然后将文件复制到目录中

当我将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>
Run Code Online (Sandbox Code Playgroud)

Fre*_*rik 8

虽然我抱怨不同的元素,但我也得到了这个错误代码:

错误MSB4067:元素<ArtifactAssemblies>下面的元素<ItemGroup>无法识别.

我注意到Teamcity正在调用2.0版本的MSBuild,这可以解释为什么msbuild正在努力使用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"'working dir ='D:\ BuildAgent\work\2f016459feee51ce'Microsoft(R)Build Engine Version 2.0.50727.4016 [Microsoft .NET Framework,Version 2.0.50727.4200 ]

我通过添加到团队城市构建代理计算机上的.\ conf\buildagent.properties文件来修复2.0 msbuild问题,如下所示:

env.MSBuild=%system.DotNetFramework4.0_x86_Path%
Run Code Online (Sandbox Code Playgroud)

之后重新启动服务并解决问题.