IFileInfo GetFileInfo()
 {
     for (var _ref = fileReference; _ref != null; _ref = _ref.Parent)
     {
         // Open package file
         using (var fp = packageProvider.TryOpenPackage(_ref.Parent))
         {
             // Wasn't package, try parent
             if (fp == null)
             {
                 continue;
             }
             // Make name within its context (parent)
             string _filename = _ref.Parent == null ? fileReference.CanonicalPath : fileReference.CanonicalPath.Substring(_ref.Parent.CanonicalPath.Length + 1);
             // Get file info
             IFileInfo fi = fp.GetFileInfo(_filename) ?? new NotFoundFileInfo(fileReference.CanonicalPath);
             //
             return(fi);
         }
     }
     return(new NotFoundFileInfo(fileReference.CanonicalPath));
 }