GitHub செயல்களில் MSVC141 சிக்கல்களைத் தீர்க்கிறது
விஷுவல் ஸ்டுடியோ 2019 திட்டத்தில் நாங்கள் பணியாற்றி வருகிறோம், இது சமீபத்தில் காணாமல் போன கோப்புகள் தொடர்பான விதிவிலக்குகளை வழங்கத் தொடங்கியது, குறிப்பாக 'atlbase.h'. சில மாதங்களுக்கு முன்பு வரை தேவைப்படாத MSVC141 கருவித்தொகுப்பு இல்லாததால் இந்தச் சிக்கல் தோன்றியதாகத் தெரிகிறது.
இந்தக் கட்டுரையில், MSVC141 கருவித்தொகுப்பைச் சேர்க்க, GitHub செயல்களில் உங்கள் .yml ஸ்கிரிப்ட்களை எவ்வாறு புதுப்பிப்பது என்பது குறித்து நாங்கள் உங்களுக்கு வழிகாட்டுவோம். இது சீரான திட்ட உருவாக்கங்களை உறுதிசெய்து, 'கோப்பை உள்ளடக்கியதைத் திறக்க முடியாது' பிழையைத் தவிர்க்கிறது, இது உங்கள் மேம்பாட்டுப் பணிப்பாய்வுகளில் உற்பத்தித் திறனைப் பராமரிக்க உதவுகிறது.
| கட்டளை | விளக்கம் |
|---|---|
| uses: microsoft/setup-msbuild@v1.1 | கிட்ஹப் செயல்களுக்காக MSBuild ஐ அமைக்கிறது, இது .NET திட்டங்களை உருவாக்க அனுமதிக்கிறது. |
| vs-version: 2019 | MSVC141 கருவித்தொகுப்புடன் இணக்கத்தன்மையை உறுதிசெய்து, பயன்படுத்த வேண்டிய விஷுவல் ஸ்டுடியோவின் பதிப்பைக் குறிப்பிடுகிறது. |
| msbuild-version: 16.x | MSBuild பதிப்பை வரையறுக்கிறது, தொகுக்க தேவையான MSVC141 கருவித்தொகுப்புடன் சீரமைக்கிறது. |
| extenda/actions/setup-nuget-sources@v0 | கிட்ஹப் செயல்களில் NuGet மூலங்களை உள்ளமைக்கிறது, இது திட்ட சார்புகளை மீட்டமைக்க அவசியம். |
| nuget restore POS.sln | குறிப்பிட்ட தீர்வுக்கான NuGet தொகுப்புகளை மீட்டமைக்கிறது, உருவாக்குவதற்கு முன் அனைத்து சார்புகளையும் தீர்க்கிறது. |
| Copy-Item | தரவுத்தள டெம்ப்ளேட்களைக் கையாள இங்குப் பயன்படுத்தப்படும் பவர்ஷெல்லில் கோப்புகளை ஒரு இடத்திலிருந்து மற்றொரு இடத்திற்கு நகலெடுக்கிறது. |
| Start-Process | பவர்ஷெல்லில் ஒரு புதிய செயல்முறையைத் தொடங்குகிறது, இது நிறுவிகள் அல்லது பிற இயங்கக்கூடியவற்றை இயக்க பயன்படுகிறது. |
| vswhere.exe | விஷுவல் ஸ்டுடியோ நிறுவல்களைக் கண்டறிவதற்கான ஒரு பயன்பாடு, MSVC141 இன் இருப்பை சரிபார்க்கப் பயன்படுகிறது. |
கிட்ஹப் செயல்களில் MSVC141 கருவித்தொகுப்பை ஒருங்கிணைக்கிறது
மேலே கொடுக்கப்பட்டுள்ள ஸ்கிரிப்டுகள், MSVC141 கருவித்தொகுப்பு உங்கள் GitHub செயல்களின் பணிப்பாய்வுகளில் சேர்க்கப்பட்டுள்ளதை உறுதிசெய்கிறது. முதல் ஸ்கிரிப்ட் தேவையான கருவிகள் மற்றும் சூழல்களை அமைப்பதற்கு தேவையான படிகளைச் சேர்க்க YAML உள்ளமைவு கோப்பை புதுப்பிக்கிறது. MSBuild ஐப் பயன்படுத்தி அமைப்பதும் இதில் அடங்கும் microsoft/setup-msbuild@v1.1, உடன் விஷுவல் ஸ்டுடியோ பதிப்பைக் குறிப்பிடுகிறது vs-version: 2019, மற்றும் உறுதி msbuild-version: 16.x உபயோகப்பட்டது. இந்த படிகள் MSVC141 ஐப் பயன்படுத்துவதற்கு உருவாக்க சூழல் சரியாக உள்ளமைக்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்துகிறது.
கூடுதலாக, பவர்ஷெல் ஸ்கிரிப்ட் MSVC141 டூல்செட்டைப் பயன்படுத்துகிறதா என்பதைச் சரிபார்க்கிறது vswhere.exe. அது கிடைக்கவில்லை என்றால், ஸ்கிரிப்ட் இயங்குவதன் மூலம் நிறுவல் செயல்முறையைத் தொடங்குகிறது Start-Process விடுபட்ட கூறுகளை நிறுவ தேவையான வாதங்களுடன். இந்த தானியங்கு அணுகுமுறை தேவையான கருவிகள் கிடைப்பதை உறுதிசெய்து, தடுக்கிறது fatal error C1083 காணாமல் போனது தொடர்பான 'atlbase.h' போன்ற கோப்புகள் அடங்கும். இந்தப் படிகளைப் பின்பற்றுவதன் மூலம், GitHub செயல்களில் உங்கள் விஷுவல் ஸ்டுடியோ 2019 திட்டங்களுக்கான நிலையான மற்றும் நிலையான உருவாக்க செயல்முறையை நீங்கள் பராமரிக்கலாம்.
MSVC141 கருவித்தொகுப்பைச் சேர்க்க .yml ஸ்கிரிப்டைப் புதுப்பிக்கவும்
GitHub செயல்கள் YAML கட்டமைப்பு
name: Pull request - Windowson:pull_request:paths-ignore:- 'Engine/Engine.Android/'- 'Mobile/'jobs:build:runs-on: windows-2022defaults:run:shell: pwshenv:DEFAULT_VERSION: v17.4.500SolutionDir: ${{ github.workspace }}steps:- name: Checkoutuses: actions/checkout@v3with:token: ${{ secrets.RS_GITHUB_TOKEN }}submodules: true- uses: actions/setup-java@v4with:distribution: 'temurin'java-version: '11'- name: Setup MSBuilduses: microsoft/setup-msbuild@v1.1- name: Install Visual Studiouses: microsoft/setup-msbuild@v1.1with:vs-version: 2019msbuild-version: 16.x- name: Setup NuGet sourcesuses: extenda/actions/setup-nuget-sources@v0with:config-file: NuGet.Configsources: |[{"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 packagesrun: nuget restore POS.sln- name: Determine versionid: verrun: .\Build\determine-version.ps1- name: Update assembliesrun: .\Build\update-assemblies.ps1 ${{ steps.ver.outputs.version }} ${{ steps.ver.outputs.full-version }}- name: Generate database templaterun: |.\Common\Database\AppVeyor\gen-databases.ps1 Common\Database abcDbCopy-Item abcDb\Template.db -Destination Common\Database- name: Build solutionrun: msbuild POS.sln @Build\WindowsBuildParams.rsp- name: Build installation packagesrun: |.\Build\exit-on-failure.ps1msbuild Installation\Installation.sln @Build\WindowsBuildParams.rsp -p:BuildNumber=${{ steps.ver.outputs.full-version }}ExitOnFailureGet-ChildItem Installation\Bin\ReleaseRename-Item -Path Installation\Bin\Release\abc.msi -NewName abc-v${{ steps.ver.outputs.full-version }}.msiRename-Item -Path Installation\Bin\Release\abc.exe -NewName abc-v${{ steps.ver.outputs.full-version }}.exeRename-Item -Path Installation\Bin\Release\VRRSSurfaceComponentsEditor.msi -NewName SurfaceComponentsEditor-v${{ steps.ver.outputs.full-version }}.msi- name: Generate customization packagerun: .\Common\Database\AppVeyor\gen-customization-zip.ps1 Common\Database ${{ steps.ver.outputs.full-version }}- name: Save abc Installeruses: actions/upload-artifact@v3with:name: abcInstaller-v${{ steps.ver.outputs.full-version }}path: Installation\Bin\Release\abc-*.msi- name: Save abc Setupuses: actions/upload-artifact@v3with:name: abcSetup-v${{ steps.ver.outputs.full-version }}path: Installation\Bin\Release\abc-*.exe- name: Save Databaseuses: actions/upload-artifact@v3with: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 installationPathif (-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" -Waitif ($?) {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 கருவித்தொகுப்புகளுடன் இணக்கத்தன்மையை உறுதி செய்தல்
GitHub செயல்கள் போன்ற தொடர்ச்சியான ஒருங்கிணைப்பு (CI) சூழலில் பல்வேறு கருவித்தொகுப்புகளுடன் இணக்கத்தன்மையை பராமரிப்பது, நிலையான உருவாக்கங்களை உறுதி செய்வதற்கும் பிழைகளைக் குறைப்பதற்கும் முக்கியமானது. தேவையான கருவிகள் மற்றும் சார்புகளுடன் உங்கள் உள்ளமைவு கோப்புகளை புதுப்பித்த நிலையில் வைத்திருப்பது ஒரு முக்கிய அம்சமாகும். MSVC141 ஐப் பொறுத்தவரை, சில திட்டங்களுக்கு, குறிப்பாக பழைய C++ நூலகங்கள் மற்றும் கூறுகளை நம்பியிருக்கும் இந்த கருவித்தொகுப்பு அவசியம் என்பதைப் புரிந்துகொள்வது அவசியம்.
உங்கள் GitHub செயல்கள் அமைப்பில் MSVC141 கருவித்தொகுப்பைச் சேர்ப்பது, சரியான விஷுவல் ஸ்டுடியோ பதிப்பைக் குறிப்பிடுவது மட்டுமல்லாமல், அனைத்து சார்புகளும் தீர்க்கப்படுவதை உறுதி செய்வதையும் உள்ளடக்குகிறது. NuGet மூலங்களை சரியாக உள்ளமைத்தல் மற்றும் போன்ற பயன்பாடுகளைப் பயன்படுத்துவது இதில் அடங்கும் vswhere.exe நிறுவல்களை சரிபார்க்க. உங்களுக்குள் இந்த படிகளை தானியக்கமாக்குகிறது .yml மற்றும் பவர்ஷெல் ஸ்கிரிப்ட்கள் உருவாக்கத் தோல்விகளைத் தடுக்க உதவுகிறது மற்றும் உங்கள் CI/CD பைப்லைனை சீராக இயங்க வைக்கிறது, இறுதியில் வளர்ச்சி நேரத்தையும் வளங்களையும் சேமிக்கிறது.
MSVC கருவித்தொகுப்புகளை ஒருங்கிணைப்பதற்கான பொதுவான கேள்விகள் மற்றும் தீர்வுகள்
- GitHub செயல்களில் விஷுவல் ஸ்டுடியோ பதிப்பை எவ்வாறு குறிப்பிடுவது?
- பயன்படுத்தவும் vs-version: 2019 உங்கள் .yml விரும்பிய விஷுவல் ஸ்டுடியோ பதிப்பை அமைப்பதற்கான கட்டமைப்பு.
- என்ன vswhere.exe மற்றும் அது ஏன் பயன்படுத்தப்படுகிறது?
- vswhere.exe விஷுவல் ஸ்டுடியோ நிறுவல்களைக் கண்டறிவதற்கான ஒரு பயன்பாடாகும், தேவையான கருவிகள் கிடைப்பதை உறுதி செய்கிறது.
- விடுபட்ட கூறுகளின் நிறுவலை எவ்வாறு தானியங்குபடுத்துவது?
- பயன்படுத்தவும் Start-Process கவனிக்கப்படாத நிறுவல்களுக்கு தேவையான வாதங்களுடன் நிறுவியை இயக்க PowerShell இல்.
- NuGet மூலங்களை கட்டமைப்பது ஏன் முக்கியம்?
- NuGet மூலங்களை உள்ளமைப்பது அனைத்து திட்ட சார்புகளும் தீர்க்கப்படுவதை உறுதி செய்கிறது, இது வெற்றிகரமான உருவாக்கத்திற்கு முக்கியமானது.
- MSVC141 டூல்செட் உள்ளதா என எப்படிச் சரிபார்க்கலாம்?
- பயன்படுத்தவும் vswhere.exe MSVC141 கருவித்தொகுப்பின் நிறுவல் பாதையை சரிபார்க்க ஒரு ஸ்கிரிப்ட்டில்.
- என்ன செய்கிறது msbuild-version: 16.x குறிப்பிடவும்?
- இது பயன்படுத்தப்பட வேண்டிய MSBuild பதிப்பைக் குறிப்பிடுகிறது, MSVC141 கருவித்தொகுப்புடன் இணக்கத்தன்மையை உறுதி செய்கிறது.
- கிட்ஹப் செயல்களில் NuGet தொகுப்புகளை எவ்வாறு மீட்டெடுப்பது?
- கட்டளையைப் பயன்படுத்தவும் nuget restore உங்கள் தீர்வுக் கோப்பைத் தொடர்ந்து, போன்ற nuget restore POS.sln.
- இதன் நோக்கம் என்ன Setup MSBuild நடவடிக்கை?
- GitHub செயல்களில் .NET திட்டங்களை உருவாக்குவதற்கு தேவையான MSBuild ஐப் பயன்படுத்துவதற்கான சூழலை இது கட்டமைக்கிறது.
- நான் எவ்வாறு உருவாக்க கலைப்பொருட்களை தானாக மறுபெயரிடுவது?
- போன்ற PowerShell கட்டளைகளைப் பயன்படுத்தவும் Rename-Item உருவாக்க பதிப்பின் அடிப்படையில் கோப்புகளை மறுபெயரிட.
- ஏன் அடங்கும் distribution: 'temurin' ஜாவா அமைப்பில்?
- இது பயன்படுத்துவதற்கான JDK விநியோகத்தைக் குறிப்பிடுகிறது, உங்கள் திட்டத்திற்காக சரியான ஜாவா பதிப்பு நிறுவப்பட்டுள்ளதை உறுதிசெய்கிறது.
MSVC141 ஐ ஒருங்கிணைப்பதற்கான இறுதி எண்ணங்கள்
உங்கள் விஷுவல் ஸ்டுடியோ 2019 திட்டப்பணிகளின் நிலைத்தன்மை மற்றும் செயல்பாட்டைப் பராமரிக்க, MSVC141 கருவித்தொகுப்பு உங்கள் GitHub செயல்களின் பணிப்பாய்வுகளில் சேர்க்கப்பட்டுள்ளதை உறுதிசெய்வது அவசியம். உங்கள் .yml ஸ்கிரிப்ட்களைப் புதுப்பித்து, நிறுவல் செயல்முறையைத் தானியங்குபடுத்துவதன் மூலம், காணாமல் போன கோப்புகள் தொடர்பான பொதுவான உருவாக்கப் பிழைகளைத் தடுக்கலாம். இந்த செயலூக்கமான அணுகுமுறை நேரத்தை மிச்சப்படுத்துவது மட்டுமல்லாமல், உங்கள் CI/CD பைப்லைனின் செயல்திறனை மேம்படுத்துகிறது, இது மென்மையான மற்றும் நம்பகமான திட்ட உருவாக்கங்களை அனுமதிக்கிறது.