ข้อกำหนด unmet เมืองทีม: มี MSBuildTools12.0_x86_Path


117

ฉันมีการติดตั้ง TeamCity บนเครื่อง windows x32 Server2008 ฉันใช้งานการติดตั้งเว็บ. net 4.5 ฉันได้คัดลอกไฟล์จากเครื่อง x64 ของฉันตามบทความนี้ด้วยดังนั้นฉันจึงไม่จำเป็นต้องติดตั้ง vs2012 (แม้ว่าฉันได้เปลี่ยนเส้นทางเพื่อลบ x86 บนเครื่อง 32 บิต):

MSBuild ในโซลูชัน TeamCity ของ Visual Studio 2012

ดูเหมือนว่าฉันไม่สามารถให้ตัวแทนท้องถิ่นเรียกใช้งานบิลด์ที่ฉันตั้งค่าสำหรับ msbuild ในโครงการ vs2012 หรือ vs2010 ได้ ฉันได้รับ:

ข้อกำหนด Unmet: มี MSBuildTools12.0_x86_Path

ฉันได้รีสตาร์ทเซิร์ฟเวอร์หลายครั้งและรีสตาร์ทเอเจนต์ด้วย ฉันพยายามยุ่งกับตัวแปรเส้นทางเล็กน้อย แต่คิดไม่ออกว่าฉันขาดอะไรไป ฉันได้ดูในพารามิเตอร์การกำหนดค่าแล้วและสามารถดูสิ่งเหล่านี้:

MSBuildTools2.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727

MSBuildTools3.5_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v3.5

MSBuildTools4.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319

ฉันจะได้ 12.0 ในนั้นได้อย่างไร


คุณยังคงมีปัญหากับ TeamCity หรือไม่?
Daniel Hollinrake

ระยะเวลาที่ฉันใช้ในการคิดออกทำให้ฉันต้องพักโครงการไว้ ฉันหวังว่าจะได้รับกลับมาในฤดูใบไม้ผลิ
archangel76

ฉันใช้เวลาสักพักกว่าจะทำงานได้ทั้งหมด ฉันคิดว่าส่วนสำคัญของมันคือการติดตั้ง MSBuild และอัปเดต Web Deploy
Daniel Hollinrake

คำตอบ:


149

ฉันต้องการติดตั้ง MSBuild แยกต่างหากจากนั้นหลังจากรีสตาร์ทเอเจนต์ตัวแปรก็อยู่ที่นั่น

(จากบทความ MSDN) ขณะนี้ MSBuild ได้รับการติดตั้งเป็นส่วนหนึ่งของ Visual Studio แทนที่จะเป็นส่วนหนึ่งของ. NET Framework หมายเลขเวอร์ชัน MSBuild ปัจจุบันคือ 12.0 หากคุณต้องการติดตั้ง MSBuild แยกกันให้ดาวน์โหลดแพ็คเกจการติดตั้งจาก MSBuild Download

แก้ไข: ลิงก์คำตอบเสีย นี่คือลิงค์สำหรับ Microsoft Build Tools 2015 (ล่าสุดจนถึงวันนี้): https://www.microsoft.com/en-us/download/details.aspx?id=48159


8
ควรสังเกตว่าคุณจะต้องใช้. NET Framework เวอร์ชัน 4.5.1 (พบได้ที่นี่: microsoft.com/en-ca/download/details.aspx?id=40779 ) เพื่อติดตั้ง MSBuild12.0
Brandon

37
ในการรีสตาร์ทเอเจนต์: 1. ไปที่บิลด์เซิร์ฟเวอร์ 2. เรียกใช้ services.msc จากเมนูเริ่ม 3. ค้นหา TeamCity Agent หยุดบริการและเริ่มการทำงานใหม่ สิ่งนี้อาจดูเหมือนชัดเจนสำหรับนักสัตวแพทย์ TeamCity ที่มีประสบการณ์ แต่ไม่ใช่สำหรับผู้ใช้ครั้งแรกเช่นฉัน :)
Chaim Eliyah

5
แม้ว่าฉันจะติดตั้ง MS Build Tools 2013 แต่ตัวแปร MSBuildTools12.0_x86_Path ยังไม่ได้ตั้งค่าและเอเจนต์ไม่ทำงาน มีวิธีตั้งค่าด้วยตนเองหรือไม่?
bdaniel7

ต้องไปที่ไดเร็กทอรีนี้และเรียกใช้ vcvars64.bat: C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin \ amd64 จากนั้น msbuild ก็ทำงานให้ฉัน
user8128167

5
โดยค่าเริ่มต้นเมื่อฉันใช้การตรวจหาไฟล์ sln โดยอัตโนมัติและโซลูชันของฉันถูกตั้งค่าเป็น Visual Studio 2013 ฉันเปลี่ยนสำหรับ Visual Studio 2015 ที่ติดตั้งบนตัวแทน
ptittof57

33

