আমি কীভাবে উইন্ডোজ এসডিকে 7.1 ব্যবহার করে কমান্ড লাইন থেকে এমএসবিল্ড চালাব?


141

আমি আমাদের সিআই সার্ভারে .NET 4.0 সমর্থন সেট করছি। আমি .NET 4.0 এবং উইন্ডোজ 7.1 এসডিকে থেকে নেট সরঞ্জাম ইনস্টল করেছি।

.NET 2.0 এবং 3.5 এ, এটি সবেমাত্র কাজ করেছে। .NET 4 সহ, আমি যখন স্টার্ট মেনু থেকে "উইন্ডোজ এসডিকে 7.1 কমান্ড প্রম্পট" চালাই, তখন এটি সম্পর্কে অভিযোগ

The x86 compilers are not currently installed. x86-x86
Please go to Add/Remove Programs to update your installation.
.
Setting SDK environment relative to C:\Program Files\Microsoft
SDKs\Windows\v7.1
\.
Targeting Windows Server 2008 x86 Debug

তারপরে যখন আমি মিসবিল্ড চালানোর চেষ্টা করি তখন আমি পাই:

C:\Program Files\Microsoft SDKs\Windows\v7.1>msbuild
'msbuild' is not recognized as an internal or external command,
operable program or batch file.

C:\Program Files\Microsoft SDKs\Windows\v7.1>

আমি পুরোপুরি বিশ্বাস করতে পারি না যে রানটাইম এবং এসডিকে ইনস্টল করা আপনাকে এমন একটি সিস্টেমের সাথে ছেড়ে দেবে যা এমএসবিল্ড চালাতে পারে না ... আমি কি কিছু স্পষ্ট পদক্ষেপ বা অস্পষ্ট উইন্ডোজ আপডেট মিস করেছি, বা সিস্টেম ছেড়ে যাওয়ার এবং হ্যাকিং শুরু করার সময় এসেছে? ?


এমএস বিল্ড কী তৈরির চেষ্টা করছে? যদি এটি কোনও সি ++ প্রকল্প হয়, তা নিশ্চিত করুন যে x86 সংকলকগুলি ইনস্টল রয়েছে। আপনি যদি সিআই সার্ভারটি সার্ভার কোর হয় তবে নিশ্চিত হয়ে নিন যে আপনি WW64 ইনস্টল করেছেন (যদিও সার্ভার কোরে সিআই চালাতে আমার কোনও সাফল্য নেই)
vcsjones

নাহ - একটি উইন্ডোজ সার্ভার 2008 এসপি 1 এর সরল .NET 4.0 ওয়েব অ্যাপস ...
ডিলান বিটি

এরম, সুতরাং আপনি লাইসেন্স বিশ্বাস ছাড়াই বিল্ড সার্ভারটি কনফিগার করতে পারবেন এমন যথেষ্ট বিশ্বাস করতে পারবেন না? ভিএস লাইসেন্স আপনাকে একাধিক মেশিনে ইনস্টল করতে দেয়। আমি আপনাকে এটি সুবিধা গ্রহণ করার পরামর্শ দিচ্ছি।
হান্স প্যাস্যান্ট

%VCTools%পরিবেশ পরিবর্তনশীল কী সেট করা হয়? এটি একটি পথে সেট করা উচিত। cl.exeসেই পথে কি অস্তিত্ব আছে? এছাড়াও, আপনি কি অ-ইংলিশ উইন্ডোতে আছেন? স্থানীয় উইন্ডোজ ইনস্টলেশন সম্পর্কে আমি এই সমস্যার কয়েকটি প্রতিবেদন শুনেছি।
vcsjones

উত্তর:


292

সক্রিয় করার জন্য msbuildপ্রম্পট কমান্ড , আপনি কেবল ইনস্টল .NET 4 ফ্রেমওয়ার্ক পাথ যোগ করার জন্য আপনার মেশিনে আছে PATHএনভায়রনমেন্ট ভেরিয়েবল।

