Browse Source

Other changes after review

pull/9537/head
Max Katz 4 years ago
parent
commit
26c54b2301
  1. 5
      src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs
  2. 9
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs

5
src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using Avalonia.Markup.Xaml.XamlIl.CompilerExtensions;
using Avalonia.Platform;
using Microsoft.Build.Framework;
using Mono.Cecil;
using Mono.Cecil.Cil;
@ -134,6 +135,10 @@ namespace Avalonia.Build.Tasks
engine.LogMessage("Debugging cancelled.", MessageImportance.Normal);
}
}
// Some transformers might need to parse "avares://" Uri.
AssetLoader.RegisterResUriParsers();
var asm = typeSystem.TargetAssemblyDefinition;
var avares = new AvaloniaResources(asm, projectDirectory);
if (avares.Resources.Count(CheckXamlName) == 0)

9
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs

@ -45,22 +45,17 @@ internal class AvaloniaXamlIncludeTransformer : IXamlAstGroupTransformer
return node;
}
if (originalAssetPath.StartsWith("avares://"))
{
}
else if (originalAssetPath.StartsWith("/"))
if (originalAssetPath.StartsWith("/"))
{
var baseUrl = context.CurrentDocument.Uri ?? throw new InvalidOperationException("CurrentDocument URI is null.");
originalAssetPath = baseUrl.Substring(0, baseUrl.LastIndexOf('/')) + originalAssetPath;
}
else
else if (!originalAssetPath.StartsWith("avares://"))
{
return context.ParseError(
$"Avalonia supports only \"avares://\" sources or relative sources starting with \"/\" on the \"{nodeTypeName}\" node.",
node);
}
AssetLoader.RegisterResUriParsers();
originalAssetPath = Uri.UnescapeDataString(new Uri(originalAssetPath).AbsoluteUri);
var assetPath = originalAssetPath.Replace("avares://", "");

Loading…
Cancel
Save