விஷுவல் ஸ்டுடியோவின் மூலக் கட்டுப்பாட்டு வரியில் கையாளுதல்
சமீபத்திய விஷுவல் ஸ்டுடியோ 2022 வெளியீட்டைத் தொடர்ந்து பல வாடிக்கையாளர்கள் எதிர்பாராத பாப்-அப் செய்தியைப் பெற்றுள்ளதாக தெரிவித்துள்ளனர். நீங்கள் ஆரம்பத்தில் ஒரு தீர்வைத் தொடங்கும் போது இந்த மாதிரி காட்டுகிறது, மேலும் இது மூலக் கட்டுப்பாட்டு வழங்குநர்களைக் காணவில்லை என்பது பற்றிய கவலையை எழுப்புகிறது. அறிவிப்பு இருந்தபோதிலும், பயனர்கள் தங்கள் திட்டங்களைத் தொடரலாம்.
மாதிரி செய்தி கூறுகிறது, "இந்த தீர்வுடன் தொடர்புடைய மூலக் கட்டுப்பாட்டு வழங்குநரைக் கண்டுபிடிக்க முடியவில்லை." "இல்லை" என்பதைத் தேர்ந்தெடுப்பது, மூலக் கட்டுப்பாட்டு பிணைப்புகளை நீக்காமல் திட்டத்தைத் தொடர அனுமதிக்கிறது. இருப்பினும், பல டெவலப்பர்கள் இது ஒரு பிரச்சனையா அல்லது மேம்படுத்தலின் மூலம் அறிமுகப்படுத்தப்பட்ட புதிய நடத்தையா என்று யோசித்து வருகின்றனர்.
விஷுவல் ஸ்டுடியோவைத் தொடங்கிய பிறகு முதல் முறையாக நீங்கள் ஒரு தீர்வை ஏற்றும்போது மட்டுமே இந்தச் சிக்கல் ஏற்படுகிறது. அதே அமர்வில் அடுத்தடுத்த தீர்வு ஏற்றுதல் மாதிரியை செயல்படுத்தாது. மேலும், தீர்வு தானாகவே ஏற்றப்படுவதைத் தவிர்ப்பது அறிவிப்பை நீக்குகிறது.
இந்த கட்டுரையில், பிரச்சனையின் தோற்றம் மற்றும் அதை எவ்வாறு தீர்ப்பது என்பதற்கான ஆலோசனைகளை வழங்குவோம். உங்கள் திட்டத்தில் ஏற்படும் பாதிப்பைப் பற்றி நீங்கள் கவலைப்படுகிறீர்களோ அல்லது அது தொந்தரவாக இருந்தாலும், விஷுவல் ஸ்டுடியோ 2022 மூலம் தடையற்ற வளர்ச்சியை உறுதி செய்வதற்கான வழிகளை வழங்குவோம் என்று நம்புகிறோம்.
| கட்டளை | பயன்பாட்டின் உதாரணம் |
|---|---|
| Get-Content | இந்த PowerShell கட்டளையானது.sln போன்ற கோப்பின் உள்ளடக்கங்களை வரிக்கு வரி படிக்கிறது. தீர்வுக் கோப்பைப் பெறவும், மூலக் கட்டுப்பாட்டு இணைப்புகளைச் சரிபார்க்கவும் இது இங்கே பயன்படுத்தப்படுகிறது. |
| IndexOf | இந்த முறை பவர்ஷெல் மற்றும் சி# இல் ஒரு சரத்திற்குள் உள்ள துணை சரத்தின் குறியீட்டை தீர்மானிக்க பயன்படுத்தப்படுகிறது. தீர்வுக் கோப்பில் மூலக் கட்டுப்பாட்டுப் பிணைப்புப் பிரிவின் ஆரம்பம் மற்றும் முடிவைக் கண்டறிவதை இது எளிதாக்குகிறது. |
| Remove | Remove என்பது ஒரு சரத்தின் குறிப்பிட்ட பிரிவுகளை நீக்கும் C# மற்றும் PowerShell கட்டளையாகும். இது தீர்வுக் கோப்பிலிருந்து முழு மூலக் கட்டுப்பாட்டு பிணைப்புத் தொகுதியையும் நீக்குகிறது. |
| StreamWriter | ஒரு கோப்பில் உரை எழுதுவதற்கான C# வகுப்பு. புதிய உள்ளடக்கத்தைச் சேமிக்க (மூலக் கட்டுப்பாட்டு பிணைப்புகள் இல்லாமல்) தீர்வுக் கோப்பைப் புதுப்பித்த பிறகு இது பயன்படுத்தப்படுகிறது. |
| sed | இது யூனிக்ஸ்/லினக்ஸ் கட்டளை, பாஷ் ஸ்கிரிப்ட்டில் பயன்படுத்தப்படும் சில வரிகளை ஒரு கோப்பில் இருந்து நீக்குகிறது, அதாவது.sln கோப்பில் உள்ள மூலக் கட்டுப்பாடு பைண்டிங் பிரிவு. குறிப்பிட்ட குறிச்சொற்களுக்கு இடையில் உள்ள தடுப்பைக் கண்டறிந்து அகற்ற இது வழக்கமான வெளிப்பாட்டைப் பயன்படுத்துகிறது. |
| git add | Git add என்பது Git பதிப்பு கட்டுப்பாட்டு அமைப்பின் ஒரு அம்சமாகும், இது மூலக் கட்டுப்பாட்டு பிணைப்புகளை அகற்றிய பிறகு புதுப்பிக்கப்பட்ட தீர்வு கோப்பை நிலைநிறுத்துகிறது. அடுத்த கமிட்டில் மாற்றம் தோன்றுவதை இது உறுதி செய்கிறது. |
| Assert.IsFalse | நிபந்தனை தவறானதா என்பதைத் தீர்மானிக்க, அலகு சோதனை கட்டமைப்பில் (சி# இல் உள்ள NUnit போன்றவை) இது பயன்படுத்தப்படுகிறது. தீர்வுக் கோப்பிலிருந்து மூலக் கட்டுப்பாட்டு பிணைப்புகள் சரியாக நீக்கப்பட்டதை இது உறுதி செய்கிறது. |
| grep | கோப்புகளில் வடிவங்களைத் தேடும் லினக்ஸ் கட்டளை. பாஷ் ஸ்கிரிப்ட் அவற்றை அகற்ற முயற்சிக்கும் முன் தீர்வுக் கோப்பில் மூலக் கட்டுப்பாட்டு பிணைப்புகள் உள்ளதா எனச் சரிபார்க்கிறது. |
| param | ஸ்கிரிப்ட் அளவுருக்களை வரையறுக்க PowerShell இல் பயன்படுத்தப்படுகிறது. ஸ்கிரிப்டை இயக்கும் போது, தீர்வு கோப்பு பாதையை டைனமிக் முறையில் உள்ளிட பயனரை இது செயல்படுத்துகிறது, இதனால் கட்டளையை பல தீர்வுகளுக்கு மீண்டும் பயன்படுத்த முடியும். |
விஷுவல் ஸ்டுடியோவில் உள்ள பிணைப்புச் சிக்கல்களைக் கட்டுப்படுத்துவதற்கான தீர்வுகளை ஆராய்தல்
மேலே விவரிக்கப்பட்ட ஸ்கிரிப்ட்கள் குறிப்பிட்ட விஷுவல் ஸ்டுடியோ சிக்கலைத் தீர்க்கும் நோக்கம் கொண்டவை, இதில் பயனர்கள் செய்தியைப் பெறுகிறார்கள்: "இந்த தீர்வுடன் தொடர்புடைய மூலக் கட்டுப்பாட்டு வழங்குநரைக் கண்டுபிடிக்க முடியவில்லை." விஷுவல் ஸ்டுடியோ வழக்கற்றுப் போன அல்லது விடுபட்ட மூலக் கட்டுப்பாட்டு பிணைப்புகளைக் கொண்ட ஒரு தீர்வை ஏற்ற முயற்சிக்கும் போது இந்தச் சிக்கல் அடிக்கடி எழுகிறது. இந்த பிணைப்புகளை அகற்றுவதை தானியங்குபடுத்துவதன் மூலம், டெவலப்பர்கள் தங்களுடைய திட்டப்பணிகளில் தடையின்றி தொடர்ந்து பணியாற்றலாம். ஒவ்வொரு தீர்வும் வெவ்வேறு நுட்பங்களைப் பயன்படுத்துகிறது, பவர்ஷெல் முதல் சி# வரை பாஷ் ஸ்கிரிப்ட்கள் வரை, இது பல்துறை மற்றும் பல்வேறு சூழல்களுக்கு ஏற்றதாக அமைகிறது.
பவர்ஷெல் ஸ்கிரிப்ட் விஷுவல் ஸ்டுடியோ தீர்வு (.sln) கோப்பின் உள்ளடக்கங்களை Get-Content கட்டளையுடன் படிக்கிறது. இது மூலக் கட்டுப்பாட்டு பிணைப்புகளுடன் இணைக்கப்பட்ட பகுதியைத் தேடுகிறது, குறிப்பாக "GlobalSection(SourceCodeControl)" என்று தொடங்கும் தொகுதி. இந்தப் பகுதி அடையாளம் காணப்பட்டால், ஸ்கிரிப்ட் அதை முற்றிலுமாக நீக்கி, விஷுவல் ஸ்டுடியோவை அணுக முடியாத மூலக் கட்டுப்பாட்டு வழங்குனருடன் இணைக்க முயற்சிப்பதைத் தடுக்கிறது. விஷுவல் ஸ்டுடியோவில் திறக்காமல் பல தீர்வுக் கோப்புகளை விரைவாகத் தானியங்குபடுத்துவதற்கு இந்த முறை மிகவும் எளிது.
C# ஸ்கிரிப்ட் இதே முறையைப் பயன்படுத்துகிறது, ஆனால் மிகவும் நிரல் மற்றும் கட்டமைக்கப்பட்ட தீர்வை வழங்குகிறது. StreamWriter மற்றும் File.ReadAllLines ஐப் பயன்படுத்தி, ஸ்கிரிப்ட் தீர்வுக் கோப்பை வரிக்கு வரியாக ஏற்றுகிறது, எந்த மூலக் கட்டுப்பாடு தொடர்பான தகவலையும் நீக்குகிறது. தீர்வு கோப்புகளை உருவாக்குவதற்கு முன்பு தானாகவே செயலாக்கும் தொடர்ச்சியான ஒருங்கிணைப்பு அமைப்புடன் பணிபுரியும் போது, உங்களுக்கு மிகவும் கட்டுப்படுத்தப்பட்ட சூழல் தேவைப்படும்போது இந்த முறை பயனுள்ளதாக இருக்கும். இந்த ஸ்கிரிப்ட்டின் மாடுலாரிட்டி, குறைந்தபட்ச சரிசெய்தல்களுடன் பல திட்டங்களில் இதைப் பயன்படுத்த அனுமதிக்கிறது.
பாஷ் ஸ்கிரிப்ட் Git ஐ தங்கள் பதிப்பு கட்டுப்பாட்டு அமைப்பாகப் பயன்படுத்தும் நபர்களுக்காக வடிவமைக்கப்பட்டுள்ளது. தீர்வுக் கோப்பிலிருந்து நேரடியாக மூலக் கட்டுப்பாட்டு பிணைப்புகளைத் தேடவும் அகற்றவும் sed போன்ற கருவிகளைப் பயன்படுத்துகிறது. யுனிக்ஸ்/லினக்ஸ் அமைப்புகள் அல்லது கட்டளை வரி தீர்வுகளை விரும்பும் டெவலப்பர்களுக்கு இந்த உத்தி மிகவும் பொருத்தமானது. பிணைப்புகள் அகற்றப்பட்டவுடன், மாற்றங்கள் நிலைநிறுத்தப்பட்டு அடுத்த உறுதிப்பாட்டிற்குத் தயாராகி, மென்மையான பதிப்புக் கட்டுப்பாட்டு ஒருங்கிணைப்பை வழங்கும் என்பதற்கு உத்தரவாதம் அளிக்க, ஸ்கிரிப்ட் git add உடன் செயல்படுகிறது.
தீர்வு 1: விஷுவல் ஸ்டுடியோவில் மூலக் கட்டுப்பாட்டு பிணைப்புகளைப் புதுப்பிக்கவும்
இந்த ஸ்கிரிப்ட் விஷுவல் ஸ்டுடியோ தீர்வுகளில் சோர்ஸ் கண்ட்ரோல் பைண்டிங்களைப் புதுப்பிக்கவும் சரிசெய்யவும் PowerShell ஐப் பயன்படுத்துகிறது.
param ([string]$solutionFilePath)# Load the .sln file as a text file$solutionFile = Get-Content $solutionFilePath# Search for the source control bindings section$bindingStartIndex = $solutionFile.IndexOf("GlobalSection(SourceCodeControl)")if ($bindingStartIndex -ge 0) {# Remove the entire source control binding section$bindingEndIndex = $solutionFile.IndexOf("EndGlobalSection", $bindingStartIndex)$solutionFile = $solutionFile.Remove($bindingStartIndex, $bindingEndIndex - $bindingStartIndex + 1)# Save the updated .sln fileSet-Content $solutionFilePath -Value $solutionFile}Write-Host "Source control bindings removed successfully!"
தீர்வு 2: மூலக் கட்டுப்பாட்டு பிணைப்புகளை முடக்க விஷுவல் ஸ்டுடியோ திட்டக் கோப்பை மாற்றவும்.
இந்த C# ஸ்கிரிப்ட், மூலக் கட்டுப்பாட்டு பிணைப்புகளை அகற்ற விஷுவல் ஸ்டுடியோ திட்டக் கோப்புகளைப் புதுப்பிக்கும் செயல்முறையை தானியங்குபடுத்தியது.
using System;using System.IO;class Program {static void Main(string[] args) {string slnFilePath = @"C:\Path\To\Your\Solution.sln";string[] lines = File.ReadAllLines(slnFilePath);using (StreamWriter writer = new StreamWriter(slnFilePath)) {bool skipLine = false;foreach (string line in lines) {if (line.Contains("GlobalSection(SourceCodeControl)")) {skipLine = true;} else if (line.Contains("EndGlobalSection")) {skipLine = false;continue;}if (!skipLine) {writer.WriteLine(line);}}}Console.WriteLine("Source control bindings removed!");}}
தீர்வு 3: விஷுவல் ஸ்டுடியோ மூலக் கட்டுப்பாட்டுப் பிழைகளைத் தடுக்க ஜிட் ஹூக்குகளைப் பயன்படுத்தவும்
இந்த முறைக்கு மூலக் கட்டுப்பாட்டைக் கையாளவும் விஷுவல் ஸ்டுடியோ பாப்-அப்பைத் தவிர்க்கவும் ஜிட் ஹூக்குகளை அமைக்க வேண்டும்.
#!/bin/bash# Hook for pre-commit to prevent source control binding issuessolution_file="YourSolution.sln"# Check if the .sln file has any source control binding sectionsif grep -q "GlobalSection(SourceCodeControl)" "$solution_file"; thenecho "Removing source control bindings from $solution_file"sed -i '/GlobalSection(SourceCodeControl)/,/EndGlobalSection/d' "$solution_file"git add "$solution_file"echo "Source control bindings removed and file added to commit."elseecho "No source control bindings found."fi
தீர்வு 2க்கான அலகு சோதனை: மூலக் கட்டுப்பாட்டு பிணைப்புகளை அகற்றுவதைச் சரிபார்க்கவும்
C# இல் எழுதப்பட்ட இந்த அலகு சோதனை, விஷுவல் ஸ்டுடியோ தீர்விலிருந்து மூலக் கட்டுப்பாட்டு பிணைப்புகள் வெற்றிகரமாக நீக்கப்பட்டதா என்பதைச் சரிபார்க்கிறது.
using NUnit.Framework;using System.IO;[TestFixture]public class SourceControlTests {[Test]public void TestRemoveSourceControlBindings() {string slnFilePath = @"C:\Path\To\TestSolution.sln";string[] lines = File.ReadAllLines(slnFilePath);bool hasBindings = false;foreach (string line in lines) {if (line.Contains("GlobalSection(SourceCodeControl)")) {hasBindings = true;break;}}Assert.IsFalse(hasBindings, "Source control bindings were not removed.");}}
விஷுவல் ஸ்டுடியோ 2022 இல் மூலக் கட்டுப்பாட்டு பிணைப்புகளைச் சரிசெய்தல்
விஷுவல் ஸ்டுடியோ 2022 இன் மூலக் கட்டுப்பாட்டு பிணைப்புகளில் உள்ள மற்றொரு சிரமம் என்னவென்றால், Git அல்லது Team Foundation Version Control (TFVC) போன்ற பிற பதிப்புக் கட்டுப்பாட்டு அமைப்புகளுடன் அது எவ்வாறு தொடர்பு கொள்கிறது என்பதுதான். ஒரு திட்டம் காலாவதியான அல்லது அகற்றப்பட்ட மூலக் கட்டுப்பாட்டு பிணைப்புகளுடன் கட்டமைக்கப்படும் போது, விஷுவல் ஸ்டுடியோ வழங்குனருடன் இணைக்க முயற்சிக்கிறது. பொருத்தமான மூலக் கட்டுப்பாட்டு உள்ளமைவைக் கண்டறிய முடியவில்லை என்றால், "இந்தத் தீர்வுடன் தொடர்புடைய மூலக் கட்டுப்பாட்டு வழங்குநரைக் கண்டறிய முடியவில்லை" என்ற செய்தியைக் காட்டுகிறது. பதிப்புக் கட்டுப்பாட்டு அமைப்புகளுக்கு இடையில் மாறுவது அல்லது ஒன்றிலிருந்து மற்றொன்றுக்கு இடமாற்றம் செய்யும் நிறுவனங்களுக்கு இது குறிப்பாக வெறுப்பாக இருக்கும்.
குழுக்கள் TFVC போன்ற பழைய மூலக் கட்டுப்பாட்டு அமைப்பிலிருந்து Git க்கு இடம்பெயரும்போது, இந்தப் பழைய பிணைப்புகள் தீர்வுக் கோப்புகளில் இருக்கக்கூடும். இதைத் தவிர்ப்பதற்கான ஒரு அணுகுமுறை, மூலக் கட்டுப்பாட்டு பிணைப்புகள் புதுப்பிக்கப்பட்டதா அல்லது இடம்பெயர்வதற்கு முன் முழுமையாக அகற்றப்பட்டதா என்பதை உறுதிசெய்வதாகும். இது கைமுறையாக அல்லது மேலே குறிப்பிட்டுள்ள தானியங்கு நிரல்களால் செய்யப்படலாம். இத்தகைய நுட்பங்கள் பணிப்பாய்வுகளை நெறிப்படுத்தவும், இயங்குதளங்களை மாற்றும்போது ஏற்படும் தவிர்க்கக்கூடிய பிழைகளின் எண்ணிக்கையைக் கட்டுப்படுத்தவும் உதவுகின்றன.
Furthermore, ensuring that Visual Studio is properly configured to detect the correct version control provider can save time. This includes checking the Tools > Options >மேலும், விஷுவல் ஸ்டுடியோ சரியாக உள்ளமைக்கப்பட்டிருப்பதை உறுதிசெய்து, சரியான பதிப்புக் கட்டுப்பாட்டு வழங்குநரைக் கண்டறிவது நேரத்தைச் சேமிக்கும். இதில் கருவிகள் > விருப்பங்கள் > மூலக் கட்டுப்பாடு மெனுவைச் சரிபார்த்து சரியான வழங்குநர் தேர்ந்தெடுக்கப்பட்டுள்ளதை உறுதிசெய்யவும். திட்டம் முன்பு TFVC உடன் பிணைக்கப்பட்டிருந்தாலும், பின்னர் Git க்கு மாற்றப்பட்டிருந்தால், இந்த அமைப்பைச் சரிசெய்வது மாதிரியைத் தவிர்ப்பதற்கு முக்கியமானது. Git ஐப் பயன்படுத்துபவர்களுக்கு, தீர்வுக் கோப்புகள், களஞ்சியங்களை கவனமாக சுத்தம் செய்வது மற்றும் Git சரியாக அமைக்கப்பட்டுள்ளதை உறுதி செய்வது ஆகியவை இடம்பெயர்தல் செயல்முறையை உள்ளடக்கியது.
- மூலக் கட்டுப்பாட்டு வழங்குநர் பிழை ஏன் தோன்றுகிறது?
- விஷுவல் ஸ்டுடியோவால் முதலில் தீர்வுடன் இணைக்கப்பட்ட மூலக் கட்டுப்பாட்டு வழங்குநரைக் கண்டறிய முடியாதபோது சிக்கல் ஏற்படுகிறது. ஒரு பதிப்பு கட்டுப்பாட்டு அமைப்பிலிருந்து மற்றொன்றுக்கு மாறும்போது இது பொதுவாக நிகழ்கிறது.
- மூலக் கட்டுப்பாட்டு பிணைப்புகளை நான் எவ்வாறு கைமுறையாக அகற்றுவது?
- மூலக் கட்டுப்பாட்டு பிணைப்புகளை கைமுறையாக அகற்ற, உரை திருத்தியில்.sln கோப்பைத் திறந்து, தொடங்கும் பகுதியை நீக்கவும் மற்றும் முடிவடைகிறது .
- பிணைப்புகளை அகற்றிய பிறகும் மாதிரி தோன்றினால் என்ன செய்வது?
- Check your source control settings in Visual Studio by going to Tools > Options >கருவிகள் > விருப்பங்கள் > மூலக் கட்டுப்பாடு என்பதற்குச் சென்று விஷுவல் ஸ்டுடியோவில் உங்கள் மூலக் கட்டுப்பாட்டு அமைப்புகளைச் சரிபார்த்து, சரியான வழங்குநர் தேர்ந்தெடுக்கப்பட்டுள்ளதை உறுதிசெய்யவும். உங்கள் திட்டம் இப்போது Git ஐப் பயன்படுத்தினால், TFVC இலிருந்து Gitக்கு மாற வேண்டியிருக்கும்.
- இந்த சிக்கலை தீர்க்க ஆட்டோமேஷன் ஸ்கிரிப்டுகள் உதவுமா?
- ஆம், பவர்ஷெல் அல்லது சி# ஸ்கிரிப்ட்களைப் பயன்படுத்தி மூலக் கட்டுப்பாட்டு பிணைப்புகளைத் தானாக அகற்றுவது, அதிக எண்ணிக்கையிலான திட்டங்களை நிர்வகிப்பதற்கு அல்லது மல்டிபிள்.எஸ்.எல்.என் கோப்புகளுடன் வேலை செய்வதற்கு ஒரு நல்ல வழி.
- நான் முதல் முறையாக தீர்வைத் திறக்கும்போது மட்டும் ஏன் மாதிரி தோன்றும்?
- இது விஷுவல் ஸ்டுடியோ சிறப்பியல்பு ஆகும், இது தீர்வு முதலில் ஏற்றப்படும் போது மட்டுமே மூலக் கட்டுப்பாட்டு பிணைப்புகளைத் தேடும். அதே அமர்வில் தொடர்ந்து ஏற்றுவது மாதிரியை செயல்படுத்தாது.
முடிவில், விஷுவல் ஸ்டுடியோ 2022 இல் இந்த சிக்கல் கடுமையான தோல்வியை விட சிரமத்திற்குரியது. மூலக் கட்டுப்பாட்டு வழங்குநரின் கட்டளையைத் தவிர்ப்பதற்கு "இல்லை" என்பதைத் தேர்ந்தெடுப்பது பயனர்கள் வழக்கம் போல் தொடர்ந்து வேலை செய்ய அனுமதிக்கிறது, ஆனால் தீர்வு கோப்புகள் சரியாக உள்ளமைக்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்துவது மிகவும் முக்கியமானது.
இந்தச் சிக்கலைத் தொடர்ந்து சந்திப்பவர்களுக்கு, விஷுவல் ஸ்டுடியோவில் உள்ள பழைய பிணைப்புகளை அகற்ற அல்லது மூலக் கட்டுப்பாட்டு அமைப்புகளை மாற்ற ஸ்கிரிப்ட்களைப் பயன்படுத்துவது பயனுள்ளதாக இருக்கும். இந்த மூலோபாயம் வளர்ச்சி அமர்வுகள் சீராக மற்றும் மேலும் இடையூறு இல்லாமல் இயங்குவதை உறுதிசெய்யும்.