$lang['tuto'] = "سبق"; ?> GitHub میں MSVC141 کے لیے .yml اسکرپٹ کو

GitHub میں MSVC141 کے لیے .yml اسکرپٹ کو اپ ڈیٹ کرنے کے لیے گائیڈ

GitHub میں MSVC141 کے لیے .yml اسکرپٹ کو اپ ڈیٹ کرنے کے لیے گائیڈ
GitHub میں MSVC141 کے لیے .yml اسکرپٹ کو اپ ڈیٹ کرنے کے لیے گائیڈ

GitHub ایکشنز میں MSVC141 کے مسائل کو حل کرنا

ہم ایک ویژول اسٹوڈیو 2019 پروجیکٹ پر کام کر رہے ہیں جس نے حال ہی میں لاپتہ فائلوں، خاص طور پر 'atlbase.h' سے متعلق مستثنیات کو پھینکنا شروع کر دیا ہے۔ ایسا لگتا ہے کہ یہ مسئلہ MSVC141 ٹول سیٹ کی عدم موجودگی کی وجہ سے ہے، جس کی چند ماہ قبل تک ضرورت نہیں تھی۔

اس مضمون میں، ہم آپ کی رہنمائی کریں گے کہ MSVC141 ٹول سیٹ کو شامل کرنے کے لیے GitHub ایکشنز میں اپنے .yml اسکرپٹس کو کیسے اپ ڈیٹ کریں۔ یہ ہموار پروجیکٹ کی تعمیر کو یقینی بناتا ہے اور 'فائل شامل نہیں کھول سکتا' کی غلطی سے بچتا ہے، جس سے آپ کو اپنے ترقیاتی کام کے فلو میں پیداواری صلاحیت کو برقرار رکھنے میں مدد ملتی ہے۔

کمانڈ تفصیل
uses: microsoft/setup-msbuild@v1.1 GitHub ایکشنز کے لیے MSBuild سیٹ اپ کرتا ہے، .NET پروجیکٹس کی تعمیر کی اجازت دیتا ہے۔
vs-version: 2019 MSVC141 ٹول سیٹ کے ساتھ مطابقت کو یقینی بناتے ہوئے، استعمال کرنے کے لیے Visual Studio کے ورژن کی وضاحت کرتا ہے۔
msbuild-version: 16.x تالیف کے لیے مطلوبہ MSVC141 ٹول سیٹ کے ساتھ ترتیب دیتے ہوئے MSBuild ورژن کی وضاحت کرتا ہے۔
extenda/actions/setup-nuget-sources@v0 گٹ ہب ایکشنز میں نیو گیٹ کے ذرائع کو ترتیب دیتا ہے، جو پروجیکٹ کے انحصار کو بحال کرنے کے لیے ضروری ہے۔
nuget restore POS.sln تعمیر سے پہلے تمام انحصار کو حل کرتے ہوئے، مخصوص حل کے لیے NuGet پیکجوں کو بحال کرتا ہے۔
Copy-Item PowerShell میں فائلوں کو ایک مقام سے دوسرے مقام پر کاپی کرتا ہے، یہاں ڈیٹا بیس ٹیمپلیٹس کو ہینڈل کرنے کے لیے استعمال کیا جاتا ہے۔
Start-Process پاور شیل میں ایک نیا عمل شروع کرتا ہے، جو انسٹالرز یا دیگر ایگزیکیوٹیبل چلانے کے لیے مفید ہے۔
vswhere.exe ویژول اسٹوڈیو کی تنصیبات کو تلاش کرنے کے لیے ایک افادیت، جو MSVC141 کی موجودگی کی جانچ کے لیے استعمال ہوتی ہے۔

GitHub ایکشنز میں MSVC141 ٹول سیٹ کو مربوط کرنا

