Водич за ажурирање .имл скрипти за МСВЦ141 у ГитХуб-у

Водич за ажурирање .имл скрипти за МСВЦ141 у ГитХуб-у
Водич за ажурирање .имл скрипти за МСВЦ141 у ГитХуб-у

Решавање МСВЦ141 проблема у ГитХуб акцијама

Радимо на пројекту Висуал Студио 2019 који је недавно почео да избацује изузетке у вези са датотекама које недостају, посебно 'атлбасе.х'. Чини се да је овај проблем настао због одсуства МСВЦ141 скупа алата, који није био потребан до пре неколико месеци.

У овом чланку ћемо вас упутити како да ажурирате своје .имл скрипте у ГитХуб Ацтионс да бисте укључили МСВЦ141 скуп алата. Ово обезбеђује глатку израду пројекта и избегава грешку „не може да се отвори укључена датотека“, помажући вам да одржите продуктивност у току развоја.

Цомманд Опис
uses: microsoft/setup-msbuild@v1.1 Поставља МСБуилд за ГитХуб акције, омогућавајући прављење .НЕТ пројеката.
vs-version: 2019 Одређује верзију Висуал Студио-а за коришћење, обезбеђујући компатибилност са МСВЦ141 скупом алата.
msbuild-version: 16.x Дефинише верзију МСБуилд-а, усклађујући се са потребним МСВЦ141 скупом алата за компилацију.
extenda/actions/setup-nuget-sources@v0 Конфигурише НуГет изворе у ГитХуб акцијама, што је неопходно за враћање зависности пројекта.
nuget restore POS.sln Враћа НуГет пакете за наведено решење, решавајући све зависности пре изградње.
Copy-Item Копира датотеке са једне локације на другу у ПоверСхелл-у, која се овде користи за руковање шаблонима базе података.
Start-Process Покреће нови процес у ПоверСхелл-у, користан за покретање инсталатера или других извршних датотека.
vswhere.exe Услужни програм за лоцирање Висуал Студио инсталација, који се користи за проверу присуства МСВЦ141.

Интеграција МСВЦ141 скупа алата у ГитХуб акције

Горе наведене скрипте осигуравају да је МСВЦ141 скуп алата укључен у ваш радни ток ГитХуб Ацтионс. Прва скрипта ажурира ИАМЛ конфигурациону датотеку како би укључила кораке неопходне за подешавање потребних алата и окружења. Ово укључује подешавање МСБуилд-а помоћу microsoft/setup-msbuild@v1.1, наводећи верзију Висуал Студио-а са vs-version: 2019, и обезбеђивање да msbuild-version: 16.x се користи. Ови кораци осигуравају да је окружење за прављење исправно конфигурисано за коришћење МСВЦ141.

Поред тога, ПоверСхелл скрипта проверава присуство МСВЦ141 скупа алата који користи vswhere.exe. Ако није пронађена, скрипта покреће процес инсталације покретањем Start-Process са потребним аргументима за инсталирање компоненти које недостају. Овај аутоматизовани приступ осигурава да је потребан скуп алата доступан, спречавајући fatal error C1083 у вези са недостајућим укљученим датотекама као што је 'атлбасе.х'. Пратећи ове кораке, можете одржавати стабилан и конзистентан процес изградње за своје Висуал Студио 2019 пројекте у ГитХуб Ацтионс.

Ажурирајте .имл скрипту да бисте укључили МСВЦ141 скуп алата

ГитХуб Ацтионс ИАМЛ конфигурација

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\*

Осигурајте исправан МСВЦ скуп алата у ГитХуб радњама

ПоверСхелл скрипта за проверу и инсталирање МСВЦ141

$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

Обезбеђивање компатибилности са МСВЦ скуповима алата у ГитХуб акцијама

Одржавање компатибилности са различитим скуповима алата у окружењу за континуирану интеграцију (ЦИ), као што је ГитХуб Ацтионс, кључно је за осигуравање конзистентне израде и минимизирање грешака. Један од кључних аспеката је да ажурирате своје конфигурационе датотеке са потребним алатима и зависностима. У случају МСВЦ141, важно је разумети да је овај скуп алата неопходан за одређене пројекте, посебно оне који се ослањају на старије Ц++ библиотеке и компоненте.

Укључивање МСВЦ141 скупа алата у ваше ГитХуб Ацтионс подешавање укључује не само навођење исправне верзије Висуал Студио-а већ и осигуравање да су све зависности решене. Ово укључује исправно конфигурисање НуГет извора и коришћење услужних програма као што су vswhere.exe за проверу инсталација. Аутоматизација ових корака унутар вашег .yml и ПоверСхелл скрипте помажу у спречавању грешака у изградњи и одржавају неометано функционисање вашег ЦИ/ЦД цевовода, на крају штедећи време и ресурсе за развој.

Уобичајена питања и решења за интеграцију МСВЦ скупова алата

  1. Како да наведем верзију Висуал Студио-а у ГитХуб радњама?
  2. Користите vs-version: 2019 у вашем .yml конфигурацију да бисте подесили жељену верзију Висуал Студио-а.
  3. Шта је vswhere.exe и зашто се користи?
  4. vswhere.exe је услужни програм за лоцирање Висуал Студио инсталација, осигуравајући да су потребни скупови алата доступни.
  5. Како могу да аутоматизујем инсталацију компоненти које недостају?
  6. Користите Start-Process у ПоверСхелл-у да бисте покренули инсталатер са потребним аргументима за инсталације без надзора.
  7. Зашто је важно конфигурисати НуГет изворе?
  8. Конфигурисање НуГет извора осигурава да су све зависности пројекта решене, што је кључно за успешне градње.
  9. Како да проверим присуство МСВЦ141 скупа алата?
  10. Користите vswhere.exe у скрипти за верификацију путање инсталације скупа алата МСВЦ141.
  11. Шта ради msbuild-version: 16.x спецификовати?
  12. Он одређује верзију МСБуилд-а која ће се користити, обезбеђујући компатибилност са МСВЦ141 скупом алата.
  13. Како да вратим НуГет пакете у ГитХуб Ацтионс?
  14. Користите команду nuget restore праћено вашом датотеком решења, нпр nuget restore POS.sln.
  15. Која је сврха Setup MSBuild поступак?
  16. Конфигурише окружење да користи МСБуилд, неопходан за прављење .НЕТ пројеката у ГитХуб Ацтионс.
  17. Како могу аутоматски преименовати артефакте изградње?
  18. Користите ПоверСхелл команде као што су Rename-Item да бисте преименовали датотеке на основу верзије израде.
  19. Зашто укључити distribution: 'temurin' у Јава подешавању?
  20. Ово специфицира ЈДК дистрибуцију коју треба користити, осигуравајући да је исправна Јава верзија инсталирана за ваш пројекат.

Завршна размишљања о интеграцији МСВЦ141

Обезбеђивање да је МСВЦ141 скуп алата укључен у ваш радни ток ГитХуб Ацтионс је од суштинског значаја за одржавање стабилности и функционалности ваших Висуал Студио 2019 пројеката. Ажурирањем ваших .имл скрипти и аутоматизацијом процеса инсталације, можете спречити уобичајене грешке у изградњи које се односе на датотеке које недостају. Овај проактивни приступ не само да штеди време, већ и побољшава ефикасност вашег ЦИ/ЦД цевовода, омогућавајући глаткију и поузданију израду пројеката.