Estou trabalhando em um projeto de montagem web Blazor com vários projetos em uma única solução. No entanto, quando tento construir a solução usando dotnet build
, recebo o seguinte erro:
erro NETSDK1082: Não havia nenhum pacote de tempo de execução para Microsoft.AspNetCore.App disponível para o RuntimeIdentifier especificado 'browser-wasm'.
Estrutura do projeto ( .sln
)
Tenho quatro projetos na minha solução:
RazorClassLibrary
(componentes compartilhados)TraningBlazorAPIProject
(API da Web do ASP.NET Core)TraningBlazorProject
(Servidor Blazor, atua como o ponto de entrada principal)TraningBlazorProject.Client
(Frontend de montagem web Blazor)
TraningBlazorProject.Client.csproj
(Montagem web Blazor):
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<RuntimeIdentifier>browser-wasm</RuntimeIdentifier>
<ImplicitUsings>enable</ImplicitUsings>
<UseBlazorWebAssembly>true</UseBlazorWebAssembly>
<Nullable>enable</Nullable>
<StaticWebAssetProjectMode>Default</StaticWebAssetProjectMode>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.3" />
<PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="9.0.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="9.0.3" />
</ItemGroup>
</Project>
TraningBlazorProject.csproj
(Servidor Blazor)
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\RazorClassLibrary\RazorClassLibrary.csproj" />
<ProjectReference Include="..\TraningBlazorProject.Client\TraningBlazorProject.Client.csproj" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="9.0.3" />
</ItemGroup>
</Project>
Detalhes do erro
TraningBlazorProject.Client falhou com 1 erro(s)
C:\Program Files\dotnet\sdk\9.0.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(512,5): erro NETSDK1082: Não havia nenhum pacote de tempo de execução para Microsoft.AspNetCore.App disponível para o RuntimeIdentifier especificado 'browser-wasm'.
Etapas de solução de problemas que tentei (mas não funcionaram):
Verificado
FrameworkReference
emTraningBlazorProject.Client.csproj
. Verificado queMicrosoft.AspNetCore.App
não é referenciado no projeto de montagem da web.Removido
ProjectReference
deTraningBlazorProject.csproj
paraTraningBlazorProject.Client.csproj
.Como o assembly web do Blazor não deve ser referenciado diretamente pelo servidor Blazor, eu o removi temporariamente e tentei compilar novamente, mas o erro persistiu.
Reinstalei cargas de trabalho .NET
Executadas:dotnet workload uninstall wasm-tools dotnet workload install wasm-tools dotnet workload repair
Mas ainda estou recebendo o mesmo erro.
Caches NuGet limpos e pacotes restaurados
dotnet nuget locals all --clear dotnet restore
Ainda sem sorte.
Excluiu
bin
eobj
pastas e reconstruiu o projetord /s /q bin obj dotnet clean dotnet restore dotnet build
O erro permanece.
Questões :
Por que o Blazor web assembly (browser-wasm) está tentando referenciar o
Microsoft.AspNetCore.App
, que é apenas para o servidor Blazor?Existe um conflito entre
TraningBlazorProject.Client
(Blazor WASM) eTraningBlazorProject
(servidor Blazor)?Como posso estruturar adequadamente a solução para evitar esse erro?