اوپر فراہم کردہ اسکرپٹ اس بات کو یقینی بناتی ہیں کہ MSVC141 ٹول سیٹ آپ کے GitHub ایکشن ورک فلو میں شامل ہے۔ پہلا اسکرپٹ YAML کنفیگریشن فائل کو اپ ڈیٹ کرتا ہے تاکہ مطلوبہ ٹولز اور ماحول کو ترتیب دینے کے لیے ضروری اقدامات شامل ہوں۔ اس میں MSBuild کا استعمال کرتے ہوئے ترتیب دینا شامل ہے۔ microsoft/setup-msbuild@v1.1کے ساتھ بصری اسٹوڈیو ورژن کی وضاحت کرنا vs-version: 2019، اور اس بات کو یقینی بنانا msbuild-version: 16.x استعمال کیا جاتا ہے. یہ اقدامات یقینی بناتے ہیں کہ تعمیراتی ماحول کو MSVC141 استعمال کرنے کے لیے صحیح طریقے سے ترتیب دیا گیا ہے۔

مزید برآں، PowerShell اسکرپٹ استعمال کرتے ہوئے MSVC141 ٹول سیٹ کی موجودگی کی جانچ کرتا ہے۔ vswhere.exe. اگر یہ نہیں ملتا ہے، تو اسکرپٹ چل کر انسٹالیشن کا عمل شروع کرتا ہے۔ Start-Process لاپتہ اجزاء کو انسٹال کرنے کے لیے ضروری دلائل کے ساتھ۔ یہ خودکار طریقہ اس بات کو یقینی بناتا ہے کہ مطلوبہ ٹول سیٹ دستیاب ہے، اس کی روک تھام fatal error C1083 لاپتہ سے متعلق 'atlbase.h' جیسی فائلیں شامل ہیں۔ ان اقدامات پر عمل کرکے، آپ GitHub ایکشنز میں اپنے Visual Studio 2019 پروجیکٹس کے لیے ایک مستحکم اور مستقل تعمیری عمل کو برقرار رکھ سکتے ہیں۔

MSVC141 ٹول سیٹ کو شامل کرنے کے لیے .yml اسکرپٹ کو اپ ڈیٹ کریں۔

GitHub ایکشنز YAML کنفیگریشن

name: Pull request - Windows
on:
  pull_request:
    paths-ignore:
      - 'Engine/Engine.Android/'
      - 'Mobile/'
