Apa perbedaan antara Sumber Daya dan Sumber Daya Tertanam dalam aplikasi C #?


89

Kapan saya harus menggunakan satu atau yang lain?

Saya ingin semua file yang saya gunakan di aplikasi saya (gambar, suara, file xml, dll.) Berada di dalam file .exe jadi saya tidak menerapkannya dengan banyak folder dan file.

Terimakasih atas infonya.

Jawaban:


83

Tindakan membangun "Sumber Daya" dan "Konten" adalah untuk mengakses sumber daya WPF menggunakan Uris. Namun "Sumber Daya Tertanam" adalah untuk teknologi sebelumnya. Namun kedua opsi menyematkan sumber daya dalam rakitan tetapi opsi "Sumber Daya" untuk digunakan untuk WPF.

MSDN memberikan penjelasan lengkapnya di sini .


1
Kamu benar! Saya mengatur semua gambar dalam proyek WPF saya ke Sumber Daya dan membangun kembali sumbernya. Sekarang ketika saya menavigasi ke folder Debug, saya tidak dapat menemukan file di mana pun, mereka harus menjadi bagian dari .exe, persis seperti yang saya inginkan. Tidak bisa cukup berterima kasih! :)
Sergio Tapia

1
Tautan MSDN rusak. Penjelasan tambahan di sini akan sangat bagus.
Michael Harris

9

Sumber daya WPF (build action = Resource ) memanfaatkan sumber daya yang disematkan yang didukung oleh kerangka kerja .NET inti, tetapi menambahkan dukungan untuk mengakses sumber daya yang disematkan melalui URI paket . Dari MSDN :

File sumber daya WPF tidak sama dengan jenis sumber daya yang disematkan atau ditautkan yang dapat dikonfigurasi menggunakan dukungan .NET Framework inti untuk sumber daya perakitan. Meskipun file sumber daya WPF memanfaatkan dukungan sumber daya inti .NET Framework yang disematkan, kemampuan untuk mengakses file sumber daya WPF menggunakan URI paket lebih mudah daripada menggunakan ruang nama.


2

Seperti dilansir MSDN,

Sumber daya yang disematkan adalah pilihan terbaik jika Anda harus berbagi file sumber daya aplikasi (.resx) di antara beberapa proyek. Misalnya, jika Anda memiliki file sumber daya umum yang berisi logo perusahaan Anda, informasi merek dagang, dan semacamnya, menggunakan sumber daya yang disematkan berarti Anda harus menyalin hanya file .resx dan bukan file data sumber daya terkait.

Anda tidak dapat mengedit sumber daya yang disematkan secara langsung. Jika Anda mencoba mengedit sumber daya yang disematkan, Anda akan menerima pesan yang meminta Anda untuk mengonversi item ke sumber daya yang ditautkan untuk mengeditnya. Konversi direkomendasikan tetapi opsional. Anda harus mengekspornya, membuat modifikasi Anda di program eksternal, lalu mengimpornya kembali ke proyek Anda.


4
Ini tidak menjawab pertanyaan: apa perbedaan antara sumber daya yang disematkan dan sumber daya? Anda hanya menjawab alamat Sumber Daya Tertanam.
Grokys

3
Teks pertanyaan mengatakan "Kapan saya harus menggunakan satu atau yang lain?"; Saya pikir saya menjawab itu. Pertanyaannya sebenarnya ada dua.
kiamlaluno

1

Terima kasih atas semua laporan, yang membantu saya menemukan lebih tepat di mana masalahnya: Bagi saya, gambar yang digunakan sebagai ikon proyek di bilah tugas yang dibuat sebagai sumber daya dan harus dibuat sebagai konten. Semua gambar lainnya dapat dibuat sebagai sumber daya, tidak masalah.

Semoga ini bisa membantu untuk masa depan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.