Bagikan melalui


Tugas pengkompilasi pesan

Windows Driver Kit (WDK) menyediakan tugas MessageCompiler sehingga Anda dapat menjalankan alat MC.exe saat membuat driver menggunakan MSBuild. Untuk informasi tentang menggunakan MC.exe, lihat Pengkompilasi Pesan (MC.exe).

MSBuild menggunakan Item MessageCompile untuk mengirim parameter untuk tugas MessageCompiler. Item MessageCompile mengakses metadata item mc.exe dalam file proyek.

Contoh berikut menunjukkan cara mengedit metadata dalam file .vcxproj.

<ItemGroup>
    <MessageCompile Include="a.mc">
      <GenerateBaselineResource>true</GenerateBaselineResource>
      <BaselineResourcePath>c:\test\</BaselineResourcePath>
    </MessageCompile>
</ItemGroup>

Contoh berikut menunjukkan pemanggilan baris perintah:

mc.exe –s "c:\test\" a.mc

Dalam contoh di atas, MSBuild memanggil mc.exe pada file a.mc, dengan opsi –s karena metadata GenerateBaselineResource disetel ke true. Selain itu, MSBuild menggunakan metadata BaselineResourcePath untuk menentukan argumen untuk tombol –s.

Parameter Tugas MessageCompiler Item Metadata Pemilih Alat
Sumber

Parameter string opsional. Menentukan nama file manifes yang akan dikompilasi. Menentukan nama file pesan yang akan dikompilasi.

@(MessageCompile)

<filename.man>

<filename.mc>

ANSIInputFile

Menentukan bahwa file Input adalah ANSI (default).

%(MessageCompile.ANSIInputFile) -a
ANSIMessageInBinFile

Menentukan bahwa pesan dalam . File BIN harus ANSI.

%(MessageCompile.ANSIMessageInBinFile) -A
EnableDebugOutputPath

Jika diatur ke true, ini akan mengaktifkan sakelar –x.

%(MessageCompile.EnableDebugOutputPath)
DebugOutputPath

Menentukan folder tempat pengkompilasi menempatkan file .dbg C include. File .dbg memetakan ID pesan ke nama simbolisnya.

%(MessageCompile.DebugOutputPath) -xJalur<>
EnableCallOutMacro

Menambahkan makro callout untuk memanggil kode pengguna selama pengelogan. Sakelar ini tidak valid untuk C# dan diabaikan.

%(MessageCompile.EnableCallOutMacro) -co
EventmanPath

Menentukan jalur ke file eventman.xsd.

%(MessageCompile.EventmanPath) -w<file>
GenerateBaselineResource

Jika ini diatur ke true, ini memungkinkan pengalihan -s.

%(MessageCompile.GenerateBaselineResource)
BaselineResourcePath

Menghasilkan sumber daya biner per penyedia. Menghasilkan ringkasan MCGenResource.BIN sumber daya global.

%(MessageCompile.BaselineResourcePath) Jalur>-s<
GenerateC#LoggingClass

Menghasilkan kelas pengelogan C# (terkelola) berdasarkan kelas Kejadian FX3.5.

%(MessageCompile.GenerateC#LoggingClass) -cs<namespace>
GenerateC#StaticLoggingClass

Menghasilkan kelas pencatatan C# (terkelola) statis berdasarkan kelas pengelolaan kejadian FX3.5.

%(MessageCompile.GenerateC#StaticLoggingClass) -css<namespace>
NamaDasarFileYangDihasilkan

Menentukan nama dasar file yang dihasilkan. Defaultnya adalah nama dasar file input.

%(MessageCompile.GeneratedFilesBaseName) -z<basename>
GeneratedHeaderPath

Jika ini diatur ke true, ini mengaktifkan switch -h.

%(MessageCompile.GeneratedHeaderPath)
HeaderFilePath

Menentukan jalur tempat untuk membuat file sertakan C. Defaultnya adalah ..

%(MessageCompile.HeaderFilePath) -h<path>
GeneratedRcAndMessagesPath

Jika diatur ke true, pengalihan -r diaktifkan.

%(MessageCompile.GeneratedRcAndMessagesPath)
RCFilePath

Menentukan jalur untuk menyertakan file RC dan file sumber daya pesan biner yang terlibat. Defaultnya adalah ..

%(MessageCompile.RCFilePath) -r<path>
GenerateKernelModeLoggingMacros

Menghasilkan makro pengelogan Mode Kernel.

%(PesanKompilasi.GenerateKernelModeLoggingMacros) -kilometer
GenerateMOFFile

Menghasilkan dukungan tingkat bawah untuk semua fungsi dan makro yang dihasilkan. File MOF dibuat dari manifest. File MOF ditempatkan di lokasi yang ditentukan oleh sakelar "-h".

%(MessageCompile.GenerateMOFFile) -mof
GenerateOLE2Header

Menghasilkan file header OLE2. Menggunakan definisi HRESULT alih-alih definisi kode status.

%(MessageCompile.GenerateOLE2Header) -o
GenerateUserModeLoggingMacros

Menghasilkan makro pengelogan Mode Pengguna.

%(MessageCompile.MenghasilkanMakroPencatatanModePengguna) -um
HeaderExtension

Menentukan ekstensi untuk file header (1-3 karakter).

%(MessageCompile.HeaderExtension) -e<ekstensi>
MaximumMessageLength

Menghasilkan peringatan jika ukuran pesan apa pun melebihi <karakter panjang> .

%(MessageCompile.MaximumMessageLength) -m<panjang>
PrefixMacroName

Menentukan awalan nama makro yang diterapkan ke setiap makro pengelogan yang dihasilkan. Defaultnya adalah "EventWrite".

%(MessageCompile PrefixMacroName) -p<awalan>
RemoveCharsFromSymbolName

Menentukan teks di awal setiap nama simbol peristiwa untuk dihapus sebelum membentuk nama makro. Defaultnya adalah NULL.

%(HapusKarakterDariNamaSimbol) -P<Awalan>
SetCustomerbit

Mengatur bit Pelanggan pada seluruh ID pesan.

%(MessageCompile.SetCustomerbit) -c
TerminateMessageWithNull

Mengakhiri semua string dengan karakter null dalam tabel pesan.

%(MessageCompile.TerminateMessageWithNull) -n
UnicodeInputFile

File input adalah Unicode.

%(MessageCompile.UnicodeInputFile) -u
UnicodeMessageInBinFile

Pesan dalam . File BIN harus Unicode (default).

%(PesanKompilasi.PesanUnicodeDalamBerkasBin) -U
UseBaseNameOfInput

Menentukan bahwa nama file .BIN harus menyertakan nama file .mc untuk keunikan.

%(MessageCompile. UseBaseNameOfInput) -b
GunakanDecimalValues

Menentukan nilai FACILTY dan SEVERITY dalam file header dalam desimal. Mengatur nilai pesan di header ke desimal awalnya.

%(MessageCompile.UseDecimalValues) -d
ValidateAgainstBaselineResource

Jika ini diatur ke true, maka akan menghasilkan sakelar -t.

%(MessageCompile.ValidateAgainstBaselineResource)
BaselinePath

Memvalidasi terhadap sumber daya garis besar.

%(MessageCompile.BaselinePath) -t<jalur>
Verbose

Menghasilkan output yang rinci.

%(MessageCompile.Verbose) -v
WinmetaPath

Menentukan jalur ke file winmeta.xml.

%(MessageCompile.WinmetaPath) -W<file>

Pengkompilasi Pesan (MC.exe)