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.
.txt ve .resx (XML tabanlı kaynak biçimi) dosyaları ile çalışma zamanı ikili yürütülebilir dosyasına katıştırılmış veya uydu derlemelerine derlenmiş ortak dil çalışma zamanı ikili .resources dosyaları arasında dönüştürür. Bu görev genellikle .txt veya .resx dosyaları .resources dosyalara dönüştürmek için kullanılır.
GenerateResource görevi işlevsel olarak resgen.exebenzer.
Dikkat
.resx dosyalarındaki kaynaklar, güvenli olmayan BinaryFormatterkullanılarak seri hale getirilebilir. Derleme işleminize yalnızca güvendiğiniz .resx dosyaları ekleyin.
Parametre
Aşağıdaki tabloda GenerateResource görevinin parametreleri açıklanmaktadır.
| Parametre | Açıklama |
|---|---|
AdditionalInputs |
İsteğe bağlı ITaskItem[] parametresi.Bu görev tarafından yapılan bağımlılık denetimine ek girişler içerir. Örneğin, proje ve hedef dosyaları genellikle girişler olmalıdır, böylece bunlar güncelleştirilirse tüm kaynaklar yeniden oluşturulur. |
EnvironmentVariables |
İsteğe bağlı String[] parametresi.Normal ortam bloğuna ek olarak (veya seçmeli olarak geçersiz kılma) resgen.exeortam değişkenlerinin ad-değer çiftleri dizisini belirtir. |
ExcludedInputPaths |
İsteğe bağlı ITaskItem[] parametresi.Güncel denetim sırasında izlenen girişlerin yoksayılacağı yolları belirten bir öğe dizisini belirtir. |
ExecuteAsTool |
İsteğe bağlı Boolean parametresi.true, gerekli sarmalayıcı derlemelerini oluşturmak için uygun hedef çerçeveden tlbimp.exe ve aximp.exe çalıştırır. Bu parametre, ResolveComReferencesbirden çok hedeflenmesine izin verir. |
FilesWritten |
İsteğe bağlı ITaskItem[] çıkış parametresi.Varsa önbellek dosyası da dahil olmak üzere diske yazılan tüm dosyaların adlarını içerir. Bu parametre Clean uygulamaları için kullanışlıdır. |
MinimalRebuildFromTracking |
İsteğe bağlı Boolean parametresi.İzlenen artımlı derlemenin kullanılıp kullanılmayacağını belirten bir anahtar alır veya ayarlar. trueise artımlı derleme açıktır; aksi takdirde, yeniden oluşturma zorlanır. |
NeverLockTypeAssemblies |
İsteğe bağlı Boolean parametresi.Kaynak ( .resx) dosyalarını (true) değerlendirmek veya yeni bir AppDomain oluşturmak için yalnızca kaynak dosyaları bir kullanıcının derlemesine başvurduğunda (false) yeni bir AppDomain oluşturulacağını belirten bir Boole değeri alır veya ayarlar. |
OutputResources |
İsteğe bağlı ITaskItem[] çıkış parametresi.Oluşturulan dosyaların adını ( .resources dosyaları gibi) belirtir. Bir ad belirtmezseniz, eşleşen giriş dosyasının adı kullanılır ve oluşturulan .resources dosyası giriş dosyasını içeren dizine yerleştirilir. |
PublicClass |
İsteğe bağlı Boolean parametresi.trueise, ortak sınıf olarak kesin olarak belirlenmiş bir kaynak sınıfı oluşturur. |
References |
İsteğe bağlı String[] parametresi..resx dosyalarındaki türleri yükleme başvuruları.
.resx dosya veri öğelerinin .NET türü olabilir.
.resx dosyası okunduğunda, bu tür çözümlenmelidir. Genellikle, standart tür yükleme kuralları kullanılarak başarıyla çözümlenir.
Referencesiçinde derlemeler sağlarsanız, bunlar önceliklidir.Bu parametre, kesin olarak yazılan kaynaklar için gerekli değildir. |
SdkToolsPath |
İsteğe bağlı String parametresi.resgen.exegibi SDK araçlarının yolunu belirtir. |
Sources |
Gerekli ITaskItem[] parametresi.Dönüştürülecek öğeleri belirtir. Bu parametreye geçirilen öğeler aşağıdaki dosya uzantılarından birine sahip olmalıdır: - .txt: Dönüştürülecek metin dosyasının uzantısını belirtir. Metin dosyaları yalnızca dize kaynaklarını içerebilir.- .resx: Dönüştürülecek XML tabanlı kaynak dosyasının uzantısını belirtir.- .restext: .txtile aynı biçimi belirtir. Bu farklı uzantı, derleme işleminizdeki diğer kaynak dosyalardan kaynak içeren kaynak dosyaları net bir şekilde ayırt etmek istiyorsanız kullanışlıdır.- .resources: Dönüştürülecek kaynak dosyasının uzantısını belirtir. |
StateFile |
İsteğe bağlı ITaskItem parametresi..resx giriş dosyalarındaki bağlantıların bağımlılık denetimini hızlandırmak için kullanılan isteğe bağlı bir önbellek dosyasının yolunu belirtir. |
StronglyTypedClassName |
İsteğe bağlı String parametresi.Kesin olarak yazılan kaynak sınıfı için sınıf adını belirtir. Bu parametre belirtilmezse kaynak dosyasının temel adı kullanılır. |
StronglyTypedFilename |
İsteğe bağlı ITaskItem parametresi. Kaynak dosyanın dosya adını belirtir. Bu parametre belirtilmezse, sınıfın adı temel dosya adı olarak kullanılır ve uzantı dile bağımlıdır. Örneğin: MyClass.cs. |
StronglyTypedLanguage |
İsteğe bağlı String parametresi.Kesin olarak türü belirlenmiş kaynak için sınıf kaynağı oluşturulurken kullanılacak dili belirtir. Bu parametre CodeDomProvider tarafından kullanılan dillerden biriyle tam olarak eşleşmelidir. Örneğin: VB veya C#.Bu parametreye bir değer geçirerek, göreve kesin olarak belirlenmiş kaynaklar oluşturmasını bildirirsiniz. |
StronglyTypedManifestPrefix |
İsteğe bağlı String parametresi.Kesin olarak türü belirlenmiş kaynak için oluşturulan sınıf kaynağında kullanılacak kaynak ad alanını veya bildirim ön ekini belirtir. |
StronglyTypedNamespace |
İsteğe bağlı String parametresi.Kesin olarak türü belirlenmiş kaynak için oluşturulan sınıf kaynağı için kullanılacak ad alanını belirtir. Bu parametre belirtilmezse, kesin olarak yazılan kaynaklar genel ad alanında yer alır. |
TLogReadFiles |
İsteğe bağlı ITaskItem[] salt okunur parametresi.Okuma izleme günlüklerini temsil eden bir öğe dizisi alır. |
TLogWriteFiles |
İsteğe bağlı ITaskItem[] salt okunur parametresi.Yazma izleme günlüklerini temsil eden bir öğe dizisi alır. |
ToolArchitecture |
İsteğe bağlı System.String parametresi. ResGen.exeTracker.exe kullanılması gerekip gerekmediğini belirlemek için kullanılır. ExecutableType numaralandırmasının bir üyesine ayrıştırılabilir olmalıdır. String.Emptyise, varsayılan mimariyi belirlemek için buluşsal bir yöntem kullanır.
Microsoft.Build.Utilities.ExecutableType numaralandırmasının bir üyesine ayrıştırılabilir olmalıdır. |
TrackerFrameworkPath |
İsteğe bağlı String parametresi.FileTracker.dlliçeren uygun .NET Framework konumunun yolunu belirtir. Ayarlanırsa, kullanıcı, geçirdiğini FileTracker.dll bit değerinin kullanmayı amaçladıkları ResGen.exe bitlik değeriyle eşleştiğinden emin olma sorumluluğunu alır. Ayarlanmamışsa, görev geçerli .NET Framework sürümüne göre uygun konumu belirler. |
TrackerLogDirectory |
İsteğe bağlı String parametresi.Bu görevi çalıştıran izleme günlüklerinin yerleştirileceği ara dizini belirtir. |
TrackerSdkPath |
İsteğe bağlı String parametresi.Tracker.exeiçeren uygun Windows SDK konumunun yolunu belirtir. Ayarlanırsa, kullanıcı, geçirdiğini Tracker.exe bit değerinin kullanmayı amaçladıkları ResGen.exe bitlik değeriyle eşleştiğinden emin olma sorumluluğunu alır. Ayarlanmamışsa, görev geçerli Windows SDK'sını temel alarak uygun konumu belirler. |
TrackFileAccess |
İsteğe bağlı Boolean parametresi. True ise, giriş dosyasının dizini göreli dosya yollarını çözümlemek için kullanılır. |
UsePreserializedResources |
İsteğe bağlı Boolean parametresi.trueise, .NET Core veya .NET 5 veya sonraki sürümlerinde desteklenmeyen ResourceWriteryerine Dize olmayan kaynakların PreserializedResourceWriter kullanılarak seri hale getirileceklerini belirtir. |
UseSourcePath |
İsteğe bağlı Boolean parametresi.trueise, göreli dosya yollarını çözümlemek için giriş dosyasının dizininin kullanılacağını belirtir. |
Açıklamalar
.resx dosyalar diğer kaynak dosyalarına bağlantılar içerebileceğinden, çıktıların güncel olup olmadığını görmek için .resx ve .resources dosya zaman damgalarını karşılaştırmak yeterli değildir. Bunun yerine, GenerateResource görevi .resx dosyalarındaki bağlantıları izler ve bağlı dosyaların zaman damgalarını da denetler. Bu, GenerateResource görevi içeren hedefte genellikle Inputs ve Outputs öznitelikleri kullanmamanız gerektiği anlamına gelir; çünkü bu, gerçekten çalışması gerektiğinde atlanması gerekebileceği anlamına gelir.
Yukarıda listelenen parametrelere ek olarak, bu görev parametreleri Task sınıfından devralan TaskExtension sınıfından devralır. Bu ek parametrelerin ve açıklamalarının listesi için bkz. TaskExtension temel sınıfı.
.NET 3.5 projelerini hedeflemek için MSBuild 4.0 kullanırken derleme x86 kaynaklarında başarısız olabilir. Bu sorunu geçici olarak çözmek için hedefi AnyCPU derlemesi olarak oluşturabilirsiniz.
parametre UsePreserializedResources değerini normal .NET derleme işlemindeki özellik $(GenerateResourceUsePreserializedResources) alır. Bu özellik, .NET Core projelerinde ve .NET 5 veya üzerini kullanan projelerde varsayılan olarak true olarak ayarlanır. .NET SDK'sının dize dışı kaynaklar kullanan .NET Framework 4.6.1 veya sonraki sürümleri hedefleyen projeler oluşturmasına izin vermek için $(GenerateResourceUsePreserializedResources)true olarak ayarlayabilirsiniz. Derleme System.Resources.Extensions çalışma zamanında kullanılabilir olmalıdır. .NET Core 3.0 ve üzeri ile .NET 5 ve üzeri sürümlerde kullanılabilir ve PackageReference aracılığıyla .NET Framework 4.6.1 veya sonraki sürümlerinde kullanılabilir.|
Örnek
Aşağıdaki örnek, Resx öğe koleksiyonu tarafından belirtilen dosyalardan .resources dosyaları oluşturmak için GenerateResource görevini kullanır.
<GenerateResource
Sources="@(Resx)"
OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
<Output
TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>
GenerateResource görevi, bir <EmbeddedResource> öğesinin <LogicalName> meta verilerini kullanarak bir derlemeye eklenmiş olan kaynağı adlandırın.
Derlemenin myAssembly olarak adlandırıldığını varsayarsak, aşağıdaki kod someQualifier.someResource.resourcesadlı ekli bir kaynak oluşturur:
<ItemGroup>
<EmbeddedResource Include="myResource.resx">
<LogicalName>someQualifier.someResource.resources</LogicalName>
<WithCulture>false</WithCulture>
</EmbeddedResource>
</ItemGroup>
<LogicalName> meta verileri olmadan, kaynak myAssembly.myResource.resourcesolarak adlandırılır. Bu örnek yalnızca Visual Basic ve Visual C# derleme işlemi için geçerlidir.