Οδηγός για την ενημέρωση σεναρίων .yml για MSVC141 στο GitHub

Οδηγός για την ενημέρωση σεναρίων .yml για MSVC141 στο GitHub
Οδηγός για την ενημέρωση σεναρίων .yml για MSVC141 στο GitHub

Επίλυση ζητημάτων MSVC141 στις Ενέργειες GitHub

Εργαζόμαστε σε ένα έργο του Visual Studio 2019 που πρόσφατα άρχισε να δημιουργεί εξαιρέσεις που σχετίζονται με αρχεία που λείπουν, συγκεκριμένα το 'atlbase.h'. Αυτό το ζήτημα φαίνεται να οφείλεται στην απουσία του συνόλου εργαλείων MSVC141, το οποίο δεν ήταν απαραίτητο μέχρι πριν από λίγους μήνες.

Σε αυτό το άρθρο, θα σας καθοδηγήσουμε πώς να ενημερώσετε τα σενάρια .yml στο GitHub Actions ώστε να συμπεριλάβετε το σύνολο εργαλείων MSVC141. Αυτό διασφαλίζει την ομαλή κατασκευή έργων και αποφεύγει το σφάλμα "δεν μπορεί να ανοίξει το αρχείο συμπερίληψης", βοηθώντας σας να διατηρήσετε την παραγωγικότητα στη ροή εργασιών ανάπτυξης.

Εντολή Περιγραφή
uses: microsoft/setup-msbuild@v1.1 Ρυθμίζει το MSBuild for GitHub Actions, επιτρέποντας τη δημιουργία έργων .NET.
vs-version: 2019 Καθορίζει την έκδοση του Visual Studio που θα χρησιμοποιηθεί, διασφαλίζοντας τη συμβατότητα με το σύνολο εργαλείων MSVC141.
msbuild-version: 16.x Καθορίζει την έκδοση MSBuild, ευθυγραμμισμένη με το απαιτούμενο σύνολο εργαλείων MSVC141 για μεταγλώττιση.
extenda/actions/setup-nuget-sources@v0 Ρυθμίζει τις πηγές NuGet στο GitHub Actions, απαραίτητες για την αποκατάσταση εξαρτήσεων έργου.
nuget restore POS.sln Επαναφέρει τα πακέτα NuGet για την καθορισμένη λύση, επιλύοντας όλες τις εξαρτήσεις πριν από την κατασκευή.
Copy-Item Αντιγράφει αρχεία από τη μια τοποθεσία στην άλλη στο PowerShell, που χρησιμοποιούνται εδώ για το χειρισμό προτύπων βάσης δεδομένων.
Start-Process Ξεκινά μια νέα διαδικασία στο PowerShell, χρήσιμη για την εκτέλεση προγραμμάτων εγκατάστασης ή άλλων εκτελέσιμων.
vswhere.exe Ένα βοηθητικό πρόγραμμα για τον εντοπισμό των εγκαταστάσεων του Visual Studio, που χρησιμοποιείται για τον έλεγχο της παρουσίας του MSVC141.

Ενσωμάτωση συνόλου εργαλείων MSVC141 στο GitHub Actions

Τα σενάρια που παρέχονται παραπάνω διασφαλίζουν ότι το σύνολο εργαλείων MSVC141 περιλαμβάνεται στη ροή εργασίας σας στο GitHub Actions. Το πρώτο σενάριο ενημερώνει το αρχείο διαμόρφωσης YAML για να περιλαμβάνει βήματα που είναι απαραίτητα για τη ρύθμιση των απαιτούμενων εργαλείων και περιβαλλόντων. Αυτό περιλαμβάνει τη ρύθμιση του MSBuild χρησιμοποιώντας microsoft/setup-msbuild@v1.1, καθορίζοντας την έκδοση του Visual Studio με vs-version: 2019, και διασφαλίζοντας ότι η msbuild-version: 16.x χρησιμοποιείται. Αυτά τα βήματα διασφαλίζουν ότι το περιβάλλον κατασκευής έχει ρυθμιστεί σωστά για χρήση του MSVC141.

Επιπλέον, η δέσμη ενεργειών PowerShell ελέγχει την παρουσία του συνόλου εργαλείων MSVC141 χρησιμοποιώντας vswhere.exe. Εάν δεν βρεθεί, το σενάριο ξεκινά τη διαδικασία εγκατάστασης εκτελώντας Start-Process με τα απαραίτητα ορίσματα για την εγκατάσταση των στοιχείων που λείπουν. Αυτή η αυτοματοποιημένη προσέγγιση διασφαλίζει ότι το απαιτούμενο σύνολο εργαλείων είναι διαθέσιμο, αποτρέποντας το fatal error C1083 που σχετίζονται με λείπουν περιλαμβάνουν αρχεία όπως το 'atlbase.h'. Ακολουθώντας αυτά τα βήματα, μπορείτε να διατηρήσετε μια σταθερή και συνεπή διαδικασία κατασκευής για τα έργα σας στο Visual Studio 2019 στο GitHub Actions.

Ενημερώστε τη δέσμη ενεργειών .yml για να συμπεριλάβει το σύνολο εργαλείων MSVC141

GitHub Actions Διαμόρφωση 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\*

Διασφαλίστε το σωστό σύνολο εργαλείων MSVC στις Ενέργειες GitHub

PowerShell Script για έλεγχο και εγκατάσταση 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

Διασφάλιση συμβατότητας με σύνολα εργαλείων MSVC στο GitHub Actions

