2010-04-13 128 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正在調用MSBuild的2.0版本,這可以解釋爲什麼msbuild正在與xml一起掙扎。

'C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \ MSBuild.exe' 「@「d:\ BuildAgent \工作\ 2f016459feee51ce \建立\ BuildSolution.msbuild.teamcity.msbuild.tcargs 「 」d:\ BuildAgent \工作\ 2f016459feee51ce \構建\ BuildSolution.msbuild.teamcity.patch.tcprojx「」 工作DIR = 'd:\ BuildAgent \工作\ 2f016459feee51ce' 微軟(R)構建引擎版本 2.0 .50727.4016 [Microsoft .NET Framework,Version 2.0.50727.4200]

我通過添加到。\ c中修復了2.0 msbuild問題ONF \ buildagent.properties球隊我市建設代理計算機上的文件,如下:

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

重新啓動後和問題解決的服務。

+1

工作先去:d 僅供參考他人\ CONF在上安裝指定的生成文件夾中找到:d – 2010-04-15 12:51:28

+0

的TeamCity 7+支持構建亞軍具體的MSBuild版本:尋找「MSBuild的版本:」在建的MSBuild步 – 2013-04-24 20:07:34

1

不幸的是,他們沒有打包WebApplications目標。 我無法找到一個沒有安裝VS的打包這些目標的SDK ......沒辦法。 我不明白爲什麼MS讓CI如此困難。