TeamCity: ไม่พบประเภทหรือเนมสเปซ แต่มีการอ้างอิงอยู่และโครงการของฉันคอมไพล์ในเครื่อง

ฉันมีโครงการ ASP.net MVC 3 เราใช้ TeamCity และจนถึงตอนนี้ทุกอย่างก็เรียบร้อยดี จู่ๆ วันนี้ฉันก็เช็คอิน และการสร้าง TeamCity ก็ล้มเหลว มันบอกว่าฉันขาดการใช้คำสั่งหรือการอ้างอิงแอสเซมบลี และเกิดข้อผิดพลาดในการคอมไพล์

โปรเจ็กต์บนเครื่องของฉันสร้างสำเร็จ ฉันสร้างมันขึ้นมาใหม่หลายครั้งเพื่อให้แน่ใจว่า ฉันตรวจสอบข้อมูลอ้างอิงแล้วและมันก็อยู่ที่นั่น ฉันตรวจสอบไฟล์ .csproj แล้วและมีการอ้างอิงอยู่ที่นั่นด้วย ฉันตรวจสอบถังขยะแล้ว มันอยู่ที่นั่น ฉันกระทั่ง RDP เข้าไปในเซิร์ฟเวอร์ที่ไซต์ของเราใช้งานและตรวจสอบถังขยะที่นั่น และไฟล์ dll ก็อยู่ที่นั่นด้วย

ฉันไม่เข้าใจว่าทำไมมันถึงใช้งานไม่ได้ ฉันไม่ได้เปลี่ยนแปลงอะไรในไฟล์ที่ระบุว่ามีการอ้างอิงแอสเซมบลีหายไปเป็นเวลาหลายสัปดาห์แล้ว เมื่อวานนี้ฉันเช็คอิน TeamCity ได้สำเร็จ ไฟล์ dll มีอยู่ทุกที่ที่ควรจะทำ และ สร้างโครงการ ฉันยังทำการฮาร์ดรีเซ็ตเป็นคอมมิตครั้งล่าสุดที่เช็คอินสำเร็จ เพิ่มการเปลี่ยนแปลงของฉันกลับเข้าไป (ซึ่งไม่เกี่ยวข้องกับปัญหาการอ้างอิง การเปลี่ยนแปลงทั้งหมดของฉันอยู่ในไฟล์ .js) และเช็คอิน แต่ ฉันได้รับข้อผิดพลาดในการรวบรวมเดียวกัน

ไม่มีใครมีความคิดว่าเกิดอะไรขึ้นหรืออย่างน้อยสิ่งที่ฉันอาจพยายามแก้ไขปัญหานี้

แก้ไข: ไม่มีการใช้ไฟล์พาธที่นี่ ไฟล์ที่เป็นปัญหาคือไฟล์ .dll ซึ่งฉันเพิ่มโดยคลิก "เพิ่มข้อมูลอ้างอิง" ในโครงการ ฉันตรวจสอบที่เก็บ Github และไฟล์ .dll อยู่ในโฟลเดอร์ bin


person Erica Stockwell-Alpert    schedule 15.08.2014    source แหล่งที่มา
comment
สำหรับฉันดูเหมือน DLL จะถูกลบออกจากพื้นที่เก็บข้อมูลของคุณแล้ว แต่ยังคงมีอยู่ในเครื่องของคุณ   -  person iamkrillin    schedule 15.08.2014
comment
ฉันจะแก้ไขปัญหานี้ได้อย่างไร? ฉันมีมันอยู่ในเครื่องของฉันและฉันได้ผลักดันไปสู่ระดับมาสเตอร์แล้ว แต่ชัดเจนว่ามันไม่ได้ผล ฉันจะทำอะไรอีก?   -  person Erica Stockwell-Alpert    schedule 15.08.2014
comment
หากไฟล์ที่ระบุว่าหายไปมีอยู่ใน VCS ของคุณ อาจเป็นปัญหาเกี่ยวกับเส้นทาง ตัวอย่างเช่น หากโปรเจ็กต์ของคุณมีไฟล์อยู่ที่ C:\‹somepath›\‹somefile›.dll (หมายเหตุ: เส้นทางสัมบูรณ์) แทนที่จะเป็น \‹somefile›.dll (หมายเหตุ: เส้นทางสัมพัทธ์) มีแนวโน้มว่าจะไม่ทำงานเมื่อ teamcity พยายาม รันบิลด์   -  person iamkrillin    schedule 15.08.2014


