سؤال

أحتاج إلى بعض المساعدة في ملف 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>
هل كانت مفيدة؟

المحلول

أحصل على رمز الخطأ هذا أيضًا ، على الرغم من الشكوى من عنصر مختلف:

خطأ 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.tcarg Work 2f016459feee51ce build buildsolution.msbuild.teamcity.patch.tcprojx "'Working dir =' d: buildagent work 2f016459feee51ce 'microsoft (r) build engine version 2.0727.4016 [

لقد أصلحت مشكلة 2.0 msbuild عن طريق الإضافة إلى ملف.

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

أعد تشغيل الخدمة بعد ذلك وحل المشكلة.

نصائح أخرى

لسوء الحظ ، لا يحزمون أهداف WebApplications. لا يمكنني العثور على SDK الذي يتم تعبئته هذه الأهداف دون تثبيت VS ... لا توجد طريقة. لا أفهم لماذا يجعل MS CI صعبة للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top