Bagikan melalui


Tugas GenerateResource

Mengonversi antara .txt dan .resx (format sumber daya berbasis XML) dan file biner .resources runtime bahasa umum yang dapat disematkan dalam runtime biner yang dapat dieksekusi atau dikompilasi ke dalam rakitan satelit. Tugas ini biasanya digunakan untuk mengonversi .txt file atau .resx ke .resources file. Tugas GenerateResource ini secara fungsional mirip dengan resgen.exe.

Perhatian

Sumber daya dalam file dapat diserialisasikan .resx menggunakan BinaryFormatter, yang tidak aman. Sertakan hanya file tersebut .resx dalam proses build yang Anda percayai.

Parameter

Tabel berikut ini menjelaskan parameter tugas GenerateResource.

Parameter Deskripsi
AdditionalInputs Parameter ITaskItem[] opsional.

Berisi input tambahan untuk pemeriksaan dependensi yang dilakukan oleh tugas ini. Misalnya, file proyek dan target biasanya harus berupa input, sehingga jika diperbarui, semua sumber daya diregenerasi.
EnvironmentVariables Parameter String[] opsional.

Menentukan array pasangan nilai nama variabel lingkungan yang harus diteruskan ke resgen.exeyang ditelurkan, selain (atau secara selektif menimpa) blok lingkungan reguler.
ExcludedInputPaths Parameter ITaskItem[] opsional.

Menentukan array item yang menentukan jalur dari mana input terlacak akan diabaikan selama pemeriksaan Terbaru.
ExecuteAsTool Parameter Boolean opsional.

Jika true, berjalan tlbimp.exe dan aximp.exe dari kerangka kerja target yang sesuai di luar proc untuk menghasilkan rakitan pembungkus yang diperlukan. Parameter ini memungkinkan multi-penargetan ResolveComReferences.
FilesWritten Parameter output ITaskItem[] opsional.

Berisi nama semua file yang ditulis ke disk. Ini termasuk file cache, jika ada. Parameter ini berguna untuk implementasi Clean.
MinimalRebuildFromTracking Parameter Boolean opsional.

Mendapatkan atau mengatur sakelar yang menentukan apakah build inkremental yang dilacak akan digunakan. Jika true, build inkremental diaktifkan; jika tidak, pembangunan ulang akan dipaksa.
NeverLockTypeAssemblies Parameter Boolean opsional.

Mendapatkan atau menetapkan nilai Boolean yang menentukan apakah akan membuat AppDomain baru untuk mengevaluasi file sumber daya (.resx) (true) atau membuat AppDomain baru hanya saat file sumber daya mereferensikan rakitan pengguna (false).
OutputResources Parameter output ITaskItem[] opsional.

Menentukan nama file yang dihasilkan, seperti .resources file. Jika Anda tidak menentukan nama, nama file input yang cocok digunakan dan .resources file yang dibuat ditempatkan di direktori yang berisi file input.
PublicClass Parameter Boolean opsional.

Jika true, membuat kelas sumber daya yang ditik dengan kuat sebagai kelas publik.
References Parameter String[] opsional.

Referensi untuk memuat jenis dalam .resx file dari. .resx elemen data file mungkin memiliki jenis .NET. Ketika file .resx dibaca, jenis ini harus diselesaikan. Biasanya, ini berhasil diselesaikan dengan menggunakan aturan pemuatan jenis standar. Jika Anda memberikan assembly di References, mereka diutamakan.

Parameter ini tidak diperlukan untuk sumber daya yang ditik dengan kuat.
SdkToolsPath Parameter String opsional.

Menentukan jalur ke alat SDK, seperti resgen.exe.
Sources Parameter ITaskItem[] wajib.

Menentukan item yang akan dikonversi. Item yang diteruskan ke parameter ini harus memiliki salah satu ekstensi file berikut:

- .txt: Menentukan ekstensi untuk file teks yang akan dikonversi. File teks hanya dapat berisi sumber daya string.
- .resx: Menentukan ekstensi untuk file sumber daya berbasis XML yang akan dikonversi.
- .restext: Menentukan format yang sama dengan .txt. Ekstensi yang berbeda ini berguna jika Anda ingin membedakan file sumber dengan jelas yang berisi sumber daya dari file sumber lain dalam proses build Anda.
- .sumber daya: Menentukan ekstensi untuk file sumber daya yang akan dikonversi.
StateFile Parameter ITaskItem opsional.

Menentukan jalur ke file cache opsional yang digunakan untuk mempercepat pemeriksaan dependensi tautan dalam file input .resx.
StronglyTypedClassName Parameter String opsional.

Menentukan nama kelas untuk kelas sumber daya yang ditik dengan kuat. Jika parameter ini tidak ditentukan, nama dasar file sumber daya digunakan.
StronglyTypedFilename Parameter ITaskItem opsional.

Menentukan nama file untuk file sumber. Jika parameter ini tidak ditentukan, nama kelas digunakan sebagai nama file dasar, dengan ekstensi tergantung pada bahasa. Misalnya: MyClass.cs.
StronglyTypedLanguage Parameter String opsional.

Menentukan bahasa yang akan digunakan saat menghasilkan sumber kelas untuk sumber daya yang ditik dengan kuat. Parameter ini harus sama persis dengan salah satu bahasa yang digunakan oleh CodeDomProvider. Sebagai contoh: VB atau C#.

Dengan meneruskan nilai ke parameter ini, Anda menginstruksikan tugas untuk menghasilkan sumber daya yang sangat di ketik.
StronglyTypedManifestPrefix Parameter String opsional.

Menentukan namespace sumber daya atau awalan manifes yang akan digunakan di sumber kelas yang dihasilkan untuk sumber daya yang diketik dengan kuat.
StronglyTypedNamespace Parameter String opsional.

