MSB4018 Задача "GenerateEmbeddedResourcesManifest" неожиданно завершилась неудачей
Я пытаюсь добавить локализацию в мое веб-приложение (используя страницы Aspnetcore 2.1.1 и Razor). Однако, когда я добавляю более одного файла.resx, он не может быть скомпилирован со следующей ошибкой.
Error MSB4018 The "GenerateEmbeddedResourcesManifest" task failed unexpectedly.
System.InvalidOperationException: An item with the name '' already exists.
at Microsoft.Extensions.FileProviders.Embedded.Manifest.Task.Internal.Entry.AddChild(Entry child)
at Microsoft.Extensions.FileProviders.Embedded.Manifest.Task.Manifest.AddElement(String originalPath, String assemblyResourceName)
at Microsoft.Extensions.FileProviders.Embedded.Manifest.Task.GenerateEmbeddedResourcesManifest.BuildManifest(EmbeddedItem[] processedItems)
at Microsoft.Extensions.FileProviders.Embedded.Manifest.Task.GenerateEmbeddedResourcesManifest.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() Service C:\Users\mishaukat\.nuget\packages\microsoft.extensions.fileproviders.embedded\2.1.1\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.targets 65
В моем файле.csproj установлено следующее свойство.
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
С такой же настройкой локализация работала в AspNetCore 2.0.3.
Проблема заключается в содержимом сгенерированного файла манифеста "Microsoft.Extensions.FileProviders.Embedded.Manifest.xml". Генератор файлов манифеста добавляет эту строку для одного файла *.resx.
<File Name=""><ResourcePath></ResourcePath></File>
Когда генератор находит другой файл *.resx, он пытается добавить эту же строку в xml манифеста и не может сказать "Элемент с именем" уже существует ".
0 ответов
Кажется , я второй человек, который получил эту ошибку:) По этой ссылке я сделал некоторые изменения в файле csproj, добавив ExcludeFromManifest
Отметить каждую ссылку на файл resx, что исправило мой случай.
<EmbeddedResource Include="Resources/EntityListResources.resx">
<ExcludeFromManifest>true</ExcludeFromManifest>
</EmbeddedResource>