Teamcity MSBUILD 4.0 Помощь
-
26-09-2019 - |
Вопрос
Мне нужна помощь с моим файлом MSBuild, который я создал некоторое время назад.
Все, что я хочу сделать, это создать решение, опубликовать проект внутри решения и, чем скопируйте файлы в каталог
На данный момент, когда я устанавливаю Teamcity to .NET 4 MSBUILD, MSBUILD 4.0 Tools и для 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>
Решение
Я тоже получаю этот код ошибки, хотя жаловаться на другой элемент:
Ошибка MSB4067: элемент
<ArtifactAssemblies>
под элементом<ItemGroup>
не является непризнанным.
Я заметил, что Teamcity вызывает версию MSBuild 2.0, которая могла объяснить, почему MSBuild борется с XML.
'C: Windows Microsoft.net framework v2.0.50727 msbuild.exe' '@ "D: buildagent work 2f016459feee51ce build buildsolution.msbuild.teamcity.msbuild.tcargs" d: buildagent Работа 2f016459feee51ce build buildsolution.msbuild.teamcity.patch.tcprojx "« Рабочий DIR = 'D: Buildagent Work 2F016459Feee51Ce' Microsoft (R) Build Engine версия 2.0.50727.4016 [Microsoft .NET Framework, версия 2.0.50727.4200 Несомненно
Я исправил проблему MSBuild 2.0, добавив к файлу. Conf Buildangent.properties file at Team City Build Agent, следующий:
env.MSBuild=%system.DotNetFramework4.0_x86_Path%
Перезапустите службу после этого и решена проблема.
Другие советы
К сожалению, они не упаковывают цели webaplications. Я не могу найти SDK, в котором есть эти цели, упакованные без установки VS ... Нет. Я не понимаю, почему MS делает CI так сложно.