Dalam Visual Studio, ketika menambahkan satu referensi ke proyek, jendela properti memiliki opsi Embed Inteop Types
, haruskah kita mengaturnya ke True
atau False
? Apa bedanya?
Karena kami memiliki banyak proyek, di antaranya, referensi ditetapkan False
, yang lain ditetapkan True
, itu benar-benar kacau. Dan server bulid juga memiliki peringatan yang sama:
Apa yang dimaksud dengan "referensi dibuat untuk perakitan interop tertanam"?
Jadi kami berencana untuk mengubah semua Embed Inteop Types
menjadi False
, risiko apa yang akan kami dapatkan?
c#
visual-studio
Jerry Bian
sumber
sumber
false
atau tidak pernah mengubahnya (misalnya jika defaultfalse
sudah)?Jawaban:
Opsi ini diperkenalkan untuk menghilangkan kebutuhan untuk menyebarkan PIA yang sangat besar (Sidang Interop Primer) untuk interop.
Ini hanya menyematkan kode penghubung terkelola yang digunakan yang memungkinkan Anda untuk berbicara dengan rakitan yang tidak dikelola, tetapi alih-alih menyematkannya semua itu hanya membuat hal-hal yang benar-benar Anda gunakan dalam kode.
Baca lebih lanjut di posting blog Scott Hanselman tentang itu dan perbaikan VS lainnya di sini .
Baik disarankan atau tidak, saya tidak yakin karena saya tidak perlu menggunakan fitur ini. Pencarian web cepat menghasilkan beberapa petunjuk:
Satu-satunya risiko mengubah semuanya menjadi salah adalah masalah penerapan yang lebih besar dengan file PIA dan penerapan yang lebih besar jika beberapa file tersebut berukuran besar.
sumber
Saya perhatikan bahwa ketika disetel ke false, saya dapat melihat nilai item menggunakan debugger. Ketika disetel ke true, saya mendapatkan kesalahan - item.FullName.GetValue Jenis interop tertanam 'FullName' tidak berisi definisi untuk 'QBFC11Lib.IItemInventoryRet' karena tidak digunakan dalam rakitan yang dikompilasi. Pertimbangkan mentransmisikan ke objek atau mengubah properti 'Jenis Interop Sematan' menjadi benar.
sumber