Menentukan namespace yang akan digunakan untuk sumber kelas yang dihasilkan untuk sumber daya yang di ketik dengan kuat. Jika parameter ini tidak ditentukan, sumber daya yang sangat di ketik berada di namespace global.
TLogReadFiles Opsional ITaskItem[] parameter bersifat hanya-baca.

Mendapatkan array item yang mewakili log pelacakan baca.
TLogWriteFiles Opsional ITaskItem[] parameter bersifat hanya-baca.

Mendapatkan array item yang mewakili log pelacakan baca.
ToolArchitecture Parameter System.String opsional.

Digunakan untuk menentukan apakah Tracker.exe perlu digunakan untuk menelurkan ResGen.exe.

Harus dapat diurai ExecutableType untuk anggota enumerasi. Jika String.Empty, menggunakan heuristik untuk menentukan arsitektur default. Harus dapat diurai ke anggota enumerasi Microsoft.Build.Utilities.ExecutableType.
TrackerFrameworkPath Parameter String opsional.

Menentukan jalur ke lokasi .NET Framework yang sesuai yang berisi FileTracker.dll.

Jika diatur, pengguna bertanggung jawab untuk memastikan bahwa bitness FileTracker.dll bahwa mereka lulus cocok dengan bitness ResGen.exe yang ingin mereka gunakan. Jika tidak diatur, tugas memutuskan lokasi yang sesuai berdasarkan versi .NET Framework saat ini.
TrackerLogDirectory Parameter String opsional.

Menentukan direktori perantara tempat log pelacakan menjalankan tugas ini akan ditempatkan.
TrackerSdkPath Parameter String opsional.

Menentukan jalur ke lokasi SDK Windows yang sesuai yang berisi Tracker.exe.

Jika diatur, pengguna bertanggung jawab untuk memastikan bahwa bitness FileTracker.dll bahwa mereka lulus cocok dengan bitness ResGen.exe yang ingin mereka gunakan. Jika tidak diatur, tugas memutuskan lokasi yang sesuai berdasarkan versi .NET Framework saat ini.
TrackFileAccess Parameter Boolean opsional.

Jika true, direktori file input digunakan untuk menyelesaikan jalur file relatif.
UsePreserializedResources Parameter Boolean opsional.

Jika true, menentukan bahwa sumber daya non-String akan diserialisasikan menggunakan PreserializedResourceWriter alih-alih ResourceWriter, yang tidak didukung pada .NET Core atau .NET 5 atau yang lebih baru.
UseSourcePath Parameter Boolean opsional.

Jika true, menentukan bahwa direktori file input akan digunakan untuk menyelesaikan jalur file relatif.

Keterangan

Karena .resx file mungkin berisi tautan ke file sumber daya lain, tidak cukup untuk hanya membandingkan .resx dan .resources tanda waktu file untuk melihat apakah output sudah diperbarui. Sebaliknya, GenerateResource tugas mengikuti tautan dalam .resx file dan memeriksa tanda waktu file yang ditautkan juga. Ini berarti bahwa Anda umumnya tidak boleh menggunakan atribut Inputs dan Outputs pada target yang berisi GenerateResource tugas, karena ini dapat menyebabkannya dilewati ketika seharusnya benar-benar berjalan.

Selain parameter yang tercantum di atas, tugas ini mewarisi parameter dari kelas TaskExtension, yang mewarisi sendiri dari kelas Task. Untuk daftar parameter tambahan ini dan deskripsinya, lihat kelas dasar TaskExtension.

Saat menggunakan MSBuild 4.0 untuk menargetkan proyek .NET 3.5, build mungkin gagal pada sumber daya x86. Untuk mengatasi masalah ini, Anda dapat membangun target sebagai rakitan AnyCPU.

Parameter UsePreserializedResources mendapatkan nilainya dari properti $(GenerateResourceUsePreserializedResources) dalam proses build .NET normal. Properti ini diatur ke true secara default dalam proyek dan proyek .NET Core yang menggunakan .NET 5 atau yang lebih baru. Anda dapat mengatur $(GenerateResourceUsePreserializedResources) ke true untuk mengizinkan .NET SDK membangun proyek yang menargetkan .NET Framework 4.6.1 atau yang lebih baru yang menggunakan sumber daya non-string. Rakitan System.Resources.Extensions harus tersedia di runtime bahasa umum. Ini tersedia di .NET Core 3.0 dan yang lebih baru dan .NET 5 dan yang lebih baru, dan dapat digunakan di .NET Framework 4.6.1 atau yang lebih baru melalui PackageReference.|

Contoh

Contoh berikut menggunakan GenerateResource tugas untuk menghasilkan .resources file dari file yang ditentukan oleh Resx koleksi item.

<GenerateResource
    Sources="@(Resx)"
    OutputResources="@(Resx->'$(IntermediateOutputPath)%(Identity).resources')">
    <Output
        TaskParameter="OutputResources"
        ItemName="Resources"/>
</GenerateResource>

Tugas menggunakan GenerateResource<LogicalName> metadata <EmbeddedResource> item untuk memberi nama sumber daya yang disematkan dalam rakitan.

Dengan asumsi bahwa rakitan diberi nama myAssembly, kode berikut menghasilkan sumber daya tersemat bernama someQualifier.someResource.resources:

<ItemGroup>
    <EmbeddedResource Include="myResource.resx">
        <LogicalName>someQualifier.someResource.resources</LogicalName>
    </EmbeddedResource>
</ItemGroup>

Tanpa <LogicalName> metadata, sumber daya akan diberi nama myAssembly.myResource.resources. Contoh ini hanya berlaku untuk proses build Visual Basic dan Visual C#.

Lihat juga