Η διατήρηση της συμβατότητας με διάφορα σύνολα εργαλείων σε περιβάλλον συνεχούς ενοποίησης (CI) όπως το GitHub Actions είναι ζωτικής σημασίας για τη διασφάλιση συνεπών εκδόσεων και την ελαχιστοποίηση των σφαλμάτων. Μια βασική πτυχή είναι να διατηρείτε ενημερωμένα τα αρχεία διαμόρφωσης με τα απαραίτητα εργαλεία και εξαρτήσεις. Στην περίπτωση του MSVC141, είναι σημαντικό να κατανοήσουμε ότι αυτό το σύνολο εργαλείων είναι απαραίτητο για ορισμένα έργα, ειδικά εκείνα που βασίζονται σε παλαιότερες βιβλιοθήκες και στοιχεία C++.

Η συμπερίληψη του συνόλου εργαλείων MSVC141 στη ρύθμιση του GitHub Actions περιλαμβάνει όχι μόνο τον καθορισμό της σωστής έκδοσης του Visual Studio αλλά και τη διασφάλιση της επίλυσης όλων των εξαρτήσεων. Αυτό περιλαμβάνει τη σωστή διαμόρφωση των πηγών NuGet και τη χρήση βοηθητικών προγραμμάτων όπως vswhere.exe για την επαλήθευση εγκαταστάσεων. Αυτοματοποιώντας αυτά τα βήματα στο δικό σας .yml και τα σενάρια PowerShell συμβάλλουν στην αποφυγή αστοχιών κατασκευής και διατηρούν την ομαλή λειτουργία της γραμμής CI/CD σας, εξοικονομώντας τελικά χρόνο και πόρους ανάπτυξης.

Συνήθεις ερωτήσεις και λύσεις για την ενσωμάτωση συνόλων εργαλείων MSVC

  1. Πώς μπορώ να καθορίσω την έκδοση του Visual Studio στο GitHub Actions;
  2. Χρήση vs-version: 2019 στο δικό σου .yml ρύθμιση παραμέτρων για να ορίσετε την επιθυμητή έκδοση του Visual Studio.
  3. Τι είναι vswhere.exe και γιατί χρησιμοποιείται;
  4. vswhere.exe είναι ένα βοηθητικό πρόγραμμα για τον εντοπισμό των εγκαταστάσεων του Visual Studio, διασφαλίζοντας ότι τα απαιτούμενα σύνολα εργαλείων είναι διαθέσιμα.
  5. Πώς μπορώ να αυτοματοποιήσω την εγκατάσταση των στοιχείων που λείπουν;
  6. Χρήση Start-Process στο PowerShell για να εκτελέσετε το πρόγραμμα εγκατάστασης με τα απαραίτητα ορίσματα για εγκαταστάσεις χωρίς παρακολούθηση.
  7. Γιατί είναι σημαντικό να ρυθμίσετε τις παραμέτρους των πηγών NuGet;
  8. Η διαμόρφωση των πηγών NuGet διασφαλίζει ότι όλες οι εξαρτήσεις του έργου επιλύονται, κάτι που είναι ζωτικής σημασίας για επιτυχημένες εκδόσεις.
  9. Πώς μπορώ να ελέγξω για την παρουσία του συνόλου εργαλείων MSVC141;
  10. Χρήση vswhere.exe σε μια δέσμη ενεργειών για να επαληθεύσετε τη διαδρομή εγκατάστασης του συνόλου εργαλείων MSVC141.
  11. Τι κάνει msbuild-version: 16.x προσδιορίζω?
  12. Καθορίζει την έκδοση MSBuild που θα χρησιμοποιηθεί, διασφαλίζοντας τη συμβατότητα με το σύνολο εργαλείων MSVC141.
  13. Πώς μπορώ να επαναφέρω πακέτα NuGet στο GitHub Actions;
  14. Χρησιμοποιήστε την εντολή nuget restore ακολουθούμενο από το αρχείο λύσης σας, όπως nuget restore POS.sln.
  15. Ποιος είναι ο σκοπός του Setup MSBuild δράση?
  16. Ρυθμίζει το περιβάλλον ώστε να χρησιμοποιεί το MSBuild, απαραίτητο για τη δημιουργία έργων .NET στο GitHub Actions.
  17. Πώς μπορώ να μετονομάσω αυτόματα τα τεχνουργήματα κατασκευής;
  18. Χρησιμοποιήστε εντολές PowerShell όπως Rename-Item για να μετονομάσετε αρχεία με βάση την έκδοση έκδοσης.
  19. Γιατί να συμπεριλάβετε distribution: 'temurin' στη ρύθμιση Java;
  20. Αυτό καθορίζει τη διανομή JDK που θα χρησιμοποιηθεί, διασφαλίζοντας ότι έχει εγκατασταθεί η σωστή έκδοση Java για το έργο σας.

Τελικές σκέψεις για την ενσωμάτωση του MSVC141

Η διασφάλιση ότι το σύνολο εργαλείων MSVC141 περιλαμβάνεται στη ροή εργασιών σας στο GitHub Actions είναι απαραίτητη για τη διατήρηση της σταθερότητας και της λειτουργικότητας των έργων σας στο Visual Studio 2019. Ενημερώνοντας τα σενάρια .yml και αυτοματοποιώντας τη διαδικασία εγκατάστασης, μπορείτε να αποτρέψετε κοινά σφάλματα κατασκευής που σχετίζονται με αρχεία που λείπουν. Αυτή η προληπτική προσέγγιση όχι μόνο εξοικονομεί χρόνο, αλλά ενισχύει επίσης την αποτελεσματικότητα του αγωγού CI/CD σας, επιτρέποντας ομαλότερη και πιο αξιόπιστη κατασκευή έργων.