ความแตกต่างระหว่างทรัพยากรและทรัพยากรแบบฝังในแอปพลิเคชัน C # คืออะไร


89

ฉันควรใช้อย่างใดอย่างหนึ่งเมื่อใด

ฉันต้องการให้ไฟล์ทั้งหมดที่ฉันใช้ในแอพของฉัน (รูปภาพเสียงไฟล์ xml ฯลฯ ) อยู่ในไฟล์. exe ดังนั้นฉันจึงไม่ปรับใช้กับโฟลเดอร์และไฟล์มากมาย

ขอบคุณสำหรับข้อมูล.

คำตอบ:


83

การดำเนินการสร้าง "ทรัพยากร" และ "เนื้อหา" คือการเข้าถึงทรัพยากร WPF โดยใช้ Uris อย่างไรก็ตาม“ ทรัพยากรแบบฝัง” เป็นของเทคโนโลยีก่อนหน้า อย่างไรก็ตามทั้งสองอ็อพชันฝังทรัพยากรในแอสเซมบลี แต่อ็อพชัน“ ทรัพยากร” ที่จะใช้สำหรับ WPF

MSDN ให้คำอธิบายที่เต็มรูปแบบที่นี่


1
คุณถูก! ฉันตั้งค่าอิมเมจทั้งหมดในโปรเจ็กต์ WPF ของฉันเป็น Resource และสร้างซอร์สใหม่ ตอนนี้เมื่อฉันไปที่โฟลเดอร์ Debug ฉันไม่พบไฟล์ใด ๆ เลยไฟล์เหล่านั้นจะต้องเป็นส่วนหนึ่งของ. exe ตามที่ฉันต้องการ ขอบคุณไม่พอ! :)
Sergio Tapia

1
ลิงก์ MSDN เสีย คำอธิบายเพิ่มเติมที่นี่จะดีมาก
Michael Harris

9

WPF ทรัพยากร (สร้างการกระทำ = ทรัพยากร ) ยกระดับทรัพยากรที่ฝังตัวเป็นสนับสนุนโดยกรอบ NET หลัก แต่เพิ่มการสนับสนุนสำหรับการเข้าถึงทรัพยากรฝังผ่านแพ็ค URI จากMSDN :

ไฟล์รีซอร์ส WPF ไม่เหมือนกับชนิดของรีซอร์สแบบฝังหรือลิงก์ที่สามารถกำหนดคอนฟิกได้โดยใช้การสนับสนุน. NET Framework หลักสำหรับรีซอร์สแอสเซมบลี ในขณะที่ไฟล์รีซอร์ส WPF ใช้ประโยชน์จากการสนับสนุนทรัพยากรฝังตัว. NET Framework หลักความสามารถในการเข้าถึงไฟล์ทรัพยากร WPF โดยใช้ URI ของแพ็คนั้นง่ายกว่าการใช้เนมสเปซ


2

ตามรายงานของ MSDN

ทรัพยากรแบบฝังเป็นตัวเลือกที่ดีที่สุดหากคุณต้องแชร์ไฟล์ทรัพยากรแอปพลิเคชัน (.resx) ระหว่างหลายโครงการ ตัวอย่างเช่นหากคุณมีไฟล์ทรัพยากรทั่วไปที่มีโลโก้ของ บริษัท ของคุณข้อมูลเครื่องหมายการค้าและอื่น ๆ การใช้ทรัพยากรแบบฝังหมายความว่าคุณต้องคัดลอกเฉพาะไฟล์. resx ไม่ใช่ไฟล์ข้อมูลทรัพยากรที่เกี่ยวข้อง

คุณไม่สามารถแก้ไขทรัพยากรที่ฝังได้โดยตรง หากคุณพยายามแก้ไขทรัพยากรที่ฝังไว้คุณจะได้รับข้อความแจ้งให้คุณแปลงรายการเป็นทรัพยากรที่เชื่อมโยงเพื่อแก้ไข แนะนำให้ใช้การแปลง แต่เป็นทางเลือก คุณต้องส่งออกทำการปรับเปลี่ยนของคุณในโปรแกรมภายนอกจากนั้นนำเข้ากลับไปยังโครงการของคุณ


4
สิ่งนี้ไม่ตอบคำถาม: อะไรคือความแตกต่างระหว่างทรัพยากรฝังตัวและทรัพยากร? คุณตอบเฉพาะที่อยู่ Embedded Resources
Grokys

3
ข้อความของคำถามระบุว่า "ฉันควรใช้เมื่อใด"; ฉันคิดว่าฉันตอบไปว่า คำถามมีสองข้อจริงๆ
kiamlaluno

1

ขอบคุณสำหรับรายงานทั้งหมดที่ช่วยให้ฉันพบปัญหาได้อย่างแม่นยำมากขึ้น: สำหรับฉันมันเป็นภาพที่ใช้เป็นไอคอนโครงการในแถบงานที่สร้างขึ้นเป็นทรัพยากรและต้องสร้างเป็นเนื้อหา รูปภาพอื่น ๆ ทั้งหมดสามารถสร้างเป็นทรัพยากรได้ไม่มีปัญหา

หวังว่านี่จะช่วยในอนาคต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.