В настоящее время у меня есть библиотека классов Razor, которая генерирует стандартный проект .net.В этом проекте у меня есть _Layout.cshtml и другие страницы, которые я делю с другими основными проектами .net.
Хотя все это работает, я столкнулся с проблемой, когда мне нужно было разделить мои модели между различными проектами.Я извлек модели вместе с их миграциями в отдельную библиотеку классов (этот проект является базовой библиотекой классов .net из-за файлов миграции).На данный момент все по-прежнему в порядке, но как только мне нужно было сослаться на библиотеку классов сущностей из проекта макета, я не смог этого сделать, потому что стандартный проект .net не может ссылаться на основной проект .net (по понятным причинам).
Из-за этих требований я решил, что было бы лучше сделать проект макета базовым проектом .net вместо стандартного проекта .net, чтобы у меня не возникало проблем со ссылками на проекты.Мне не нужен доступ к проекту макета из других проектов, которые не являются ядром .net, поэтому мне не нужна совместимость, обеспечиваемая стандартом .net.
В любом случае проблема, с которой я сейчас сталкиваюсь, заключается в том, что Интернетприложение не может увидеть файл _Layout.cshtml для его загрузки.Я использую тот же код, который работал с моей стандартной библиотекой.Ниже приведены строка и ошибка, которую я получаю при попытке запустить приложение:
var filesProvider = new ManifestEmbeddedFileProvider(GetType().Assembly, "resources");
System.InvalidOperationException: «Не удалось загрузить манифест встроенного файла» Microsoft.Extensions.FileProviders.Embedded.Manifest.xml 'для сборки' MyLayoutProject '.'
Есть ли какие-либо изменения, необходимые для этой работы?Это вообще возможно?Какие еще идеи могут быть мне предложены, чтобы заставить это работать?
Обновление
Ниже приведен .csproj проекта общего макета (я добавил GenerateEmbeddedFilesManifest и ItemGroups ввнизу после пакетов nuget)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="bootstrap" Version="4.3.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.2.0" />
<PackageReference Include="Microsoft.NET.Sdk.Razor" Version="2.2.0" />
<PackageReference Include="Microsoft.Windows.Compatibility" Version="2.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
</ItemGroup>
<ItemGroup>
<Content Update="Areas\Features\Pages\Shared\_Layout.cshtml">
<Pack>$(IncludeRazorContentInPack)</Pack>
</Content>
<Content Update="Areas\Features\Pages\_ViewStart.cshtml">
<Pack>$(IncludeRazorContentInPack)</Pack>
</Content>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\**\*" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="Resources\js\jquery-3.3.1.min.js" />
</ItemGroup>
</Project>
При этом обновлении исходное сообщение об ошибке исчезло, однако макеты вообще не загружаются.