Tidak dapat memuat file atau rakitan '' atau salah satu dependensinya

Mohon bantuannya?

Saya hanya punya satu perpustakaan dan itu membuat saya gila. ini adalah kesalahan yang saya terima. Saya tidak menggunakan ketergantungan lainnya.

Could not load file or assembly 'FOD.Intranet.Lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=039c1f3a4c719e82' or one of its dependencies. The system cannot find the file specified. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.FileNotFoundException: Could not load file or assembly 'FOD.Intranet.Lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=039c1f3a4c719e82' or one of its dependencies. The system cannot find the file specified.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[FileNotFoundException: Could not load file or assembly 'FOD.Intranet.Lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=039c1f3a4c719e82' or one of its dependencies. The system cannot find the file specified.]
   NewCollection.VisualWebPart1.VisualWebPart1UserControl.TodaysNews() +0
   NewCollection.VisualWebPart1.VisualWebPart1UserControl.Page_Load(Object sender, EventArgs e) +52
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
   System.Web.UI.Control.OnLoad(EventArgs e) +132
   System.Web.UI.Control.LoadRecursive() +66
   System.Web.UI.Control.AddedControl(Control control, Int32 index) +350
   NewCollection.VisualWebPart1.VisualWebPart1.CreateChildControls() +155
   System.Web.UI.Control.EnsureChildControls() +146
   System.Web.UI.Control.PreRenderRecursiveInternal() +61
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Control.PreRenderRecursiveInternal() +224
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3394

person Imir Hoxha    schedule 06.12.2011    source sumber


Jawaban (8)


Untuk membuat Visual Studio menambahkan rakitan pihak ketiga atau bahkan rakitan Anda sendiri dari proyek lain sebagai solusi ke GAC, lakukan hal berikut:

  1. Buka Package.package dari folder Paket di proyek SharePoint.

  2. Klik Lanjutan di area bawah.

  3. Klik Tambah dan pilih jenis perakitan yang ingin Anda tambahkan.

  4. Dalam dialog pilih file dll, periksa GAC ​​atau BIN, tambahkan kontrol aman dan entri sumber daya kelas jika diperlukan. Klik Oke.

Majelis Anda akan dikemas ke WSP, didefinisikan dalam manifes dan disebarkan setiap saat.

person Oleg Savelyev    schedule 08.12.2011

Masalah Terpecahkan!

Saya mengira Visual Studio menyalin DLL ke GAC, namun ternyata tidak. Jadi saya menyalinnya ke sana secara manual dan berhasil.

Namun ada satu pertanyaan, apakah normal jika visual studio tidak menyalinnya ke GAC saat saya menerapkan aplikasi sharepoint?

Bagi yang ingin mengetahui cara menyalin dll ke GAC

ada dua cara untuk menyalin dll ke GAC:

  1. salin dll secara manual

    1. Open c:\windows\assembly directory in windows explorer
    2. Buka contoh lain dari windows explorer dan pergi ke tempat dll Anda berada, biasanya di folder bin. (jadi sekarang Anda akan memiliki dua jendela terbuka)
    3. pilih dll yang ingin Anda salin ke gac dan seret ke dalam direktori perakitan, c:\windows\assembly
  2. gunakan VS untuk menerapkannya bagi Anda ke GAC.

    1. in your sharepoint project double click on "Package".
    2. Paket. Paket akan terbuka. Lihat kiri bawah layar Anda dan klik "Lanjutan",
    3. lalu klik "Tambah", lalu pilih "Tambahkan Majelis dari keluaran proyek...".
    4. Di daftar tarik-turun Proyek sumber, pilih proyek, lalu klik OK.
    5. akhirnya terapkan solusinya dan dll akan ada di GAC.

Terima kasih atas dukungan Anda.

person Imir Hoxha    schedule 07.12.2011
comment
jika Anda ingin visual studio melakukan ini, pastikan Anda menyetel properti 'salin lokal' referensi ke true - person Daniël Tulp; 22.05.2014
comment
Catatan: Jangan pernah menyentuh folder Windows\Assembly, menyalinnya secara manual adalah IDE yang SANGAT BURUK. Gunakan gacutil /i untuk menginstal DLL dan gacutil /u untuk menghapusnya. /i mengambil path lengkap sementara /u mengambil nama dll tanpa ekstensi. - person David; 10.07.2014

Untuk rakitan yang tidak ada di GAC, dan yang dirujuk dalam build, terkadang kesalahan ini juga terjadi jika target platform tidak cocok. Jadi cocokkan jenis platform perakitan dengan yang digunakan.

masukkan deskripsi gambar di sini

person Giri    schedule 21.04.2016

Silakan coba untuk membatalkan referensi DLL lalu mereferensikannya lagi dan membangun kembali proyek Anda. Periksa juga untuk memastikan bahwa versinya cocok dengan apa yang ada di konfigurasi web proyek

person Community    schedule 06.12.2011
comment
Hai Lafama, terima kasih atas balasan Anda. Saya melakukan dereferensi dan mereferensikannya lagi tetapi tidak berhasil. Di webconfig apakah saya harus melihat perpustakaan kelas dll atau proyek yang menggunakan dll? Saya tidak menemukan referensi apa pun ke namespace FOD.Intranet.Lib ini di webconfig. - person Imir Hoxha; 07.12.2011

  • Apakah nomor versinya cocok?
  • Aneh rasanya melihat Anda mencoba memuat file .lib alih-alih dll. Mungkin Anda ingin memuat dll?
  • Untuk men-debug masalah seperti ini, coba Fusion Logging
  • Anda mengatakan Anda hanya menggunakan satu perpustakaan, tetapi perpustakaan itu mungkin memiliki beberapa dependensi yang tidak Anda sadari. Pertanyaan SO ini berkaitan dengan daftar dependensi dari rakitan .NET yang dikelola.
