दिलचस्प पोस्ट
पायथन 'के लिए' लूप में सूचकांक तक पहुंचना कोणीय जेएस: आंशिक रूप से जेएस फाइल लोड करने के लिए JavaFX तालिका दृश्य में बटन कैसे जोड़ें जावा लेआउट मैनेजर्स का उपयोग करने का उद्देश्य क्या है? Codeigniter एकाधिक फ़ाइल अपलोड messes फ़ाइल एक्सटेंशन स्केलैन के साथ पीसीए में समझाया गया_विरिएसी_ट्रियो_आई के नामों को पुनर्प्राप्त करना कैसे एक जावास्क्रिप्ट चर सेट करने के लिए? Google स्प्रेडशीट की वर्कशीट स्ट्रिंग आईडी को पूर्णांक इंडेक्स (जीआईडी) में कैसे परिवर्तित करें? खिड़की.क्योंकि क्रोम में काम नहीं कर रहा है नोड एनपीएम विंडो फाइल पथ पैकेज़ को स्थापित करने के लिए बहुत लंबा हैं आईफोन एसडीके इंटरनेट कनेक्शन का पता लगाने 0.0 और 1.0 के बीच कितने डबल नंबर हैं? जावा की पेंट विधि के साथ समस्याएं, हास्यास्पद रीफ्रेश वेग कैसे मेटाडब में सरणी तत्व को निकालना है? अलग ऊंचाई के कॉलम के साथ बूटस्ट्रैप पंक्ति

MSBuild के लिए पथ

मैं MSAT को पथ से एक मशीन से कैसे प्राप्त कर सकता हूं जहां मेरा .exe चल रहा है?

मैं पर्यावरण से .NET संस्करण प्राप्त कर सकता हूं, लेकिन क्या किसी .NET संस्करण के लिए सही फ़ोल्डर प्राप्त करने का कोई तरीका है?

Solutions Collecting From Web of "MSBuild के लिए पथ"

रजिस्ट्री के आसपास पोकिंग, ऐसा दिखता है

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0 

हो सकता है कि आप बाद में हो; regedit.exe को आग लगाओ और देखो।

आप कमांड लाइन पर MSBuild.exe के पथ को प्रिंट भी कर सकते हैं:

 reg.exe query "HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0" /v MSBuildToolsPath 

Windows 7 में सीएमडी खोल स्क्रिप्टिंग के लिए, मैं .NET Framework संस्करण में MSBuild.exe को खोजने के लिए अपनी बैच फ़ाइल में निम्नलिखित टुकड़ा का उपयोग करता हूं। 4. मैं मानता हूं कि संस्करण 4 मौजूद है, लेकिन उप-संस्करण मान नहींें। यह पूरी तरह सामान्य उद्देश्य नहीं है, लेकिन त्वरित स्क्रिप्ट के लिए यह सहायक हो सकता है:

 set msbuild.exe= for /D %%D in (%SYSTEMROOT%\Microsoft.NET\Framework\v4*) do set msbuild.exe=%%D\MSBuild.exe 

मेरे प्रयोगों के लिए मैं बैच फ़ाइल को एक त्रुटि से बाहर निकाल रहा हूं अगर वह काम नहीं करता है:

 if not defined msbuild.exe echo error: can't find MSBuild.exe & goto :eof if not exist "%msbuild.exe%" echo error: %msbuild.exe%: not found & goto :eof 

यदि आप .Net 4 के लिए MSBuild का उपयोग करना चाहते हैं, तो आप निष्पादन योग्य पथ के लिए निम्न PowerShell कमांड का उपयोग कर सकते हैं। यदि आप संस्करण 2.0 या 3.5 चाहते हैं, तो बस $ dotNetVersion चर परिवर्तित करें।

निष्पादन योग्य चलाने के लिए आपको $ msbuild चर के साथ & amp; वह चर को निष्पादित करेगा

 # valid versions are [2.0, 3.5, 4.0] $dotNetVersion = "4.0" $regKey = "HKLM:\software\Microsoft\MSBuild\ToolsVersions\$dotNetVersion" $regProperty = "MSBuildToolsPath" $msbuildExe = join-path -path (Get-ItemProperty $regKey).$regProperty -childpath "msbuild.exe" &$msbuildExe 

@ एलेनशैनबॉर्न के पास एक महान शक्तिशूल संस्करण है, लेकिन कुछ लोगों को केवल बैच स्क्रिप्ट का निर्माण करने के लिए उपयोग करने की आवश्यकता है।

यह वही है जो @ बोनो 8106 का उत्तरदायी संस्करण है।

msbuildpath.bat

 @echo off reg.exe query "HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath > nul 2>&1 if ERRORLEVEL 1 goto MissingMSBuildRegistry for /f "skip=2 tokens=2,*" %%A in ('reg.exe query "HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath') do SET "MSBUILDDIR=%%B" IF NOT EXIST "%MSBUILDDIR%" goto MissingMSBuildToolsPath IF NOT EXIST "%MSBUILDDIR%msbuild.exe" goto MissingMSBuildExe exit /b 0 goto:eof ::ERRORS ::--------------------- :MissingMSBuildRegistry echo Cannot obtain path to MSBuild tools from registry goto:eof :MissingMSBuildToolsPath echo The MSBuild tools path from the registry '%MSBUILDDIR%' does not exist goto:eof :MissingMSBuildExe echo The MSBuild executable could not be found at '%MSBUILDDIR%' goto:eof 

build.bat

 @echo off call msbuildpath.bat "%MSBUILDDIR%msbuild.exe" foo.csproj /p:Configuration=Release 

