From 26c54b23011e26ded78033ee20df05702601927e Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 29 Nov 2022 20:31:05 -0500 Subject: [PATCH] Other changes after review --- src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs | 5 +++++ .../GroupTransformers/XamlIncludeGroupTransformer.cs | 9 ++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs index 56051dd175..ea2cf2cf99 100644 --- a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs +++ b/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) diff --git a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs b/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs index 9ce89ce13e..09a65c9d64 100644 --- a/src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/GroupTransformers/XamlIncludeGroupTransformer.cs +++ b/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://", "");