Решавање МСВЦ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 и ПоверСхелл скрипте помажу у спречавању грешака у изградњи и одржавају неометано функционисање вашег ЦИ/ЦД цевовода, на крају штедећи време и ресурсе за развој.
Уобичајена питања и решења за интеграцију МСВЦ скупова алата
- Како да наведем верзију Висуал Студио-а у ГитХуб радњама?
- Користите vs-version: 2019 у вашем .yml конфигурацију да бисте подесили жељену верзију Висуал Студио-а.
- Шта је vswhere.exe и зашто се користи?
- vswhere.exe је услужни програм за лоцирање Висуал Студио инсталација, осигуравајући да су потребни скупови алата доступни.
- Како могу да аутоматизујем инсталацију компоненти које недостају?
- Користите Start-Process у ПоверСхелл-у да бисте покренули инсталатер са потребним аргументима за инсталације без надзора.
- Зашто је важно конфигурисати НуГет изворе?
- Конфигурисање НуГет извора осигурава да су све зависности пројекта решене, што је кључно за успешне градње.
- Како да проверим присуство МСВЦ141 скупа алата?
- Користите vswhere.exe у скрипти за верификацију путање инсталације скупа алата МСВЦ141.
- Шта ради msbuild-version: 16.x спецификовати?
- Он одређује верзију МСБуилд-а која ће се користити, обезбеђујући компатибилност са МСВЦ141 скупом алата.
- Како да вратим НуГет пакете у ГитХуб Ацтионс?
- Користите команду nuget restore праћено вашом датотеком решења, нпр nuget restore POS.sln.
- Која је сврха Setup MSBuild поступак?
- Конфигурише окружење да користи МСБуилд, неопходан за прављење .НЕТ пројеката у ГитХуб Ацтионс.
- Како могу аутоматски преименовати артефакте изградње?
- Користите ПоверСхелл команде као што су Rename-Item да бисте преименовали датотеке на основу верзије израде.
- Зашто укључити distribution: 'temurin' у Јава подешавању?
- Ово специфицира ЈДК дистрибуцију коју треба користити, осигуравајући да је исправна Јава верзија инсталирана за ваш пројекат.
Завршна размишљања о интеграцији МСВЦ141
Обезбеђивање да је МСВЦ141 скуп алата укључен у ваш радни ток ГитХуб Ацтионс је од суштинског значаја за одржавање стабилности и функционалности ваших Висуал Студио 2019 пројеката. Ажурирањем ваших .имл скрипти и аутоматизацијом процеса инсталације, можете спречити уобичајене грешке у изградњи које се односе на датотеке које недостају. Овај проактивни приступ не само да штеди време, већ и побољшава ефикасност вашег ЦИ/ЦД цевовода, омогућавајући глаткију и поузданију израду пројеката.