আপনি পরিবেশের ভেরিয়েবলগুলি এতে প্রবেশ করতে পারেন:

  1. কম্পিউটারে রাইট ক্লিক করুন
  2. বৈশিষ্ট্য ক্লিক করুন
  3. তারপরে বাম নেভিগেশন বারের অ্যাডভান্সড সিস্টেম সেটিংসে ক্লিক করুন
  4. পরবর্তী ডায়লগ বাক্সে পরিবেশ পরিবর্তনশীল ক্লিক করুন
  5. নীচে স্ক্রোল করুন PATH
  6. ফ্রেমওয়ার্কটিতে আপনার পথ অন্তর্ভুক্ত করার জন্য এটি সম্পাদনা করুন ( এখানে সর্বশেষ প্রবেশের পরে একটি " ; " ভুলবেন না )

রেফারেন্সের জন্য, আমার পথ ছিল C:\Windows\Microsoft.NET\Framework\v4.0.30319

3/21/18 পাথ আপডেট:

এমএস বিল্ড 12 (2013) / ভিএস 2013 /। নেট 4.5.1+ এবং পরবর্তী এমএসবাইল্ড এখন ভিজ্যুয়াল স্টুডিওর অংশ হিসাবে ইনস্টল করা আছে

রেফারেন্সের জন্য, ভিএস2015 ইনস্টল করে আমার মেশিনটি আমার পাথ installed C:\Program Files (x86)\MSBuild\14.0\Bin


2
আমি এমএসবিল্ডকে সর্বদা পাওয়ারশেলে উপলব্ধ করার জন্য এটি করি
উইবি টিজসমা

36
নতুন পথ যোগ করার পরে প্রম্পটটি পুনরায় চালু করার কথা মনে রাখবেন।
ক্যাম্পিনহো

3
এছাড়াও, '' 'এর পরে আপনার কোনও সাদা জায়গা থাকতে পারে না; অক্ষর।
মাইকেল ফ্রাই

4
এটি পুরানো ডিরেক্টরি MS msdn.microsoft.com/en-us/library/hh162058.aspx
জেএম বেকার

8
এমএসবিল্ড 15.0 এর জন্য পথ পরিবর্তন হয়েছে। এটি এখন ভিজ্যুয়ালস্টুডিও 2017 ইনস্টল ডিরেক্টরি এর অধীনে। উদাহরণস্বরূপ: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Binডকস.মাইক্রোসফট.এইন.ইউএস
আসফ ইস্রায়েল

73

এর Visual Studio 2013পর থেকে MSbuildভিজ্যুয়াল স্টুডিওর অংশ হিসাবে আসে। এর আগে এমএসবিল্ড এর অংশ হিসাবে ইনস্টল করা হয়েছিল। নেট ফ্রেমওয়ার্ক।

MSBuild সরাসরি % প্রোগ্রামফায়ালস% এর অধীনে ইনস্টল করা আছে । সুতরাং, ভিজুয়াল স্টুডিওর সংস্করণের উপর নির্ভর করে এমএসবিল্ডের পথটি আলাদা হতে পারে।

জন্য Visual Studio 2015 , এর পাথ MSBuildহয়"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"

জন্য Visual Studio 15 Preview , এর পাথ MSBuildহয়"%ProgramFiles(x86)%\MSBuild\15.0\Bin\MSBuild.exe"

এছাড়াও, কিছু নতুন এমএসবিল্ড বৈশিষ্ট্য যুক্ত করা হয়েছে এবং কিছু সংশোধন করা হয়েছে। আরও তথ্যের টি দেখতে এখানে

আপডেট 1: ভিএস 2017

এমএসবিল্ডের অবস্থানটি ভিজ্যুয়াল স্টুডিও 2017 প্রকাশের সাথে সাথে আবার পরিবর্তিত হয়েছে । এখন ইনস্টলেশন ডিরেক্টরিটি এর অধীনে রয়েছে %ProgramFiles(x86)%\Microsoft Visual Studio\2017\[VS Edition]\MSBuild\15.0\Bin\। যেহেতু, আমার একটি এন্টারপ্রাইজ সংস্করণ রয়েছে, তাই আমার মেশিনের জন্য এমএসবিল্ডের অবস্থান"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSbuild.exe"


7

