public static void EmbeddedLinks(ActionContext actionContext, Action <string, Exception> logMessageAction) { var imsmanifest = actionContext.GetImsManifest(); var elements = imsmanifest .XPathSelectElements($"manifest/resources/resource"); foreach (XElement element in elements) { ResourceElement resElement = ResourceElement.FromImsResourceElement(element); string resType = element.Attribute("type")?.Value; string path = Path.Combine(actionContext.ExtractedPackageDirectory, resElement.FileName); if (File.Exists(path)) { string content = File.ReadAllText(path); var r = new Regex(@"((@X@Embedded[^/]*?)/)(([^\""])*?\"")"); var matches = r.Matches(content); foreach (Match match in matches) { logMessageAction($"{resType}\t{actionContext.PackageName}\t{Path.GetFileName( path )}\t{match.Groups[2]}\t{match.Value}", null); } } } }