रजिस्ट्री से MSBuildToolsPath प्राप्त करने के लिए आप इस बहुत छोटी PowerShell कमांड का उपयोग कर सकते हैं।

शक्ति कोशिका:

 Resolve-Path HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersions\* | Get-ItemProperty -Name MSBuildToolsPath 

आउटपुट:

 MSBuildToolsPath : C:\Program Files (x86)\MSBuild\12.0\bin\amd64\ PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0 PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions PSChildName : 12.0 PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry MSBuildToolsPath : C:\Program Files (x86)\MSBuild\14.0\bin\amd64\ PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0 PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions PSChildName : 14.0 PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry MSBuildToolsPath : C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0 PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions PSChildName : 2.0 PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry MSBuildToolsPath : C:\Windows\Microsoft.NET\Framework64\v3.5\ PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5 PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions PSChildName : 3.5 PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry MSBuildToolsPath : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0 PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions PSChildName : 4.0 PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry 

या फाइल सिस्टम से

शक्ति कोशिका:

 Resolve-Path "C:\Program Files (x86)\MSBuild\*\Bin\amd64\MSBuild.exe" Resolve-Path "C:\Program Files (x86)\MSBuild\*\Bin\MSBuild.exe" 

आउटपुट:

 Path ---- C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe 

रजिस्ट्री स्थानों

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5 

निष्पादन योग्य के लिए स्थान दें

लेकिन अगर आपको स्थान की आवश्यकता है जहां टास्क एक्सटेंशन को सहेजना है, तो यह चालू है

 %ProgramFiles%\MSBuild 

Windows 2003 और बाद में, यह कमांड सीएमडी में टाइप करें:

 cmd> where MSBuild Sample result: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 

यदि कुछ नहीं दिखाई देता है, तो इसका मतलब है कि .NET ढांचे को सिस्टम पैथ में शामिल नहीं किया गया है। MSBuild .NET स्थापना फ़ोल्डर में होना चाहिए, साथ में .NET compilers (vbc.exe, csc.exe)

यह विजुअल स्टूडियो 2015 और 2017 के लिए काम करता है:

 function Get-MSBuild-Path { $vs14key = "HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" $vs15key = "HKLM:\SOFTWARE\wow6432node\Microsoft\VisualStudio\SxS\VS7" $msbuildPath = "" if (Test-Path $vs14key) { $key = Get-ItemProperty $vs14key $subkey = $key.MSBuildToolsPath if ($subkey) { $msbuildPath = Join-Path $subkey "msbuild.exe" } } if (Test-Path $vs15key) { $key = Get-ItemProperty $vs15key $subkey = $key."15.0" if ($subkey) { $msbuildPath = Join-Path $subkey "MSBuild\15.0\bin\amd64\msbuild.exe" } } return $msbuildPath } 

सबसे आसान तरीका हो सकता है कि PowerShell खोलें और दर्ज करें

 dir HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersions\ 

आप .net संस्करण प्राप्त कर सकते हैं और विशिष्ट संस्करण प्राप्त कर सकते हैं:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions

यह रजिस्ट्री स्थान है

MSBuild 2017 (v15) के साथ शुरू, MSBuild अब एक फ़ोल्डर में दृश्य स्टूडियो के प्रत्येक संस्करण के अंतर्गत स्थापित है, और रजिस्ट्री में अब सेट नहीं है

यहां कुछ उदाहरण दिए गए हैं जहां MSBuild.exe मेरे मशीन पर पाया जाता है:

 C:\windows\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe (v2.0.50727.8745 32-bit) C:\windows\Microsoft.NET\Framework64\v2.0.50727\MSBuild.exe (v2.0.50727.8745 64-bit) C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe (v3.5.30729.8763 32-bit) C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe (v3.5.30729.8763 64-bit) C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe (v4.7.2053.0 32-bit) C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe (v4.7.2053.0 64-bit) C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe (v12.0.21005.1 32-bit) C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe (v12.0.21005.1 64-bit) C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe (v14.0.25420.1 32-bit) C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe (v14.0.25420.1 64-bit) C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe (v15.1.1012+g251a9aec17 32-bit) C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\amd64\MSBuild.exe (v15.1.1012+g251a9aec17 64-bit) C:\Program Files (x86)\Microsoft Visual Studio\2017\{LicenceName}\MSBuild\Bin\MSBuild.exe (v15.1.1012.6693 32-bit) C:\Program Files (x86)\Microsoft Visual Studio\2017\{LicenceName}\MSBuild\Bin\amd64\MSBuild.exe (v15.1.1012.6693 64-bit) 

यदि आप डेल्फी प्रोजेक्ट को संकलित करना चाहते हैं, तो देखें "त्रुटि MSB4040" परियोजना में कोई लक्ष्य नहीं है "जब msbuild + Delphi2009 का उपयोग करते हैं

सही उत्तर में कहा गया है: "एक बैच फ़ाइल है जिसे rsvars.bat कहा जाता है (इसे इसके लिए आरएडी स्टूडियो फ़ोल्डर में खोजिए )। उस कॉल को कॉल करने से पहले एमएसब्लूल्ड, और यह आवश्यक पर्यावरण चर की स्थापना करेगा। सुनिश्चित करें कि फ़ोल्डर्स आरएसवार में सही हैं .bat यदि आपके पास डिफॉल्ट से एक अलग स्थान में कंपाइलर है। "

यह बल्ला केवल उचित MSBuild.exe संस्करण के साथ उचित .NET फ़ोल्डर में पथ वातावरण चर को अद्यतन नहीं करेगा, बल्कि अन्य आवश्यक चर रजिस्टर भी करेगा।