jobs:
  build:
    runs-on: windows-2022
    defaults:
      run:
        shell: pwsh
    env:
      DEFAULT_VERSION: v17.4.500
      SolutionDir: ${{ github.workspace }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          token: ${{ secrets.RS_GITHUB_TOKEN }}
          submodules: true
      - uses: actions/setup-java@v4
        with:
          distribution: 'temurin'
          java-version: '11'
      - name: Setup MSBuild
        uses: microsoft/setup-msbuild@v1.1
      - name: Install Visual Studio
        uses: microsoft/setup-msbuild@v1.1
        with:
          vs-version: 2019
          msbuild-version: 16.x
      - name: Setup NuGet sources
        uses: extenda/actions/setup-nuget-sources@v0
        with:
          config-file: NuGet.Config
          sources: |
            [{
              "name": "Nexus",
              "source": "https://repo.extendaretail.com/repository/nuget-hosted/",
              "username": "${{ secrets.NEXUS_USERNAME }}",
              "password": "${{ secrets.NEXUS_PASSWORD }}",
              "apikey": "${{ secrets.NUGET_API_KEY }}"
            }]
      - name: Restore NuGet packages
        run: nuget restore POS.sln
      - name: Determine version
        id: ver
        run: .\Build\determine-version.ps1
      - name: Update assemblies
        run: .\Build\update-assemblies.ps1 ${{ steps.ver.outputs.version }} ${{ steps.ver.outputs.full-version }}
      - name: Generate database template
        run: |
          .\Common\Database\AppVeyor\gen-databases.ps1 Common\Database abcDb
          Copy-Item abcDb\Template.db -Destination Common\Database
      - name: Build solution
        run: msbuild POS.sln @Build\WindowsBuildParams.rsp
      - name: Build installation packages
        run: |
          .\Build\exit-on-failure.ps1
          msbuild Installation\Installation.sln @Build\WindowsBuildParams.rsp -p:BuildNumber=${{ steps.ver.outputs.full-version }}
          ExitOnFailure
          Get-ChildItem Installation\Bin\Release
          Rename-Item -Path Installation\Bin\Release\abc.msi -NewName abc-v${{ steps.ver.outputs.full-version }}.msi
          Rename-Item -Path Installation\Bin\Release\abc.exe -NewName abc-v${{ steps.ver.outputs.full-version }}.exe
          Rename-Item -Path Installation\Bin\Release\VRRSSurfaceComponentsEditor.msi -NewName SurfaceComponentsEditor-v${{ steps.ver.outputs.full-version }}.msi
      - name: Generate customization package
        run: .\Common\Database\AppVeyor\gen-customization-zip.ps1 Common\Database ${{ steps.ver.outputs.full-version }}
      - name: Save abc Installer
        uses: actions/upload-artifact@v3
        with:
          name: abcInstaller-v${{ steps.ver.outputs.full-version }}
          path: Installation\Bin\Release\abc-*.msi
      - name: Save abc Setup
        uses: actions/upload-artifact@v3
        with:
          name: abcSetup-v${{ steps.ver.outputs.full-version }}
          path: Installation\Bin\Release\abc-*.exe
      - name: Save Database
        uses: actions/upload-artifact@v3
        with:
          name: Database-v${{ steps.ver.outputs.full-version }}
          path: Common\Database\CustomizationTemplate\*

GitHub ایکشنز میں درست MSVC ٹول سیٹ کو یقینی بنائیں

MSVC141 کو چیک کرنے اور انسٹال کرنے کے لیے پاور شیل اسکرپٹ

$vswherePath = "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"
if (-Not (Test-Path $vswherePath)) {
    Write-Error "vswhere.exe not found at $vswherePath"
    exit 1
}
$vsInstallPath = & $vswherePath -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
if (-Not $vsInstallPath) {
    Write-Output "MSVC141 not found. Installing..."
    Start-Process -FilePath "cmd.exe" -ArgumentList "/c start /wait vs_installer.exe --quiet --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --includeRecommended --includeOptional" -Wait
    if ($?) {
        Write-Output "MSVC141 installation completed."
    }
    else {
        Write-Error "Failed to install MSVC141."
        exit 1
    }
} else {
    Write-Output "MSVC141 already installed at $vsInstallPath"
}
exit 0

GitHub ایکشنز میں MSVC ٹول سیٹس کے ساتھ مطابقت کو یقینی بنانا

مسلسل انضمام (CI) ماحول میں مختلف ٹول سیٹس کے ساتھ مطابقت برقرار رکھنا جیسے GitHub ایکشنز مستقل تعمیرات کو یقینی بنانے اور غلطیوں کو کم کرنے کے لیے بہت ضروری ہے۔ ایک اہم پہلو یہ ہے کہ آپ اپنی کنفیگریشن فائلوں کو ضروری ٹولز اور انحصار کے ساتھ اپ ٹو ڈیٹ رکھیں۔ MSVC141 کے معاملے میں، یہ سمجھنا ضروری ہے کہ یہ ٹول سیٹ بعض پروجیکٹس کے لیے ضروری ہے، خاص طور پر وہ جو پرانی C++ لائبریریوں اور اجزاء پر انحصار کرتے ہیں۔

آپ کے GitHub ایکشن سیٹ اپ میں MSVC141 ٹول سیٹ کو شامل کرنے میں نہ صرف صحیح Visual Studio ورژن کی وضاحت کرنا شامل ہے بلکہ یہ بھی یقینی بنانا ہے کہ تمام انحصارات کو حل کیا جائے۔ اس میں NuGet ذرائع کو درست طریقے سے ترتیب دینا اور یوٹیلیٹیز جیسے استعمال کرنا شامل ہے۔ vswhere.exe تنصیبات کی تصدیق کرنے کے لیے۔ اپنے اندر ان اقدامات کو خودکار کرنا .yml اور پاور شیل اسکرپٹس تعمیراتی ناکامیوں کو روکنے میں مدد کرتی ہیں اور آپ کی CI/CD پائپ لائن کو آسانی سے چلتی رہتی ہیں، بالآخر ترقیاتی وقت اور وسائل کی بچت ہوتی ہے۔

MSVC ٹول سیٹس کو مربوط کرنے کے لیے عام سوالات اور حل

  1. میں گٹ ہب ایکشنز میں بصری اسٹوڈیو ورژن کی وضاحت کیسے کروں؟
  2. استعمال کریں۔ vs-version: 2019 آپ میں .yml مطلوبہ بصری اسٹوڈیو ورژن سیٹ کرنے کے لیے ترتیب۔
  3. کیا vswhere.exe اور یہ کیوں استعمال کیا جاتا ہے؟
  4. vswhere.exe بصری اسٹوڈیو کی تنصیبات کو تلاش کرنے کے لیے ایک افادیت ہے، اس بات کو یقینی بناتے ہوئے کہ مطلوبہ ٹول سیٹ دستیاب ہوں۔
  5. میں گمشدہ اجزاء کی تنصیب کو کیسے خودکار کر سکتا ہوں؟
  6. استعمال کریں۔ Start-Process پاور شیل میں انسٹالر کو غیر ضروری تنصیبات کے لیے ضروری دلائل کے ساتھ چلانے کے لیے۔
  7. NuGet ذرائع کو ترتیب دینا کیوں ضروری ہے؟
  8. NuGet ذرائع کو ترتیب دینا یقینی بناتا ہے کہ پروجیکٹ کے تمام انحصار حل ہو جائیں، جو کامیاب تعمیرات کے لیے بہت ضروری ہے۔
  9. میں MSVC141 ٹول سیٹ کی موجودگی کی جانچ کیسے کروں؟
  10. استعمال کریں۔ vswhere.exe MSVC141 ٹول سیٹ کے انسٹالیشن پاتھ کی تصدیق کرنے کے لیے اسکرپٹ میں۔
  11. کیا کرتا ہے msbuild-version: 16.x وضاحت کریں؟
  12. یہ MSVC141 ٹول سیٹ کے ساتھ مطابقت کو یقینی بناتے ہوئے، استعمال کیے جانے والے MSBuild ورژن کی وضاحت کرتا ہے۔
  13. میں گٹ ہب ایکشنز میں نیو گیٹ پیکیجز کو کیسے بحال کروں؟
  14. کمانڈ استعمال کریں۔ nuget restore اس کے بعد آپ کی حل فائل، جیسے nuget restore POS.sln.
  15. کا مقصد کیا ہے Setup MSBuild عمل؟
  16. یہ GitHub ایکشنز میں .NET پروجیکٹس بنانے کے لیے ضروری MSBuild استعمال کرنے کے لیے ماحول کو ترتیب دیتا ہے۔
  17. میں خود بخود تعمیراتی نمونے کا نام کیسے رکھ سکتا ہوں؟
  18. پاور شیل کمانڈز استعمال کریں۔ Rename-Item بلڈ ورژن کی بنیاد پر فائلوں کا نام تبدیل کرنا۔
  19. کیوں شامل کریں۔ distribution: 'temurin' جاوا سیٹ اپ میں؟
  20. یہ استعمال کرنے کے لیے JDK تقسیم کی وضاحت کرتا ہے، اس بات کو یقینی بناتا ہے کہ آپ کے پروجیکٹ کے لیے صحیح Java ورژن انسٹال ہے۔

MSVC141 کو مربوط کرنے کے بارے میں حتمی خیالات

اس بات کو یقینی بنانا کہ MSVC141 ٹول سیٹ آپ کے GitHub ایکشنز ورک فلو میں شامل ہے آپ کے Visual Studio 2019 پروجیکٹس کے استحکام اور فعالیت کو برقرار رکھنے کے لیے ضروری ہے۔ اپنی .yml اسکرپٹس کو اپ ڈیٹ کرکے اور انسٹالیشن کے عمل کو خودکار بنا کر، آپ مسنگ فائلوں سے متعلق عام تعمیراتی غلطیوں کو روک سکتے ہیں۔ یہ فعال نقطہ نظر نہ صرف وقت بچاتا ہے بلکہ آپ کی CI/CD پائپ لائن کی کارکردگی کو بھی بڑھاتا ہے، جس سے ہموار اور زیادہ قابل اعتماد پراجیکٹ کی تعمیر ہوتی ہے۔