public void EmitMessageTables() { using var msgFile = TemporaryFile.Create(".de-DE.tmp"); options.MessageTableFile = msgFile.FilePath.Replace(".de-DE", ""); var manifest = new EventManifest(); manifest.AddResourceSet(new LocalizedResourceSet(CultureInfo.GetCultureInfo("de-DE"))); compilation.AddManifests(manifest); bool success = compilation.EmitMessageTables(); Assert.True(success); Assert.Empty(diags.Diagnostics); Assert.NotEqual(0, new FileInfo(msgFile.FilePath).Length); }
private EventManifest ReadCrimBlock(BinaryReader r) { objectMap.Clear(); strings.Clear(); ReadMagic(r, CrimsonTags.CRIM); uint length = r.ReadUInt32(); ushort major = r.ReadUInt16(); ushort minor = r.ReadUInt16(); uint providerCount = r.ReadUInt32(); var providerEntries = new List <Tuple <Guid, uint> >(); for (uint i = 0; i < providerCount; ++i) { var providerGuid = r.ReadGuid(); var wevtOffset = r.ReadUInt32(); providerEntries.Add(Tuple.Create(providerGuid, wevtOffset)); } var manifest = new EventManifest(); foreach (var offset in providerEntries) { r.BaseStream.Position = offset.Item2; var provider = ReadWevtBlock(offset.Item1, r); manifest.Providers.Add(provider); } var resourceSet = new LocalizedResourceSet(CultureInfo.GetCultureInfo("en-US")); resourceSet.Strings.AddRange(strings.Values); manifest.AddResourceSet(resourceSet); return(manifest); }