person dario_ramos    schedule 06.12.2011
comment
Hai Dario_ramos, Saya memuat dll tetapi nama rakitannya adalah FOD.Intranet.Lib.dll - person Imir Hoxha; 07.12.2011
comment
Kalau begitu, bukan itu masalahnya. Saya akan mencoba fusion logging - person dario_ramos; 07.12.2011
comment
Saya membuat perpustakaan demo yang memiliki metode tunggal yang menambahkan dua nomor bersama-sama dan saya mereferensikannya dari proyek sharepoint. Saya mendapat kesalahan yang sama seperti di atas. Sekarang, ketika saya menggunakan proyek asp.net, itu berfungsi dengan baik. itu tidak mengeluh tentang dll. - person Imir Hoxha; 07.12.2011
comment
Pasti ada yang salah dengan konfigurasi proyek Sharepoint Anda. Tidak tahu banyak tentang Sharepoint, tapi Anda mungkin ingin mempelajari cara kerja pencarian dll di Sharepoint - person dario_ramos; 07.12.2011
comment
Terima kasih Dario atas bantuan Anda. Saya akan memeriksanya lebih jauh tetapi itu membuat saya gila. - person Imir Hoxha; 07.12.2011
comment
Apakah Anda mencoba fusion logging? Karena ia mencatat semua upaya pemuatan perakitan .NET, ia akan memberi tahu Anda semua lokasi di mana Sharepoint mencoba menemukan dll, dan jika itu masalah ketergantungan, ia akan memberi tahu apa yang hilang. Validasi nama yang kuat, jika Anda menggunakannya, dapat menyebabkan masalah pemuatan juga. - person dario_ramos; 07.12.2011

Dengan asumsi Anda memiliki akses ke server SharePoint, coba yang berikut ini. Beberapa pemikiran acak dan tidak ada urutan tertentu.

  • Terapkan rakitan ke GAC atau salin dll ke folder bin aplikasi web Anda
  • Tambahkan info perakitan di bagian rakitan web.config Anda dan di bagian kontrol aman.
  • Jika Anda mengembangkan komponen web, pastikan untuk menambahkan referensinya di bagian kontrol aman komponen web (walaupun menurut saya ini bukan masalah Anda)
  • Menandatangani majelis dengan nama yang kuat mungkin membantu dalam beberapa kasus.
  • Jika Anda memiliki dependensi khusus maka Anda perlu melakukan langkah yang sama untuk semua dependensi (selain .net framework dan terkait SharePoint)

Apakah Anda mengembangkan proyek SharePoint Anda (maksud Anda komponen web?) menggunakan visual studio? Apakah Anda mereferensikannya dalam proyek SharePoint Anda? Anda perlu memberi kami detail lebih lanjut tentang lingkungan pengembangan Anda agar dapat menemukan masalahnya.

person Ken    schedule 06.12.2011

Jika Anda menggunakan kode Page.Load("control_path..."). pastikan file ascx sebenarnya yang Anda muat tidak memiliki arahan apa pun yang menyertakan perakitan dari pesan pengecualian Anda

<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
person Maks Matsveyeu    schedule 07.12.2011
comment
Hai Maks, Saya menggunakan pernyataan Impor di kontrol pengguna. Saya perlu mengakses perpustakaan dalam file .ascx. - person Imir Hoxha; 07.12.2011
comment
Jadi ini sebenarnya adalah ketergantungan. Anda harus memasukkan perpustakaan ini (FOD.Intranet.Lib) ke dalam solusinya. Tolong beri tahu saya jika Anda memerlukan bantuan untuk menambahkan rakitan khusus ke dalam wsp. - person Maks Matsveyeu; 07.12.2011
comment
Ketika saya menambahkan referensi ke Majelis, saya melihat bahwa Visual studio menyalinnya ke folder Bin dan saya melihatnya di folder referensi di visual studio. Apa yang saya lakukan salah? - person Imir Hoxha; 07.12.2011
comment
Silakan lihat artikel ini. blog.mastykarz.nl/ ia memiliki panduan langkah demi langkah bagaimana menambahkan perakitan ke sebuah paket. kasus Anda lebih sederhana. Anda harus menambahkan PERAKITAN YANG ADA, bukan KELUARAN PROYEK. dan periksa DEPLOYMENT TARGET ke GAC. Dan Anda tidak perlu menambahkan SafeControls. - person Maks Matsveyeu; 08.12.2011

bagi teman-teman yang masih menyelidiki masalah ini, satu hal yang perlu Anda ketahui adalah ada GACutil yang berbeda di luar sana, jadi Anda perlu memastikan bahwa Anda menggunakan GACUTIL yang benar untuk menerapkan DLL guna memperbaiki GAC

misalnya: jika dll saya mematuhi kerangka 3.5 .net dan versi OS saya adalah windows 64 bit maka itu akan berada di lokasi di bawah

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64

Berjuang selama 4 hari bodoh untuk memikirkan hal ini

person mps    schedule 18.09.2015