"সেন্টিমিডি" এর পরিবর্তে "ডেভেলপার কমান্ড প্রম্পট ফর ভিজ্যুয়াল স্টুডিও 20 এক্সএক্স" ব্যবহার করা আপনার পরিবেশের ভেরিয়েবলগুলিতে যুক্ত না করেই স্বয়ংক্রিয়ভাবে এমএসবিল্ডের পথ নির্ধারণ করবে।


1
না, এটি হয় না (কমপক্ষে এমন পরিবেশে নয় যেখানে কেবল মিসবিল্ড ইনস্টল করা থাকে তবে ভিজ্যুয়াল স্টুডিও নয়)
এজ

6

আপনার ব্যাট ফাইলটি এর মতো হতে পারে:

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

msbuild C:\Users\mmaratt\Desktop\BladeTortoise\build\ALL_BUILD.vcxproj

PAUSE

EXIT

1
এমএসবিল্ডকে পুরো পথ দেওয়ার অর্থ আপনি হার্ড ডিরেক্টরি কোডিংয়ের পরিবর্তে বর্তমান ডিরেক্টরিতে একটি প্রকল্প ফাইল সন্ধান করতে পারেন। এর মতো কিছু C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild *.*projএটি করতে পারে, যদিও নোট করুন যে এমএসবাইল্ডের নতুন সংস্করণগুলির জন্য পথটি (2013 সালের প্রায়) আলাদা।
jpaugh

6

ভিজ্যুয়াল স্টুডিও 2019 (পূর্বরূপ, কমপক্ষে) এর জন্য এটি এখন রয়েছে:

সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও \ 2019 \ পূর্বরূপ \ এমএসবিল্ড \ বর্তমান \ বিন \ এমএসবিল্ড.এক্সই

আমি ভাবছি প্রক্রিয়াটি আনুষ্ঠানিক 2019 প্রকাশের জন্য একই রকম হবে।


সঠিক। ভিজ্যুয়াল স্টুডিও 2019 এ পথটি C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MsBuild.exe
এডডেক্স

2

সি # 6 সিনট্যাক্স দিয়ে তৈরি করতে সক্ষম হওয়ার জন্য এটি ব্যবহার করুন:

সি: \ প্রোগ্রাম ফাইল (x86) \ এমএস বিল্ড \ 14.0 \ বিন


-3

SetEnv.cmdস্ক্রিপ্ট যে "SDK এর কম্যান্ড প্রম্প্ট" জন্য শর্টকাট রান চেক cl.exeবিভিন্ন স্থানে যোগ করতে এন্ট্রি সেট আপ করার আগেPATH । সুতরাং কোনও নেটিভ সি সংকলক ইনস্টল না করা থাকলে এটি কিছু যুক্ত করতে ব্যর্থ হয়।

এটি ঠিক করতে, নীচের প্যাচটি এতে প্রয়োগ করুন <SDK install dir>\Bin\SetEnv.cmd। এটি অন্য সরঞ্জামগুলিতে <SDK install dir>\Binএবং সাবফোল্ডারগুলিতে হারিয়ে যাওয়া পাথগুলিও ঠিক করবে । অবশ্যই, আপনি এই বাগটি ঘিরে কাজ করার পরিবর্তে সি সংকলকটি ইনস্টল করতে পারেন।

