Конфликт основных ресурсов нескольких клиентов и одного сервера

#c# #visual-studio #asp.net-core #blazor

#c# #visual-studio #asp.net-core #blazor

Вопрос:

Я пытаюсь создать 2 клиентских проекта и 1 серверный проект в Blazor. Итак, я создал новое приложение Blazor WebAssembly с https,asp.net Проверки размещенных на ядре и прогрессивных веб-приложений выполнены.

Теперь у меня есть 3 автоматически созданных проекта: клиент, сервер и общий проект.

Давайте предположим, что мне нужен другой клиентский проект, который должен взаимодействовать с тем же сервером.

Я добавляю новый проект blazor, я выбираю приложение Blazor WebAssembly, но на этот раз я снимаю флажок ASP.NET Размещенное на ядре и прогрессивное веб-приложение (мне не нужно, чтобы это приложение работало в автономном режиме).

Итак, теперь у меня есть 2 клиента, 1 сервер, 1 общий проект.

Следующее, что я делаю, это добавляю ссылку с моего сервера в новый клиентский проект.

Все кажется нормальным, пока не появится эта ошибка:

Статические активы Blazor — конфликтующие активы с одинаковым путем

Я нашел это обсуждение на github:https://github.com/dotnet/aspnetcore/issues/20580

Они говорят, что вы должны писать <StaticWebAssetBasePath>clientA</StaticWebAssetBasePath> <StaticWebAssetBasePath>clientB</StaticWebAssetBasePath> в свои клиентские проекты.

Когда я нажимаю на сообщение об ошибке, visual studio показывает мне файл с именем Microsoft.Net.Sdk.Razor.StaticWebAssets.targets и выведите меня на строку 191, которая является:

  <ValidateStaticWebAssetsUniquePaths
      StaticWebAssets="@(_ReferencedStaticWebAssets)"
      WebRootFiles="@(_WebRootFiles)" />
  

Я не думаю, что мне нужно изменять этот файл, так что я должен изменить?

Ответ №1:

Хорошо, возможно, я нашел, где мне нужно было написать теги, и я думаю, что это будет полезно для других людей. Я открыл csproj моих 2 клиентов и под тегом PropertyGroup написал:

 <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
    <StaticWebAssetBasePath>.clientA</StaticWebAssetBasePath>
  </PropertyGroup>
  

И для моего клиента B

 <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
    <StaticWebAssetBasePath>.clientB</StaticWebAssetBasePath>
  </PropertyGroup>
  

Теперь ошибка устранена.