Встроенный cshtml не может быть найден в ASP.NET Core MVC 3.0 - PullRequest
0 голосов
/ 23 октября 2019

У меня есть библиотека, в которой определены виды MVC Razor. Например \Views\Default\Index.cshtml. И мы используем эту конфигурацию в .csproj для повторного использования этих представлений в разных проектах:

<ItemGroup>
    <EmbeddedResource Include="Views\**\*.cshtml" />
</ItemGroup>

Теперь, когда мы компилируем нашу библиотеку DLL, мы можем убедиться, что наши chtml виды бритвы фактически встроены в DLLфайл внутри папки Resources с использованием ILSpy.

Мы используем эту библиотеку в веб-приложении ASP.NET Core MVC для повторного использования файлов .cshtml.

Мы используем эту строкукода для регистрации этой библиотеки в качестве места для поиска представлений:

services.Configure<MvcRazorRuntimeCompilationOptions>(options =>
{
    foreach (var assembly in assemblies)
    {
        options.FileProviders.Add(new EmbeddedFileProvider(assembly));
    }
});

Это будет работать в ASP.NET Core MVC 2.2. Но после обновления до версии 3.0 теперь он жалуется:

The view 'Index' was not found. The following locations were searched:
/Views/Default/Index.cshtml
/Views/Shared/Index.cshtml
/Pages/Shared/Index.cshtml

Что здесь не так?

Обновление : все упомянутое в этом вопросе уже было проверено намии это вопрос 4 года назад, и не имеет ничего общего с .NET 3.0. Также этот вопрос не о встроенных ресурсах. Речь идет о представлениях в одном приложении.

...