TeamCity: Jenis atau namespace tidak dapat ditemukan, tetapi referensinya ada dan proyek saya dikompilasi secara lokal

Saya memiliki proyek ASP.net MVC 3. Kami menggunakan TeamCity, dan hingga saat ini semuanya berjalan baik-baik saja. Tiba-tiba hari ini, saya melakukan check-in, dan pembangunan TeamCity gagal. Dikatakan saya kehilangan arahan penggunaan atau referensi Majelis dan menimbulkan kesalahan kompilasi.

Proyek di mesin lokal saya berhasil dibangun. Saya membangunnya kembali beberapa kali untuk memastikannya. Saya memeriksa referensinya dan itu ada di sana. Saya memeriksa file .csproj dan ada referensinya juga di sana. Saya memeriksa tempat sampah; itu di sana. Saya bahkan melakukan RDP ke server tempat situs kami dikerahkan dan memeriksa bin di sana, dan file dll juga ada di sana.

Saya tidak mengerti mengapa ini tidak berfungsi, saya belum mengubah apa pun pada file tertentu yang dikatakan tidak memiliki referensi perakitan dalam beberapa minggu, saya berhasil check-in di TeamCity kemarin, file dll ada di mana pun yang seharusnya, dan file saya proyek dibangun. Saya bahkan melakukan hard reset ke komit terakhir yang saya buat yang berhasil diperiksa, menambahkan perubahan saya kembali (yang tidak ada hubungannya dengan masalah referensi, semua perubahan saya ada di file .js), dan memeriksanya, tapi Saya mendapat kesalahan kompilasi yang sama.

Adakah yang tahu apa yang salah, atau setidaknya apa yang bisa saya coba untuk menyelesaikannya?

sunting: Tidak ada file jalur yang digunakan di sini, file yang dimaksud adalah file .dll, yang saya tambahkan dengan mengklik "Tambahkan referensi" pada proyek. Saya memeriksa repositori Github dan file .dll ada di folder bin


person Erica Stockwell-Alpert    schedule 15.08.2014    source sumber
comment
Bagi saya kedengarannya seperti DLL dihapus dari repositori Anda tetapi masih ada di mesin lokal Anda.   -  person iamkrillin    schedule 15.08.2014
comment
Bagaimana cara memperbaikinya? Saya memilikinya di mesin lokal saya dan saya telah mendorongnya ke master, tetapi jelas itu tidak berhasil. Apa lagi yang akan saya lakukan?   -  person Erica Stockwell-Alpert    schedule 15.08.2014
comment
Jika file yang dikatakan hilang ada di VCS Anda, mungkin ada masalah jalur. Misalnya, jika proyek Anda memiliki file di C:\‹somepath›\‹somefile›.dll (catatan: jalur absolut) alih-alih \‹somefile›.dll (catatan: jalur relatif), kemungkinan besar proyek tersebut tidak akan berfungsi saat teamcity mencoba menjalankan pembangunan   -  person iamkrillin    schedule 15.08.2014


Jawaban (4)


iamkrillin membuat saya berpikir mungkin ini masalah jalur, jadi saya membuka file csproj dan memperhatikan bahwa formatnya referensi ke file "hilang" berbeda dari semua file lain di sekitarnya:

<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>

Saya memeriksa folder Custom\bin dan benar saja file .dll ada di sana (walaupun juga ada di NEHGS\bin), jadi saya membuang tag SpesifikVersion dan mengubah jalur ke folder Custom. TeamCity dapat memeriksanya.

Kenapa tiba-tiba rusak padahal sudah berfungsi 2 bulan terakhir, saya tidak tahu.

person Erica Stockwell-Alpert    schedule 15.08.2014

Saya mengalami ini hanya karena tidak menyimpan paket NUGET di VCS (GIT).

Jadi ada kebutuhan untuk melakukan restorasi paket NUGET, sebelum langkah build.

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

person Motlicek Petr    schedule 14.10.2016

Saya mengalami masalah yang sama pada build TC saya yang tiba-tiba tidak dapat menemukan perakitan. Saya menyelesaikannya dengan memeriksa jalurnya juga. Majelis saya tidak memiliki tag. Setelah saya menambahkan tag dengan jalur ke dll, TC berhasil dibangun

person Alexander Burke    schedule 14.11.2014

Saya harap ini membantu seseorang di luar sana, dalam kasus saya saya harus memeriksa folder yang memiliki referensi paket dll/nuget. Perhatikan bahwa saya telah melakukan proyek tetapi karena alasan tertentu 'SVN' tidak memeriksa/mengkomit folder (lokal) yang memiliki paket dll/nuget jadi saya harus membuka folder tersebut dan memeriksanya.

person Ask    schedule 21.04.2017
comment
TeamCity harus memulihkan NuGets yang hilang di setiap build. Biner NuGet tidak boleh dikontrol versinya. - person tkit; 05.10.2018