# .NET Core 3.0 Preview Known Issues This document lists known issues for **.NET Core 3.0 Preview releases** which may be encountered during usage. ## ASP.NET Core ### Preview 3 - **The Windows Hosting bundle doesn't exist for Preview3**: The Windows Hosting bundle contained an issue which copied the 32 bit dlls into 64 bit locations. To work aroud this issue, please install the 3.0 Preview 2 [Hosting Bundle](https://github.com/dotnet/core/blob/master/release-notes/3.0/preview/3.0.0-preview2-download.md) and run the executable on a command line with the paramaters `OPT_NO_SHAREDFX=1 OPT_NO_RUNTIME=1`. Then install the appropriate .NET and ASP.NET runtimes for preview3. - **Updates to .razor files fail to show up in subsequent builds**: Updates to Razor Component (.razor) in Visual Studio may fail to show up in subsequent builds. To work around this issue add the following item group to the project file: ```xml ``` - **Updates to Razor Components in .razor files fail to show up in IntelliSense**: Updates to Razor Components defined in .razor files may fail to show up in IntelliSense in Visual Studio. To workaround this issue rebuild the project. - **Single Page Applications with authentication enabled throws method not found exception when visiting the register or login pages**: The exception message is the one below. `Method not found: 'Microsoft.EntityFrameworkCore.Metadata.Builders.IndexBuilder Microsoft.EntityFrameworkCore.Metadata.Builders.EntityTypeBuilder``1.HasIndex(System.Linq.Expressions.Expression``1>)'.` To workaround this issue follow these steps: * Replace the following package references with the ones below in your csproj folder: ```xml ``` ```xml ``` * Add the following snippet to your csproj file: ```xml $(NoWarn);NU1605 ``` - **Referencing 3.0.0 MVC libraries don't work as intended**: There are several issues with referencing a 3.0.0 MVC library. * Razor pages will 404, * ApplicationParts and factories will not be discoverable * Controllers will not be discoverable To workaround this issue do the following: * Add the helper method: ```C# private void Add30AssemblyWorkaround(Assembly referencedAssembly, ApplicationPartManager applicationPartManager) { var partFactory = ApplicationPartFactory.GetApplicationPartFactory(referencedAssembly); foreach (var part in partFactory.GetApplicationParts(referencedAssembly)) { applicationPartManager.ApplicationParts.Add(part); } var relatedAssemblies = RelatedAssemblyAttribute.GetRelatedAssemblies(referencedAssembly, throwOnError: true); foreach (var assembly in relatedAssemblies) { partFactory = ApplicationPartFactory.GetApplicationPartFactory(assembly); foreach (var part in partFactory.GetApplicationParts(assembly)) { applicationPartManager.ApplicationParts.Add(part); } } } ``` * Modify your `services.AddMvc()` call in `Startup.cs`: ```C# services.AddMvc() .ConfigureApplicationPartManager(manager => { var referencedAssembly = Assembly.Load("RCL"); Add30AssemblyWorkaround(referencedAssembly, manager); }) ... ``` - **React template with authentication has a syntax error on build** in file /ClientApp/src/components/api-authorization/ApiAuthorizationConstants.js When building or running the react template with authentication, after opening the browser, the app won't work and the following error message will be displayed. ```console × Error: Module build failed: SyntaxError: ClientApp/src/components/ api-authorization/ApiAuthorizationConstants.js: Unexpected token (27:25) 25 | DefaultLoginRedirectPath: '/', 26 | ApiAuthorizationClientConfigurationUrl: `/_configuration/$ {ApplicationName}`, > 27 | ApiAuthorizationPrefix = prefix, | ^ 28 | Login: `${prefix}/${LoginActions.Login}`, 29 | LoginFailed: `${prefix}/${LoginActions.LoginFailed}`, 30 | LoginCallback: `${prefix}/${LoginActions.LoginCallback}`, ``` * Workaround: Replace `ApiAuthorizationPrefix = prefix,` with `ApiAuthorizationPrefix: prefix,` - **Import error "Cannot find module "./components/api-authorization/Login"**: When building or running the react template with authentication, after opening the browser, the app won't work and the following error message will be displayed. ```console × Error: Cannot find module "./components/api-authorization/Login" ▼ 13 stack frames were expanded. ./src/components/api-authorization/ApiAuthorizationRoutes.js https://localhost:44315/static/js/bundle.js:53166:7 __webpack_require__ ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:678 fn ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:88 ./src/App.js https://localhost:44315/static/js/bundle.js:51925:111 __webpack_require__ ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:678 fn ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:88 ./src/index.js https://localhost:44315/static/js/bundle.js:54708:63 __webpack_require__ ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:678 fn ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:88 0 https://localhost:44315/static/js/bundle.js:54860:18 __webpack_require__ ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:678 (anonymous function) ClientApp/webpack/bootstrap 43633f0e2b726d97cc14:724 (anonymous function) https://localhost:44315/static/js/bundle.js:728:10 ``` * Workaround: * Remove the file /ClientApp/src/components/api-authorizationApi/AuthorizationRoutes.js * Replace the contents of App.js with these ```javascript import React, { Component } from 'react'; import { Route } from 'react-router'; import { Layout } from './components/Layout'; import { Home } from './components/Home'; import { FetchData } from './components/FetchData'; import { Counter } from './components/Counter'; import { Login } from './components/api-authorization/Login' import { Logout } from './components/api-authorization/Logout' import AuthorizeRoute from './components/api-authorization/AuthorizeRoute'; import { ApplicationPaths, LoginActions, LogoutActions } from './components/api-authorization/ApiAuthorizationConstants'; export default class App extends Component { static displayName = App.name; render () { return ( loginAction(LoginActions.Login)} /> loginAction(LoginActions.LoginFailed)} /> loginAction(LoginActions.LoginCallback)} /> loginAction(LoginActions.Profile)} /> loginAction(LoginActions.Register)} /> logoutAction(LogoutActions.Logout)} /> logoutAction(LogoutActions.LogoutCallback)} /> logoutAction(LogoutActions.LoggedOut)} /> ); } } function loginAction(name){ return (); } function logoutAction(name) { return (); } ``` - **Runtime compilation using Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation throws an error stating "Cannot find reference assembly"**: When performing runtime Razor compilation, the application throws an error stating reference assemblies cannot be found. To workaround this, edit the project file and add this following property: ```xml true ```