.NET Core中带有文化后缀的嵌入式资源

问题描述

我想在ASP.NET Core 3项目中将两个文件Build Action设置为Embedded resource

FileName.json
FileName.en-GB.json

但是当我尝试获取嵌入式资源时,只有一个文件(第一个文件,没有文化后缀)

Namespace.Folder.FileName.json

起初,我猜想也许我必须直接在.csproj文件添加第二个文件

<ItemGroup>
  <EmbeddedResource Include="Folder\**\*.json" />
  <EmbeddedResource Include="Folder\FileName.en-GB.json" />
</ItemGroup>

但是会引发错误

包含重复的“ EmbeddedResource”项目

这意味着它已经被添加

预先感谢

解决方法

<ItemGroup>
     <!-- This line includes all .json files in Folder and it's subfolders-->
     <EmbeddedResource Include="Folder\**\*.json" />
     <!-- This line is not needed because all .json files are already included -->
     <EmbeddedResource Include="Folder\FileName.en-GB.json" />
</ItemGroup>

因此将其更改为

<ItemGroup>
     <!-- This line includes all .json files in Folder and it's subfolders-->
     <EmbeddedResource Include="Folder\**\*.json" />
</ItemGroup>

请注意,FileName.en-GB.json将包含在附属程序集中,而不是在主输出程序集中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...