GitHub क्रियांमध्ये MSVC141 समस्यांचे निराकरण करणे
आम्ही एका व्हिज्युअल स्टुडिओ 2019 प्रकल्पावर काम करत आहोत ज्याने अलीकडेच गहाळ फायली, विशेषतः 'atlbase.h' संबंधित अपवाद सोडण्यास सुरुवात केली आहे. ही समस्या MSVC141 टूलसेटच्या अनुपस्थितीमुळे असल्याचे दिसते, जे काही महिन्यांपूर्वी आवश्यक नव्हते.
या लेखात, MSVC141 टूलसेट समाविष्ट करण्यासाठी GitHub क्रियांमध्ये तुमच्या .yml स्क्रिप्ट्स कशा अपडेट करायच्या याबद्दल आम्ही तुम्हाला मार्गदर्शन करू. हे गुळगुळीत प्रकल्प तयार होण्याची खात्री देते आणि 'फाइल समाविष्ट करू शकत नाही' त्रुटी टाळते, ज्यामुळे तुम्हाला तुमच्या विकास कार्यप्रवाहात उत्पादकता राखण्यात मदत होते.
आज्ञा | वर्णन |
---|---|
uses: microsoft/setup-msbuild@v1.1 | GitHub क्रियांसाठी MSBuild सेट करते, जे .NET प्रकल्प तयार करण्यास परवानगी देते. |
vs-version: 2019 | MSVC141 टूलसेटसह सुसंगतता सुनिश्चित करून, वापरण्यासाठी व्हिज्युअल स्टुडिओची आवृत्ती निर्दिष्ट करते. |
msbuild-version: 16.x | संकलनासाठी आवश्यक MSVC141 टूलसेटसह संरेखित करून, MSBuild आवृत्ती परिभाषित करते. |
extenda/actions/setup-nuget-sources@v0 | GitHub क्रियांमध्ये NuGet स्रोत कॉन्फिगर करते, प्रकल्प अवलंबित्व पुनर्संचयित करण्यासाठी आवश्यक. |
nuget restore POS.sln | निर्दिष्ट सोल्यूशनसाठी NuGet पॅकेजेस पुनर्संचयित करते, बिल्ड करण्यापूर्वी सर्व अवलंबित्वांचे निराकरण करते. |
Copy-Item | डेटाबेस टेम्पलेट्स हाताळण्यासाठी येथे वापरल्या जाणाऱ्या PowerShell मध्ये फाइल्स एका स्थानावरून दुसऱ्या स्थानावर कॉपी करते. |
Start-Process | PowerShell मध्ये एक नवीन प्रक्रिया सुरू करते, जी इंस्टॉलर किंवा इतर एक्झिक्युटेबल चालवण्यासाठी उपयुक्त आहे. |
vswhere.exe | व्हिज्युअल स्टुडिओ इंस्टॉलेशन्स शोधण्यासाठी उपयुक्तता, MSVC141 ची उपस्थिती तपासण्यासाठी वापरली जाते. |
GitHub क्रियांमध्ये MSVC141 टूलसेट एकत्रित करणे
वर प्रदान केलेल्या स्क्रिप्ट MSVC141 टूलसेट तुमच्या GitHub क्रियांच्या वर्कफ्लोमध्ये समाविष्ट असल्याची खात्री करतात. पहिली स्क्रिप्ट YAML कॉन्फिगरेशन फाइल अद्ययावत करते जेणेकरुन आवश्यक साधने आणि वातावरणे सेट करण्यासाठी आवश्यक पायऱ्या समाविष्ट करा. यामध्ये MSBuild वापरून सेट करणे समाविष्ट आहे , सह व्हिज्युअल स्टुडिओ आवृत्ती निर्दिष्ट करत आहे , आणि याची खात्री करणे वापरलेले आहे. हे चरण MSVC141 वापरण्यासाठी बिल्ड वातावरण योग्यरित्या कॉन्फिगर केले असल्याचे सुनिश्चित करतात.
याव्यतिरिक्त, PowerShell स्क्रिप्ट वापरून MSVC141 टूलसेटची उपस्थिती तपासते . जर ते सापडले नाही, तर स्क्रिप्ट चालवून इंस्टॉलेशन प्रक्रिया सुरू करते गहाळ घटक स्थापित करण्यासाठी आवश्यक युक्तिवादांसह. हा स्वयंचलित दृष्टीकोन सुनिश्चित करतो की आवश्यक टूलसेट उपलब्ध आहे, प्रतिबंधित करते गहाळ होण्याशी संबंधित 'atlbase.h' सारख्या फायलींचा समावेश आहे. या चरणांचे अनुसरण करून, तुम्ही GitHub क्रियांमध्ये तुमच्या व्हिज्युअल स्टुडिओ 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 तपासण्यासाठी आणि स्थापित करण्यासाठी पॉवरशेल स्क्रिप्ट
१
GitHub क्रियांमध्ये MSVC टूलसेटसह सुसंगतता सुनिश्चित करणे
GitHub Actions सारख्या सतत एकात्मता (CI) वातावरणात विविध टूलसेटसह सुसंगतता राखणे हे सातत्यपूर्ण बिल्ड सुनिश्चित करण्यासाठी आणि त्रुटी कमी करण्यासाठी महत्त्वपूर्ण आहे. एक महत्त्वाचा पैलू म्हणजे आवश्यक साधने आणि अवलंबनांसह तुमच्या कॉन्फिगरेशन फाइल्स अद्ययावत ठेवणे. MSVC141 च्या बाबतीत, हे समजणे महत्त्वाचे आहे की हे टूलसेट विशिष्ट प्रकल्पांसाठी आवश्यक आहे, विशेषत: जुन्या C++ लायब्ररी आणि घटकांवर अवलंबून असलेल्यांसाठी.
तुमच्या GitHub क्रियांच्या सेटअपमध्ये MSVC141 टूलसेटचा समावेश करण्यामध्ये केवळ योग्य व्हिज्युअल स्टुडिओ आवृत्ती निर्दिष्ट करणेच नाही तर सर्व अवलंबित्वांचे निराकरण करणे देखील समाविष्ट आहे. यामध्ये NuGet स्रोत योग्यरित्या कॉन्फिगर करणे आणि उपयुक्तता वापरणे समाविष्ट आहे स्थापना सत्यापित करण्यासाठी. तुमच्या आत या पायऱ्या स्वयंचलित करणे आणि पॉवरशेल स्क्रिप्ट्स बिल्ड अयशस्वी होण्यास प्रतिबंध करण्यास मदत करतात आणि तुमची CI/CD पाइपलाइन सुरळीतपणे चालू ठेवतात, शेवटी विकासाचा वेळ आणि संसाधने वाचवतात.
- मी GitHub क्रियांमध्ये व्हिज्युअल स्टुडिओ आवृत्ती कशी निर्दिष्ट करू?
- वापरा आपल्या मध्ये इच्छित व्हिज्युअल स्टुडिओ आवृत्ती सेट करण्यासाठी कॉन्फिगरेशन.
- काय आहे आणि ते का वापरले जाते?
- आवश्यक टूलसेट उपलब्ध असल्याची खात्री करून व्हिज्युअल स्टुडिओ इंस्टॉलेशन्स शोधण्यासाठी उपयुक्तता आहे.
- मी गहाळ घटकांची स्थापना स्वयंचलित कशी करू शकतो?
- वापरा अप्राप्य इंस्टॉलेशनसाठी आवश्यक युक्तिवादांसह इंस्टॉलर चालविण्यासाठी PowerShell मध्ये.
- NuGet स्रोत कॉन्फिगर करणे महत्वाचे का आहे?
- NuGet स्रोत कॉन्फिगर केल्याने सर्व प्रकल्प अवलंबित्वांचे निराकरण झाले आहे, जे यशस्वी बिल्डसाठी महत्त्वपूर्ण आहे.
- मी MSVC141 टूलसेटची उपस्थिती कशी तपासू?
- वापरा MSVC141 टूलसेटचा इंस्टॉलेशन मार्ग सत्यापित करण्यासाठी स्क्रिप्टमध्ये.
- काय निर्दिष्ट करा?
- हे MSVC141 टूलसेटसह सुसंगतता सुनिश्चित करून, वापरण्यासाठी MSBuild आवृत्ती निर्दिष्ट करते.
- मी GitHub क्रियांमध्ये NuGet पॅकेजेस कसे पुनर्संचयित करू?
- कमांड वापरा त्यानंतर तुमची सोल्यूशन फाइल, जसे .
- चा उद्देश काय आहे कारवाई?
- हे MSBuild वापरण्यासाठी वातावरण कॉन्फिगर करते, GitHub क्रियांमध्ये .NET प्रकल्प तयार करण्यासाठी आवश्यक आहे.
- मी बिल्ड आर्टिफॅक्ट्सचे स्वयंचलितपणे नाव कसे बदलू शकतो?
- पॉवरशेल कमांड वापरा जसे बिल्ड आवृत्तीवर आधारित फाइल्सचे नाव बदलण्यासाठी.
- का समाविष्ट करा Java सेटअप मध्ये?
- हे वापरण्यासाठी JDK वितरण निर्दिष्ट करते, तुमच्या प्रोजेक्टसाठी योग्य Java आवृत्ती स्थापित केली आहे याची खात्री करते.
तुमच्या व्हिज्युअल स्टुडिओ 2019 प्रकल्पांची स्थिरता आणि कार्यक्षमता राखण्यासाठी तुमच्या GitHub क्रियांच्या वर्कफ्लोमध्ये MSVC141 टूलसेट समाविष्ट आहे याची खात्री करणे आवश्यक आहे. तुमची .yml स्क्रिप्ट्स अपडेट करून आणि इंस्टॉलेशन प्रक्रिया स्वयंचलित करून, तुम्ही गहाळ फाइल्सशी संबंधित सामान्य बिल्ड त्रुटी टाळू शकता. हा सक्रिय दृष्टीकोन केवळ वेळेची बचत करत नाही तर तुमच्या CI/CD पाइपलाइनची कार्यक्षमता देखील वाढवतो, ज्यामुळे नितळ आणि अधिक विश्वासार्ह प्रकल्प तयार करता येतो.