Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MSBuild bir .NET Core projesi derlediğinde, .resx dosya uzantısına sahip XML kaynak dosyaları ikili .resources dosyalarına dönüştürülür. İkili dosyalar derleyicinin çıktısına gömülür ve ResourceManager tarafından okunabilir. Bu makalede, MSBuild'in her .resources dosyası için nasıl bir ad seçtiği açıklanmaktadır.
Tavsiye
Proje dosyanıza açıkça bir kaynak öğesi eklerseniz ve bu öğe .NET Core'un varsayılan ekleme glob'ları ile de dahil edilirse, bir derleme hatası alırsınız. Kaynak dosyalarını EmbeddedResource öğe olarak manuel eklemek için EnableDefaultEmbeddedResourceItems özelliğini false olarak ayarlayın.
Varsayılan ad
.NET Core 3.0 ve sonraki sürümlerinde, aşağıdaki koşulların her ikisi de karşılandığında kaynak bildiriminin varsayılan adı kullanılır:
- Kaynak dosyası, proje dosyasına ,
EmbeddedResourceveyaLogicalNamemeta veri içerenManifestResourceNamebirDependentUponöğe olarak açıkça eklenmez. -
EmbeddedResourceUseDependentUponConventionözelliği proje dosyasındafalseolarak belirtilmemiştir. Varsayılan olarak, bu özellik olaraktrueayarlanır. Daha fazla bilgi için bkz EmbeddedResourceUseDependentUponConvention.
Kaynak dosya aynı kök dosya adında bir kaynak dosya (.cs veya .vb) ile birlikte bulunursa, bildirim dosyası adı için kaynak dosyada tanımlanan ilk türün tam adı kullanılır. Örneğin, MyNamespace.Form1 tanımlanan ilk türse ve Form1.csForm1.resx ile birlikte bulunursa, bu kaynak dosyası için oluşturulan bildirim adı MyNamespace.Form1.resources olur.
LogicalName meta verileri
Kaynak dosyası, EmbeddedResource meta verisi içeren bir LogicalName öğe olarak proje dosyasına açıkça dahil edilirse, LogicalName değeri bildirim adı olarak kullanılır.
LogicalName diğer meta veriler veya ayarlardan önceliklidir.
Örneğin, aşağıdaki proje dosyası kod parçacığında tanımlanan kaynak dosyasının bildirim adı SomeName.resources şeklindedir.
<EmbeddedResource Include="X.resx" LogicalName="SomeName.resources" />
-veya-
<EmbeddedResource Include="X.fr-FR.resx" LogicalName="SomeName.resources" />
Uyarı
Belirtilmezse
LogicalName, dosya adında iki nokta (EmbeddedResource) bulunan bir.çalışmaz, buGetManifestResourceNamesda bu dosyayı döndürmez.Aşağıdaki örnek düzgün çalışır:
<EmbeddedResource Include="X.resx" />Aşağıdaki örnek çalışmıyor:
<EmbeddedResource Include="X.fr-FR.resx" />
ManifestResourceName meta verileri
Kaynak dosyası, meta veri içeren bir EmbeddedResource öğesi olarak açıkça proje dosyasına dahil edilirse (ve ManifestResourceName yoksa), LogicalName değeri, dosya uzantısı olarak ManifestResourceName ile birleştirilerek bildirim dosyası adı olarak kullanılır.
Örneğin, aşağıdaki proje dosyası kod parçacığında tanımlanan kaynak dosyasının bildirim adı SomeName.resources şeklindedir.
<EmbeddedResource Include="X.resx" ManifestResourceName="SomeName" />
Aşağıdaki proje dosyası kod parçacığında tanımlanan kaynak dosyasının bildirim adı SomeName.fr-FR.resources.
<EmbeddedResource Include="X.fr-FR.resx" ManifestResourceName="SomeName.fr-FR" />
DependentUpon meta verileri
Bir kaynak dosyası, meta verisi EmbeddedResource olan bir DependentUpon öğesi olarak proje dosyasına açıkça dahil edilirse (ve LogicalName ve ManifestResourceName yoksa), DependentUpon tarafından tanımlanan kaynak dosyasındaki bilgiler, kaynak bildirim dosyası adı için kullanılır. Özellikle, kaynak dosyada tanımlanan ilk türün adı bildirim adında aşağıdaki gibi kullanılır: Namespace.Classname[. Kültür].resources.
Örneğin, aşağıdaki proje dosyası kod parçacığında tanımlanan kaynak dosyasının bildirim adı Namespace.Classname.resources 'tır (burada Namespace.ClassnameMyTypes.cs'de tanımlanan ilk sınıftır).
<EmbeddedResource Include="X.resx" DependentUpon="MyTypes.cs">
Aşağıdaki proje dosyası kod parçacığında tanımlanan kaynak dosyasının bildirim adı Namespace.Classname'dir.fr-FR.resources (burada Namespace.ClassnameMyTypes.cs'de tanımlanan ilk sınıftır).
<EmbeddedResource Include="X.fr-FR.resx" DependentUpon="MyTypes.cs">
EmbeddedResourceUseDependentUponConvention özelliği
Proje dosyasında EmbeddedResourceUseDependentUponConvention değeri false olarak ayarlandığında, her kaynak bildirim dosyasının adı, projenin kök ad alanı ve proje kökünden .resx dosyasına olan göreli yol temel alınarak oluşturulur. Daha açık belirtmek gerekirse, oluşturulan kaynak bildirim dosyası adı RootNamespace.RelativePathWithDotsForSlashes.[Kültür.]resources şeklindedir. Bu, 3.0'ın önceki .NET Core sürümlerinde bildirim adları oluşturmak için de kullanılan mantıktır.
Uyarı
- Tanımlanmamışsa
RootNamespace, varsayılan olarak proje adını kullanır. - Proje dosyasındaki bir
LogicalNameöğe için ,ManifestResourceNameveyaDependentUponmeta veriler belirtilirseEmbeddedResource, bu adlandırma kuralı bu kaynak dosyasına uygulanmaz.