Bir C # uygulamasında Kaynak ile Gömülü Kaynak arasındaki fark nedir?


89

Birini veya diğerini ne zaman kullanmalıyım?

Uygulamamda kullandığım tüm dosyaların (resimler, ses, xml dosyası, vb.) .Exe dosyasının içinde olmasını istiyorum, böylece bir sürü klasör ve dosyayla dağıtmam.

Bilgi için teşekkürler.

Yanıtlar:


83

"Kaynak" ve "İçerik" oluşturma eylemleri, Uris'i kullanarak WPF kaynaklarına erişmektir. Ancak "Gömülü Kaynak" önceki teknolojiler içindir. Ancak her iki seçenek de kaynağı derlemeye yerleştirir ancak WPF için kullanılacak "Kaynak" seçeneği.

MSDN burada tam açıklama sağlar .


1
Haklısın! WPF projemdeki tüm görüntüleri Kaynak olarak ayarladım ve kaynağı yeniden oluşturdum. Şimdi Debug klasörüne gittiğimde, dosyaları hiçbir yerde bulamıyorum, tam olarak istediğim gibi .exe'nin bir parçası olmalılar. Yeterince teşekkür edemem! :)
Sergio Tapia

1
MSDN bağlantısı kesildi. Buradaki ek açıklama çok iyi olurdu.
Michael Harris

9

Bir WPF kaynağı (derleme eylemi = Kaynak ), çekirdek .NET çerçevesi tarafından desteklenen gömülü kaynakları kullanır, ancak bir paket URI'si aracılığıyla katıştırılmış kaynağa erişim desteği ekler . Gönderen MSDN :

WPF kaynak dosyaları, derleme kaynakları için çekirdek .NET Framework desteği kullanılarak yapılandırılabilen katıştırılmış veya bağlantılı kaynak türleriyle aynı değildir. WPF kaynak dosyaları çekirdek .NET Framework yerleşik kaynak desteğinden yararlanırken, paket URI'leri kullanarak WPF kaynak dosyalarına erişme yeteneği ad alanlarını kullanmaktan daha kolaydır.


2

MSDN tarafından bildirildiği üzere,

Uygulama kaynak (.resx) dosyalarını birden çok proje arasında paylaşmanız gerekiyorsa, gömülü kaynaklar en iyi seçimdir. Örneğin, şirketinizin logolarını, ticari marka bilgilerini vb. İçeren ortak bir kaynak dosyanız varsa, gömülü kaynakları kullanmak, ilişkili kaynak veri dosyalarını değil, yalnızca .resx dosyasını kopyalamanız gerektiği anlamına gelir.

Gömülü kaynakları doğrudan düzenleyemezsiniz. Gömülü bir kaynağı düzenlemeye çalışırsanız, öğeyi düzenlemek için bağlantılı bir kaynağa dönüştürmenizi isteyen bir mesaj alırsınız. Dönüştürme önerilir ancak isteğe bağlıdır. Bunları dışa aktarmalı, değişikliklerinizi harici bir programda yapmalı ve ardından projenize geri aktarmalısınız.


4
Bu, şu soruyu yanıtlamaz: Gömülü bir kaynak ile bir kaynak arasındaki fark nedir? Yalnızca Gömülü Kaynaklar adreslerini yanıtlarsınız.
Grokys

3
Soru metni "Ne zaman birini veya diğerini kullanmalıyım?" Diyor; Sanırım buna cevap verdim. Sorular gerçekten iki.
kiamlaluno

1

Sorunun nerede olduğunu daha kesin bir şekilde bulmama yardımcı olan tüm raporlar için teşekkürler: Benim için, kaynak olarak oluşturulan ve içerik olarak oluşturulması gereken görev çubuğunda proje simgesi olarak kullanılan resimlerdi . Diğer tüm görüntüler kaynak olarak oluşturulabilir, sorun değil.

Umarım bu gelecekte yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.