19
votes

Trying to migrate from ASP.NET Core 3.1 to 5.0 using this guide provided by Microsoft.

Installed SDK 5.0.100-rc.1 with runtimes. Updated project as guide says and still getting following error:

There was no runtime pack for Microsoft.AspNetCore.App available for the specified RuntimeIdentifier 'browser-wasm'

Project file:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
    <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework>
        <UserSecretsId>*****</UserSecretsId>
    </PropertyGroup>
...

Cant find anything asociated with this error. I have no idea where to search for more info.

Thank you for any idea.

8
And which Visual Studio are you running? It should be the latest Preview edition.Henk Holterman
The error message seems to be publish error,did you make this error when you publish to IIS?If so,it seems to be a know issue on github,please check and you could update to the latest version of .net 5.Rena
@HenkHolterman Yes it is latest preview version. 16.8.0 Preview 3.0Kasta
Do you have a global.json file ?agua from mars
@aguafrommars Yes. { "sdk": { "version": "5.0.100-rc.1.20452.10" } }Kasta

8 Answers

17
votes

I finally made it work.

I did everything that guide said, except for the project file which I changed to this:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <UserSecretsId>*****</UserSecretsId>
    <UseBlazorWebAssembly>true</UseBlazorWebAssembly>
  </PropertyGroup>
...

But I have no idea if it is correct when official upgrade guide says to use:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">

instead of:

<Project Sdk="Microsoft.NET.Sdk.Web">
3
votes

Had the same issue and finally got it working. Here's how.

In my case, the error wasn't the result of the Blazor project itself, but a referenced project in the same solution. The referenced project targets .net standard 2.1, which should be fine in itself; however, it also had some NuGet packages installed which might conflict with Blazor dependencies: (Microsoft.Extensions.*).

Solution
- Project A (.net standard 2.1 - Class library)
  - Dependencies
    - Packages
      - Microsoft.Extensions.Configuration.Json (<-- example dependency)
- Project B (.net 5 - Blazor webassembly)
  - Dependencies
    - Projects
      - Project A (<-- caused the error, presumably because of the above dependency)

The blog post about .net 5 rc mentions all Microsoft.Extensions.* packages in a Blazor project should be updated to 5.0.0-rc.1.*.

Was able to resolve the issue by removing the project dependency (which I didn't need in the first place, but accidentally got placed there).

What I don't understand is why a 'dotnet build' doesn't give an understandable error message about a conflict instead of this vague message about the runtime identifier mentioning the Blazor project.

Hope this will help others as well.

3
votes

I faced the same issue and asked Microsoft about that under this post: https://github.com/dotnet/aspnetcore/issues/27738

You need to update your projects to use below SDK's;

Client - Microsoft.NET.Sdk.BlazorWebAssembly
Server - Microsoft.NET.Sdk.Web
Shared - Microsoft.NET.Sdk
1
votes

I had this issue with a different error message "The type or namespace name 'ApplicationPartAttribute' does not exist in the namespace 'Microsoft.AspNetCore.Mvc.ApplicationParts' (are you missing an assembly reference?)".

In my case I had a shared helper class library that I had started to build generic data api repositories into using Microsoft.AspNetCore.Mvc 2.0 which was referenced in my Blazor project using the newly released .Net 5.

To resolve this, I had to separate the shared class project moving the generic data api elements to a new project which removed the link between .Net 5 Blazor and Microsoft.AspNetCore.Mvc 2.0.

1
votes

Thanks for your help, In my case, I have to followup steps mentioned by @Kasta and official guide.

I make sure that below SDK changes are in place,Thank you @OzanYasinDogan for mentioning this helps.

  • Client - Microsoft.NET.Sdk.BlazorWebAssembly
  • Server - Microsoft.NET.Sdk.Web
  • Shared - Microsoft.NET.Sdk

In my case, I had to

  • Remove the <RuntimeIdentifier>browser-wasm</RuntimeIdentifier> and <UseBlazorWebAssembly>true</UseBlazorWebAssembly>. Mentioned here
  • Remove Microsoft.AspNetCore.Components.WebAssembly.BuildServer which was version 3.xx.xx causing conflicts from Blazor.Client Project file.
0
votes

In my case I had referenced a project that was referencing Data layer classes and there for was not safe to for Blazor Client side or 'browser-wasm'.

After I removed the reference from Client solution > Dependencies > Projects My solution compiled.

0
votes

I experienced the same issue and discovered the cause to be

    <UseAppHost>true</UseAppHost>

which was used in a common Directory.Build.props

By setting this back to false I no longer get the missing browser-wasm error.

-1
votes

I resolved this issue in a way Richard described:

  1. Cleaned up references to Microsoft.Extensions.Logging, Microsoft.Extensions.Configuration,... packages version 3.2 in all solution projects referenced by server and client
  2. Updated .Server project
  3. Updated .Client project. Kept element at target framework section and it worked
<PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
</PropertyGroup>