คำตอบที่ล่าช้าเล็กน้อย แต่ถ้าโครงการของคุณมาจาก VS 2012 และคุณกำลังใช้ขั้นตอนการสร้างไฟล์โซลูชันที่ตรวจพบโดยอัตโนมัติการแก้ไขขั้นตอนนั้นและเลือก "Microsoft Visual Studio 2012" จากเมนูแบบเลื่อนลง "Visual Studio" จะช่วยแก้ไขปัญหานี้ได้ เช่นกัน (และ IMHO ถูกต้องมากขึ้น)


2
ไม่สายเลย! ฉันมีปัญหานี้ในวันนี้และการเปลี่ยนเวอร์ชัน VS เป็น VS 2015 ได้กำจัดข้อความความต้องการที่ไม่ได้รับการตอบสนอง
Sudhanshu Mishra

สิ่งนี้ใช้ได้ผลสำหรับฉันเซิร์ฟเวอร์ใหม่ TeamCity 10 VS2015 (เป็นโครงการเก่าปี 2013)
Rippo

2
ใช่ปัญหาของฉันคือ Visual Studio เวอร์ชันที่ไม่ถูกต้องถูก "เลือกอัตโนมัติ" โดย Team City เมื่อเลือกที่จะตรวจหาขั้นตอนการสร้างอัตโนมัติจากตัวเลือก "สร้างโครงการจาก URL" ดังนั้นฉันจึงไปที่ขั้นตอนการสร้างและเปลี่ยน เวอร์ชัน Visual Studio เพื่อแก้ไขปัญหานี้ ฉันหวังว่าผู้คนจะตรวจสอบคำตอบของคุณก่อนที่จะพยายามติดตั้งสิ่งที่พวกเขาอาจไม่ต้องการในคำตอบของ jmw
starmandeluxe

18

ฉันมีปัญหาเดียวกันและในตอนท้ายปรากฎว่าขั้นตอนการสร้างที่กำหนดไว้เพื่อเรียกใช้ MSBuild ถูกกำหนดค่าผิด

ในขั้นตอนการสร้าง MSBuild ของฉันการตั้งค่า "MSBuild ToolsVersion" ถูกตั้งค่าเป็น 12.0 (ค่าเริ่มต้น) ซึ่งนำไปสู่ข้อผิดพลาด "Unmet requirements: MSBuildTools12.0_x86_Path มีอยู่" ในระบบของฉัน เนื่องจากฉันไม่ต้องการ MSBuild 12.0 ใหม่ในการรันบิลด์ของฉันฉันจึงเปลี่ยนการตั้งค่านี้เป็น 4.0 ในขั้นตอนการสร้างของฉัน MSBuild เวอร์ชันนี้ได้รับการติดตั้งอย่างถูกต้องในระบบของฉัน สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้


10

ฉันไปงานปาร์ตี้ช้าไปหน่อย แต่ฉันคิดว่าฉันจะแบ่งปันสิ่งต่อไปนี้เผื่อว่ามันจะช่วยวิญญาณที่น่าสงสารออกไปที่นั่น

  • ฉันได้รับข้อผิดพลาดดังกล่าวข้างต้นในการติดตั้งTeamCity 8.1.4ใหม่ในกล่องWindows Server 2012 R2 ใหม่
  • ทำตามคำแนะนำในเธรดนี้และข้อผิดพลาดยังคงปรากฏอยู่แม้จะรีสตาร์ทและติดตั้งใหม่หลายครั้ง
  • ฉันสังเกตเห็นว่าข้อมูลตัวแทนเช่น OS และ CPU ไม่ปรากฏในหน้ารายละเอียดตัวแทน สิ่งนี้บ่งชี้ว่าปัญหาไม่ได้เกิดจากข้อกำหนดเบื้องต้นของ. NET และ MSBUILD แต่เกี่ยวข้องกับบริการตัวแทนที่ไม่สามารถอ่านข้อมูลเกี่ยวกับเครื่องได้
  • เอเจนต์กำลังทำงานภายใต้บัญชีของผู้ใช้ (พร้อมสิทธิ์ที่จำเป็นทั้งหมดตามเอกสารของ TeamCity ) แต่ฉันคิดว่าฉันจะเห็นว่าจะเกิดอะไรขึ้นถ้าฉันเข้าไปที่เครื่องมือผู้ดูแลระบบ> บริการและเปลี่ยนบัญชี Log On to Local system
  • เริ่มบริการตัวแทนใหม่
  • ความสำเร็จที่ดี.

การเปลี่ยนตัวแทนเพื่อเรียกใช้เป็นบริการในพื้นที่ได้แก้ไขปัญหานี้ให้ฉันเช่นกัน ฉันไม่เข้าใจว่าทำไม ฉันเพิ่มผู้ใช้ที่ฉันใช้ในกลุ่มผู้ดูแลระบบในพื้นที่เพื่อดูว่าเป็นปัญหาเรื่องสิทธิ์ แต่ไม่ได้ช่วยอะไร
user381624

8

MSBuild เป็นส่วนหนึ่งของ Visual Studio แล้ว หากคุณต้องการติดตั้งเครื่องมือสร้างบนตัวแทนของคุณ แต่ไม่ต้องการติดตั้ง VS คุณจะต้องติดตั้ง Microsoft Build Tools ใหม่ซึ่งมีอยู่ที่http://www.microsoft.com/en-us/download/ details.aspx?


