Tengo un proyecto .Net6 Blazor Server Side.
Creé un componente llamado HomePage.razor , otro llamado HomePage.razor.cs y un archivo TypeScript llamado HomePage.razor.ts . De esta manera, obtengo una buena imagen de HomePage.razor en el explorador de soluciones, ya que los archivos "secundarios" se anidan en él.
Cuando guardo mi archivo TypeScript, el archivo wwwroot\Pages\HomePage.razor.js se genera automáticamente y lo remito a mi _Host.cshtml .
Además, tan pronto como lo guardo, aparece el error BLAZOR106 - The JS module file 'c:\...\wwwroot\Pages\HomePage.razor.js' was defined but no associated razor component or view was found for it.
Si cambio el nombre de mi archivo TypeScript de HomePage.razor.ts a cualquier otra cosa, como HomePage.ts , guárdelo y elimine el archivo JS generado anteriormente en wwwroot , todo funciona bien. Pero de esta manera, pierdo el agradable "colapso por nombre" en el explorador de soluciones que proporciona VS2022.
No pude encontrar ningún contenido relacionado con el error BLAZOR106 (documentación de Google y Microsoft), por lo que me gustaría saber si saben cómo solucionar este problema.
Gracias.
Recibí el mismo error, pero en mi caso ni siquiera estaba usando un componente de razor, solo un archivo .cshtml de página de razor. Al igual que usted, también tenía un archivo .cshtml.cs y .cshtml.js porque me gusta la organización de eso.
Pages/Index.cshtml Pages/Index.cshtml.cs Pages/Index.cshtml.jsOriginalmente estaba usando un bundleconfig.json para minificar en su lugar.
Pages/Index.cshtml.min.js Pages/Index.cshtml.min.js.mapLuego usé libman para copiar los archivos js en:
wwwroot/js/Pages/Index.cshtml.js wwwroot/js/Pages/Index.cshtml.min.js wwwroot/js/Pages/Index.cshtml.min.js.mapComo puede ver, no estaba usando componentes de maquinilla de afeitar ni Blazor en ninguna parte de mi aplicación. Y esto funcionó bien al apuntar a .NET 5
Actualicé a .NET 6 y comencé a recibir el mismo error que usted.
La magia de fondo está sucediendo aquí que el equipo de aspnet debería abordar, pero mientras tanto, mi solución fue eliminar el archivo .cshtml. parte del nombre del archivo en wwwroot.
wwwroot/js/Pages/Index.min.js wwwroot/js/Pages/Index.min.js.mapPara lograr esto, cambié mi configuración de paquete para generar directamente esos archivos y eliminé la parte libman. En realidad, tenía más sentido que lo que estaba haciendo antes porque solo me importa que el archivo Index.cshtml.js original esté anidado.
bundleconfig.json { "outputFileName": "Pages/Index.cshtml.min.js", "inputFiles": [ "Pages/Index.cshtml.js" ] } libman.json { "provider": "filesystem", "library": "Pages/Index.cshtml.js", "files": [ "Pages/Index.cshtml.js", "Pages/Index.cshtml.min.js", "Pages/Index.cshtml.min.js.map" ], "destination": "wwwroot/js/" }A solo esto:
bundleconfig.json { "outputFileName": "wwwroot/js/Pages/Index.min.js", "inputFiles": [ "Pages/Index.cshtml.js" ] }