У меня есть несколько представлений, которые необходимо настроить для некоторой сборки конфигурации. Поэтому я хочу выборочно исключать страницы Razor при определенных условиях сборки с помощью файла .csproj, чтобы я мог использовать один и тот же маршрут на разных страницах Razor, и только одна из них попадала в каждую сборку, что автоматически приводит к правильному представлению. выбрано на основе имеющихся файлов.
Я проверил документацию Microsoft по множественному таргетингу в .NET Maui, в которой описан способ исключения файлов .cs на основе < ItemGroup> условие элемента в файле .csproj.
Я создал небольшой тестовый проект и попытался исключить страницы бритвы, используя аналогичный метод, но это не работает. Я получаю сообщение об ошибке, сообщающее, что маршруты неоднозначны, поскольку оба файла включены в сборку, а это означает, что явно не работает. Ошибка следующая:
Код: Выделить всё
The following routes are ambiguous:
'' in 'MyApp.Components.Pages.Home_Dupe'
'' in 'MyApp.Components.Pages.Home'
at Microsoft.AspNetCore.Components.RouteTableFactory.DetectAmbiguousRoutes(TreeRouteBuilder builder)
at Microsoft.AspNetCore.Components.RouteTableFactory.Create(Dictionary`2 templatesByHandler, IServiceProvider serviceProvider)
at Microsoft.AspNetCore.Components.RouteTableFactory.Create(List`1 componentTypes, IServiceProvider serviceProvider)
at Microsoft.AspNetCore.Components.RouteTableFactory.Create(RouteKey routeKey, IServiceProvider serviceProvider)
at Microsoft.AspNetCore.Components.Routing.Router.RefreshRouteTable()
at Microsoft.AspNetCore.Components.Routing.Router.Refresh(Boolean isNavigationIntercepted)
at Microsoft.AspNetCore.Components.Routing.Router.RunOnNavigateAsync(String path, Boolean isNavigationIntercepted)
at Microsoft.AspNetCore.Components.Routing.Router.c__DisplayClass76_0.b__1(RenderTreeBuilder builder)
at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)
Вот соответствующая часть моего текущего файла .csproj: который на данный момент просто пытается вообще удалить второй файл бритвы из сборки:
Код: Выделить всё
Код: Выделить всё
Поскольку у меня нет идей, я также попробовал вместо , который также не работает и приводит к той же ошибке, упомянутой выше, но удаляет файл из обозревателя решений Visual Studios.
Существует ли какой-либо устоявшийся способ исключения страниц бритвы из сборка на основе имен файлов страниц через файл .csproj?
Подробнее здесь: https://stackoverflow.com/questions/791 ... zor-hybrid