У меня есть библиотека, в которой определены виды 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. Также этот вопрос не о встроенных ресурсах. Речь идет о представлениях в одном приложении.