تمرين - الرجوع إلى الحزمة من التطبيق

مكتمل

في هذه الوحدة، ستحصل على التعليمة البرمجية الجديدة Tailspin.SpaceGame.Web، التي تحتوي على فئات النماذج التي تمت إزالتها. بدلا من الرجوع إلى النماذج مباشرة، ستشير إليها التعليمات البرمجية من الحزمة التي أنشأتها في الوحدة السابقة.

فيما يلي قائمة بالخطوات:

  • احصل على التعليمات البرمجية الجديدة من فرع مستودع Tailspin.SpaceGame.Web الأصلي.
  • الرجوع إلى حزمة النماذج الجديدة، الإصدار 1.0.0.
  • للبحث عن هذه الحزمة في موجز Azure Artifacts، قم بتغيير البنية الأساسية لبرنامج ربط العمليات التجارية للبناء.
  • شاهد البنية الأساسية لبرنامج ربط العمليات التجارية بنجاح في إنشاء التطبيق.

إحضار الفرع من GitHub

models-package أحضر الفرع من GitHub وتحقق من هذا الفرع أو قم بالتبديل إليه.

يحتوي هذا الفرع على مشروع Space Game الذي عملت معه في الوحدات النمطية السابقة، ولكن تمت إزالة دليل Models.

  1. التبديل إلى النسخة الخاصة بك من Visual Studio Code التي تعرض المشروع Tailspin.SpaceGame.Web.

  2. من المحطة الطرفية، لإحضار فرع يسمى models-package من مستودع Microsoft، قم بتشغيل الأوامر التالية git . ثم قم بالتبديل إلى هذا الفرع.

    git fetch upstream models-package
    git checkout -B models-package upstream/models-package
    

    يسمح لك تنسيق هذه الأوامر بالحصول على التعليمات البرمجية للبدء من مستودع Microsoft على GitHub، والمعروفة باسم upstream. قريبا، ستدفع هذا الفرع إلى مستودع GitHub الخاص بك، والمعروف باسم origin.

  3. كخطوة اختيارية، تحقق من أن دليل Models لم يعد موجودا في مستكشف الملفات. بدلا من ذلك، يجب أن يكون لديك وحدات تحكم وطرق عرض ودلائل أخرى.

الرجوع إلى حزمة النماذج

  1. افتح الملف Tailspin.SpaceGame.Web.csproj ثم، قم بإضافة ItemGroup التالية:

    <ItemGroup>
      <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" />
    </ItemGroup>
    

    تأكد من وضع ItemGroup داخل عقدة Project. يجب أن يكون ملفك مشابهاً لهذا الملف:

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <TargetFramework>net6.0</TargetFramework>
        <ProjectGuid>{A0C4E31E-AC75-4F39-9F59-0AA19D9B8F46}</ProjectGuid>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" />
      </ItemGroup>
    
      <ItemGroup>
        <Folder Include="wwwroot\images\avatars\" />
      </ItemGroup>
    </Project>
    
  2. لتضمين بادئة ما قبل الإصدار التي تم إنشاؤها في أثناء عملية الإنشاء، قم بتعديل الإصدار "1.0.0". إليك مثال:

    <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
    

    يشير هذا إلى حزمة Tailspin.SpaceGame.Web.Models التي قمت بإنشائها في Azure Artifacts. لاحظ رقم الإصدار، 1.0.0، بالإضافة إلى لاحقة الإصدار المسبق. يطابق هذا الإصدار الأولي الذي قمت بنشره إلى Azure Artifacts في الوحدة السابقة.

  3. احفظ الملف.

    إشعار

    عند حفظ الملف، قد يطلب منك Visual Studio Code استعادة التبعيات. حدد الزر Restore لاستعادة التبعيات.

تعديل تكوين البنية الأساسية لبرنامج ربط العمليات التجارية

يوفر فرع models-package ملف azure-pipelines.yml الأولي. هنا، ستقوم بتعديل تكوين البنية الأساسية لبرنامج ربط العمليات التجارية لسحب حزمة Tailspin.SpaceGame.Web.Models من Azure Artifacts.

  1. من Visual Studio Code، افتح azure-pipelines.yml.

  2. تعديل azure-pipelines.yml كما هو موضح هنا:

    trigger:
    - '*'
    
    pool:
      vmImage: 'ubuntu-20.04'
      demands:
      - npm
    
    variables:
      buildConfiguration: 'Release'
      wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot'
      dotnetSdkVersion: '6.x'
    
    steps:
    - task: UseDotNet@2
      displayName: 'Use .NET SDK $(dotnetSdkVersion)'
      inputs:
        version: '$(dotnetSdkVersion)'
    
    - task: NuGetToolInstaller@0
      inputs:
        versionSpec: '5.9.1'
    
    - task: Npm@1
      displayName: 'Run npm install'
      inputs:
        verbose: false
    
    - script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)'
      displayName: 'Compile Sass assets'
    
    - task: gulp@1
      displayName: 'Run gulp tasks'
    
    - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt'
      displayName: 'Write build info'
      workingDirectory: $(wwwrootDir)
    
    - task: NuGetCommand@2
      displayName: 'Restore project dependencies'
      inputs:
        command: 'restore'
        restoreSolution: '**/*.sln'
        feedsToUse: 'select'
        vstsFeed: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models'
    
    - task: DotNetCoreCLI@2
      displayName: 'Build the project - $(buildConfiguration)'
      inputs:
        command: 'build'
        arguments: '--no-restore --configuration $(buildConfiguration)'
        projects: '**/*.csproj'
    
    - task: DotNetCoreCLI@2
      displayName: 'Publish the project - $(buildConfiguration)'
      inputs:
        command: 'publish'
        projects: '**/*.csproj'
        publishWebProjects: false
        arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)'
        zipAfterPublish: true
    
    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact: drop'
      condition: succeeded()
    

    توضح التعليمات البرمجية المميزة مكان استعادة البنية الأساسية لبرنامج ربط العمليات التجارية للتبعيات، وتبحث في موجز Azure Artifacts الخاص بك عن التبعيات التي قد تكون هناك.

  3. قم بعرض التغييرات وتثبيتها ودفعها إلى GitHub.

    git add .
    git commit -m "Add reference to Models package"
    git push origin models-package
    
  4. انتقل إلى Azure Pipelines وشاهد تشغيل الإصدار. يلتقط الإصدار حزمة «Models» لديك من Azure Artifacts وينشئ المشروع بنجاح.