--- SetEnv.Cmd_ 2010-04-27 19:52:00.000000000 +0400
+++ SetEnv.Cmd  2013-12-02 15:05:30.834400000 +0400
@@ -228,10 +228,10 @@

 IF "%CURRENT_CPU%" =="x64" (
   IF "%TARGET_CPU%" == "x64" (
+    SET "FxTools=%FrameworkDir64%\%FrameworkVersion%;%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework64\v3.5;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools\x64;%WindowsSdkDir%Bin\x64;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\amd64\cl.exe" (
       SET "VCTools=%VCTools%\amd64;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools\x64;%WindowsSdkDir%Bin\x64;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir64%\%FrameworkVersion%;%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework64\v3.5;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The x64 compilers are not currently installed.
@@ -239,10 +239,10 @@
       ECHO .
     )
   ) ELSE IF "%TARGET_CPU%" == "IA64" (
+    SET "FxTools=%FrameworkDir64%\%FrameworkVersion%;%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework64\v3.5;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools\x64;%WindowsSdkDir%Bin\x64;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\x86_ia64\cl.exe" (
       SET "VCTools=%VCTools%\x86_ia64;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools\x64;%WindowsSdkDir%Bin\x64;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir64%\%FrameworkVersion%;%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework64\v3.5;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The IA64 compilers are not currently installed.
@@ -250,10 +250,10 @@
       ECHO .
     )
   ) ELSE IF "%TARGET_CPU%" == "x86" (
+    SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\cl.exe" (
       SET "VCTools=%VCTools%;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The x86 compilers are not currently installed.
@@ -263,10 +263,10 @@
   )
 ) ELSE IF "%CURRENT_CPU%" =="IA64" (
   IF "%TARGET_CPU%" == "IA64" (
+    SET "FxTools=%FrameworkDir64%\%FrameworkVersion%;%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework64\v3.5;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools\IA64;%WindowsSdkDir%Bin\IA64;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\IA64\cl.exe" (
       SET "VCTools=%VCTools%\IA64;%VCTools%;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools\IA64;%WindowsSdkDir%Bin\IA64;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir64%\%FrameworkVersion%;%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework64\v3.5;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The IA64 compilers are not currently installed.
@@ -274,10 +274,10 @@
       ECHO .
     )
   ) ELSE IF "%TARGET_CPU%" == "x64" (
+    SET "FxTools=%FrameworkDir64%\%FrameworkVersion%;%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework64\v3.5;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools\IA64;%WindowsSdkDir%Bin\IA64;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\x86_amd64\cl.exe" (
       SET "VCTools=%VCTools%\x86_amd64;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools\IA64;%WindowsSdkDir%Bin\IA64;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir64%\%FrameworkVersion%;%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework64\v3.5;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The VC compilers are not currently installed.
@@ -285,10 +285,10 @@
       ECHO .
     )
   ) ELSE IF "%TARGET_CPU%" == "x86" (
+    SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\cl.exe" (
       SET "VCTools=%VCTools%;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The x86 compilers are not currently installed.
@@ -298,10 +298,10 @@
   )
 ) ELSE IF "%CURRENT_CPU%"=="x86" (
   IF "%TARGET_CPU%" == "x64" (
+    SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\x86_amd64\cl.exe" (
       SET "VCTools=%VCTools%\x86_amd64;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The x64 cross compilers are not currently installed.
@@ -309,10 +309,10 @@
       ECHO .
     )
   ) ELSE IF "%TARGET_CPU%" == "IA64" (
+    SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\x86_IA64\cl.exe" (
       SET "VCTools=%VCTools%\x86_IA64;%VCTools%;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The IA64 compilers are not currently installed.
@@ -320,10 +320,10 @@
       ECHO .
     )
   ) ELSE IF "%TARGET_CPU%" == "x86" (
+    SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
+    SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
     IF EXIST "%VCTools%\cl.exe" (
       SET "VCTools=%VCTools%;%VCTools%\VCPackages;"
-      SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
-      SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
     ) ELSE (
       SET VCTools=
       ECHO The x86 compilers are not currently installed. x86-x86
@@ -331,15 +331,17 @@
       ECHO .
     )
   )
-) ELSE IF EXIST "%VCTools%\cl.exe" (
-  SET "VCTools=%VCTools%;%VCTools%\VCPackages;"
-  SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
-  SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
 ) ELSE (
-  SET VCTools=
-  ECHO The x86 compilers are not currently installed. default
-  ECHO Please go to Add/Remove Programs to update your installation.
-  ECHO .
+  SET "FxTools=%FrameworkDir32%%FrameworkVersion%;%windir%\Microsoft.NET\Framework\v3.5;"
+  SET "SdkTools=%WindowsSdkDir%Bin\NETFX 4.0 Tools;%WindowsSdkDir%Bin;"
+  IF EXIST "%VCTools%\cl.exe" (
+    SET "VCTools=%VCTools%;%VCTools%\VCPackages;"
+  ) ELSE (
+    SET VCTools=
+    ECHO The x86 compilers are not currently installed. default
+    ECHO Please go to Add/Remove Programs to update your installation.
+    ECHO .
+  )
 )

 :: --------------------------------------------------------------------------------------------
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.