MSB4018“ GenerateEmbeddedResourcesManifest”任务意外失败

时间:2018-07-19 16:34:21

标签: asp.net-core asp.net-core-2.0 asp.net-core-2.1 asp.net-core-mvc-2.1

我正在尝试将本地化添加到我的Web应用程序中(使用Aspnetcore 2.1.1和Razor页面)。但是,当我添加多个.resx文件时,它无法编译并出现以下错误。

[eval]

在我的.csproj文件中,设置了以下属性。

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

使用相同的设置,本地化在AspNetCore 2.0.3中进行。

问题是生成的清单文件“ Microsoft.Extensions.FileProviders.Embedded.Manifest.xml”的内容。清单文件生成器将此行添加到一个* .resx文件。

<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>

当生成器找到另一个* .resx文件时,它会尝试将同一行添加到清单xml,并失败地说“名称为的项目已存在”。

1 个答案:

答案 0 :(得分:0)

似乎我是第二个人遇到此错误:) 根据{{​​3}},我对csproj文件进行了一些调整,在每个resx文件引用中添加了ExcludeFromManifest标志,从而更正了我的情况。

<EmbeddedResource Include="Resources/EntityListResources.resx">
  <ExcludeFromManifest>true</ExcludeFromManifest>
</EmbeddedResource>