Saya sedang menyiapkan solusi ASP.NET MVC 5.1 baru. Saya menambahkan banyak paket NuGet dan mengaturnya dengan Zurb Foundation dll.
Sebagai bagian dari itu, saya telah menambahkan referensi ke paket NuGet in-house yang merupakan Perpustakaan Kelas Portable dan saya pikir ini menyebabkan masalah pada server build.
TeamCity gagal membangun dengan:
Jenis 'System.Object' didefinisikan dalam rakitan yang tidak dirujuk. Anda harus menambahkan referensi ke System.Runtime assembly, Versi = 4.0.0.0
Saya awalnya menambahkan perbaikan untuk kesalahan yang sama atau serupa ketika mengkompilasi halaman web Razor, yang memperbaiki berada di web.config
<compilation ... >
<assemblies>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
</compilation>
Namun masalah ini belum terselesaikan.
sumber
.vs
folder setelah menutup proyek, membukanya kembali, menghapusweb.config
entri dan sekarang ia membangun dan berjalan dengan baik.Menambahkan referensi ke rakitan System.Runtime.dll ini memperbaiki masalah:
Meskipun file di jalur eksplisit itu tidak ada di server build.
Saya akan mengirim kembali dengan informasi lebih lanjut setelah saya menemukan beberapa dokumentasi di PCL dan Fasad-fasad ini.
Memperbarui
Ya hampir tidak ada di majelis fasad di seluruh internet.
Google:
sumber
Satu-satunya cara yang berhasil bagi saya. Tambahkan rakitan ke web.config
sumber
Komentar @ PeterMajeed dalam jawaban yang diterima membantu saya keluar dengan masalah terkait. Saya tidak menggunakan perpustakaan portabel, tetapi memiliki galat build yang sama pada instalasi Windows Server 2012 yang baru, tempat saya menjalankan TeamCity.
Menginstal Microsoft .NET Framework 4.5.1 Paket Pengembang menangani masalah ini (setelah secara terpisah menginstal MS Build Tools ).
sumber
Saya punya masalah ini dalam beberapa solusi pada VS 2015 (bukan MVC sekalipun), dan bahkan dalam solusi yang sama pada satu workstation tetapi tidak pada yang lain. Kesalahan mulai muncul setelah mengubah versi .NET ke 4.6 dan merujuk PCL.
Solusinya sederhana: Tutup solusi dan hapus folder .vs tersembunyi di folder yang sama dengan solusinya.
Menambahkan referensi yang hilang seperti yang disarankan dalam jawaban lain juga menyelesaikan masalah, tetapi kesalahan tetap diselesaikan bahkan setelah Anda menghapus referensi lagi.
Adapun TeamCity, saya tidak bisa mengatakan karena konfigurasi saya tidak pernah punya masalah. Tetapi pastikan Anda mereset katalog kerja sebagai bagian dari upaya debugging Anda.
sumber
Ini masalah lama tapi saya hadapi hari ini untuk memperbaiki saluran pipa di server integrasi berkesinambungan kami. Menambahkan
ke
.csproj
file saya memecahkan masalah bagi saya.Sedikit konteks: proyek tertarik adalah proyek .Net framework 4.6.1 penuh, tanpa membangun masalah pada mesin pengembangan. Masalahnya hanya muncul pada server build, yang tidak dapat kami kontrol, mungkin karena versi SDK yang berbeda atau yang serupa.
Menambahkan yang diusulkan
<Reference
memecahkan kesalahan build, dengan harga peringatan referensi yang hilang (segitiga kuning pada entri yang ditambahkan di pohon referensi) di Visual Studio.Saya harap ini dapat membantu orang dalam skenario serupa ...
sumber
Instal .NET Runtime serta paket penargetan untuk versi .NET yang Anda targetkan.
Paket pengembang hanyalah dua hal ini yang digabungkan bersama tetapi hingga hari ini sepertinya tidak memiliki versi 4.6 sehingga Anda harus menginstal kedua item secara terpisah.
Unduhan dapat ditemukan di sini: http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx#
sumber
Saya juga menghadapi masalah ini mencoba menjalankan proyek ASP .NET MVC proyek setelah pembaruan kecil untuk basis kode kami, meskipun dikompilasi tanpa kesalahan:
Proyek kami tidak pernah mengalami masalah ini, jadi saya ragu untuk mengubah file konfigurasi sebelum mencari tahu akar masalahnya. Dari log kesalahan saya dapat menemukan output kompiler terperinci ini yang menunjukkan apa yang sebenarnya terjadi:
Rupanya paket baru yang ditambahkan ke proyek kami merujuk pada versi yang lebih lama dari .NET Framework, menyebabkan masalah "definisi di banyak majelis" (CS1685), yang menyebabkan kesalahan kompilator tampilan silet saat runtime.
Saya menghapus paket yang tidak kompatibel (System.Collections.Immutable.dll) dan masalah berhenti terjadi. Namun, jika paket tidak dapat dihapus dalam proyek Anda, Anda perlu mencoba jawaban Baahubali .
sumber
Pada server build Tfs 2013 kami, saya memiliki kesalahan yang sama, dalam proyek uji. dengan proyek web utama berjalan di .Net 4.5.1.
Saya menginstal paket nuGet dari System Runtime dan menambahkan referensi dari paket \ System.Runtime.4.3.0 \ ref \ net462 \ System.Runtime.dll
Itu menyelesaikannya untuk saya.
sumber
_._
Saya perlu mengunduh dan menginstal SDK Windows 8.0 (dan bukan 8.1) untuk menghilangkan kesalahan di server TeamCity saya.
https://developer.microsoft.com/en-us/windows/downloads/windows-8-sdk
sumber
saya menambahkan System.Runtime.dll ke proyek bin dan berhasil :)
sumber
Saya punya masalah ini dalam solusi dengan proyek Web API dan beberapa proyek perpustakaan. Salah satu proyek perpustakaan borking on build, dengan kesalahan yang mengatakan atribut Unity bukan atribut "valid", dan kemudian satu kesalahan mengatakan saya perlu referensi System.Runtime.
Setelah banyak mencari, menginstal ulang Paket Pengembang 4.5.2, dan tidak ada yang berhasil, saya pikir mungkin itu hanya ketidakcocokan versi. Jadi saya melihat properti dari setiap proyek, dan salah satu pustaka yang paling dasar menargetkan 4,5 sedangkan yang lainnya menargetkan 4,5.2. Saya mengubah yang juga menargetkan 4.5.2 dan kesalahan hilang.
sumber
Saya menyalin file "C: \ Program Files (x86) \ Assemblies Referensi \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Facades \ system.runtime.dll" ke folder bin server produksi, ini menyelesaikan masalah.
sumber
instal https://www.microsoft.com/en-us/download/details.aspx?id=49978 Microsoft .NET Framework 4.6.1 Paket Pengembang dan tambahkan baris kode ini dalam file Web.config
sumber
Bagi saya hanya membantu baris kode ini:
Assembly.Load("System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
sumber
Menghapus referensi pada Package Manager Nuget dan menambahkannya kembali memecahkan masalah bagi saya.
sumber