คำตอบ (4)


iamkrillin ทำให้ฉันคิดว่าอาจเป็นปัญหาเกี่ยวกับเส้นทาง ฉันจึงเปิดไฟล์ csproj และสังเกตเห็นว่ารูปแบบของไฟล์ การอ้างอิงถึงไฟล์ "หายไป" แตกต่างจากไฟล์อื่นๆ ที่อยู่รอบๆ:

<Reference Include="Ektron.Newtonsoft.json">
  <HintPath>..\..\Custom\bin\Ektron.Newtonsoft.json.dll</HintPath>
</Reference>

// THE "MISSING" FILE
<Reference Include="Smdg.Utils, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\NEHGS\bin\Smdg.Utils.dll</HintPath>
</Reference>

ฉันตรวจสอบโฟลเดอร์ Custom\bin และแน่ใจว่ามีไฟล์ .dll อยู่ที่นั่น (แม้ว่าจะมีอยู่ใน NEHGS\bin ด้วยก็ตาม) ดังนั้นฉันจึงกำจัดแท็ก specificVersion และเปลี่ยนเส้นทางไปยังโฟลเดอร์ Custom TeamCity สามารถตรวจสอบได้

ทำไมจู่ๆ ถึงพังในเมื่อมันใช้งานได้ 2 เดือนที่ผ่านมา ฉันก็ไม่รู้เหมือนกัน

person Erica Stockwell-Alpert    schedule 15.08.2014

ฉันมีสิ่งนี้เพียงเพราะไม่ได้จัดเก็บแพ็คเกจ NUGET ที่ VCS (GIT)

ดังนั้นจึงจำเป็นต้องกู้คืนแพ็คเกจ NUGET ก่อนขั้นตอนการสร้าง

https://blog.jetbrains.com/teamcity/2013/08/nuget-package-restore-with-teamcity/

person Motlicek Petr    schedule 14.10.2016

ฉันมีปัญหาเดียวกันกับ TC build ของฉันที่ไม่สามารถค้นหาชุดประกอบได้ ฉันแก้ไขมันด้วยการตรวจสอบเส้นทางด้วย ชุดประกอบของฉันไม่มีแท็ก เมื่อฉันเพิ่ม tage ด้วยเส้นทางไปยัง dll แล้ว TC ก็สามารถสร้างได้สำเร็จ

person Alexander Burke    schedule 14.11.2014

ฉันหวังว่านี่จะช่วยใครซักคนได้ ในกรณีของฉัน ฉันต้องตรวจสอบในโฟลเดอร์ที่มีแพ็คเกจ dll/nuget อ้างอิง โปรดทราบว่าฉันได้คอมมิตโปรเจ็กต์แล้ว แต่ด้วยเหตุผลบางอย่าง 'SVN' ไม่ได้เช็คอิน/คอมมิตโฟลเดอร์ (ในเครื่อง) ที่มีแพ็คเกจ dll/ nuget ดังนั้นฉันจึงต้องไปที่โฟลเดอร์และเช็คอิน

person Ask    schedule 21.04.2017
comment
TeamCity ควรกู้คืน NuGets ที่หายไปในแต่ละบิลด์ ไบนารี NuGet ไม่ควรได้รับการควบคุมเวอร์ชัน - person tkit; 05.10.2018