1
ดูเพิ่มเติมที่: ลิงค์สำหรับ Build Tools เวอร์ชัน2015 (ลิงก์ที่กล่าวถึงคือ 2013 tools)
Jeroen

และนี่คือเวอร์ชัน2017 (Tools for Visual Studio 2017 -> Build Tools for Visual Studio 2017)
fuglede

5

ในกรณีของฉัน - มีเพียงการติดตั้ง MSBuild แยกต่างหากสำหรับ VS2013 เท่านั้นที่ช่วยได้ (นี่คือลิงค์ - https://www.microsoft.com/en-us/download/confirmation.aspx?id=40760 ) มันสร้างโฟลเดอร์นี้C:\Program Files (x86)\MSBuild\12.0ติดตั้งเครื่องมือ MSBuild สำหรับ VS2015 สร้างC:\Program Files (x86)\MSBuild\14.0โฟลเดอร์นี้และ TC ไม่ต้องการ ใช้มัน.


2

ฉันมีปัญหานี้กับตัวแทนการสร้างรองของฉัน

ฉันได้คัดลอกโฟลเดอร์ MSBuild จากพีซีตัวแทนการสร้างหลักไปยังพีซีตัวแทนการสร้างรอง (เช่นเดียวกับที่ฉันทำกับไฟล์ Visual Studio บางไฟล์ตามที่อธิบายไว้ที่นี่: MSBuild ในโซลูชัน TeamCity ของ Visual Studio 2012 ) แทนที่จะติดตั้ง MSBuild

อย่างไรก็ตามดูเหมือนว่าบริการตัวแทน TeamCity จะตรวจสอบรีจิสทรีสำหรับรายการ MSBuild เมื่อเริ่มทำงาน (ดูเหมือนจะไม่ทำเช่นนี้กับไฟล์ Visual Studio ที่ฉันกล่าวถึงข้างต้น) เนื่องจากฉันเพิ่งคัดลอกไฟล์จากพีซีเครื่องอื่นจึงไม่มีรายการ MSBuild สำหรับ v. 12.0 ดังนั้น TeamCity จึงไม่พบไฟล์ MSBuild แม้ว่าจะอยู่ในโฟลเดอร์ Program Files (x86) \ MSBuild

เมื่อฉันติดตั้ง Microsoft Build Tools จากลิงค์ด้านบนhttp://www.microsoft.com/en-us/download/details.aspx?id=40760 TeamCity พบรายการ v. 12.0 ในรีจิสทรีและตัวแทนสามารถ สร้างโครงการเดียวกันกับตัวแทนหลัก

อย่าลืมรีสตาร์ทบริการ TeamCity agent หลังจากติดตั้ง MS Build Tools


1

ในกรณีของฉันฉันมี TeamCity Professional 2018.1 บน Windows 2016 Server ฉันดาวน์โหลดBuild Tools for Visual Studio 2017จากที่นี่: https://visualstudio.microsoft.com/downloads/และเลือกตัวเลือกทั้งหมดสำหรับเครื่องมือสร้าง หลังจากติดตั้งฉันได้เพิ่ม MSBuild ลงในตัวแปรสภาพแวดล้อม PATH ส่วนกลาง C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin ในกรณีของฉัน


0

ในกรณีของฉันเป็นเครื่องใหม่ที่ไม่ได้ติดตั้ง Visual Studio และฉันเพิ่งกู้คืน Teamcity จากเครื่องอื่น ดังนั้นฉันจึงติดตั้ง visual studio 2013 และแก้ไขปัญหา teamcity agent


0

ตามที่ระบุไว้ข้างต้นขั้นตอนการสร้างที่ตรวจพบอัตโนมัติอาจเลือกเวอร์ชัน Visual Studio ที่ไม่ถูกต้อง เปลี่ยนโดยใช้Visual Studioแบบเลื่อนลงในส่วนBuild Steps ในหน้าBuild Configuration settings:

ใส่คำอธิบายภาพที่นี่


-1

ดูเหมือนว่าฉันจะแก้ปัญหานี้ได้โดยไปที่รีจิสตรีและลบรายการทั้งหมดสำหรับ MSBuild ที่ไม่ใช่เวอร์ชัน 12 จากนั้นรีสตาร์ทเอเจนต์

โดยไปที่ Start> Run แล้วพิมพ์ Regedit

จากนั้นไปที่คีย์:

HKEY_LOCAL_MACHINE> ซอฟต์แวร์> Microsoft> MSBuild

ลบทุกเวอร์ชันยกเว้น 12.0

ลงไปที่ระดับถัดไปที่ ToolsVersions และลบเวอร์ชันที่ไม่ใช่ 12.0 ที่นั่น


1
นี่เป็นความคิดที่ไม่ดีสิ่งสุดท้ายที่คุณควรทำใน CI / CD คือการเล่นกับการลงทะเบียน
goamn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.