You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无AssemblyInfo.cs的ASP.NET Core项目中添加RootNamespace属性修复本地化问题

解决方法

你之前的配置不生效是因为使用了AssemblyMetadata节点,它生成的是System.Reflection.AssemblyMetadataAttribute元数据特性,不是ASP.NET Core本地化组件需要的Microsoft.Extensions.Localization命名空间下的对应特性,所以无法被识别。你可以选择以下任意一种方案配置:

方案1:直接在csproj中配置(无需新增代码文件)

通过AssemblyAttribute节点让自动生成的AssemblyInfo包含所需特性,在你的WebApi.csproj中添加如下配置:

<ItemGroup>
  <AssemblyAttribute Include="Microsoft.Extensions.Localization.ResourceLocationAttribute">
    <!-- 替换为实际的资源文件夹名称 -->
    <_Parameter1>Resources</_Parameter1>
  </AssemblyAttribute>
  <AssemblyAttribute Include="Microsoft.Extensions.Localization.RootNamespaceAttribute">
    <!-- 替换为实际的项目根命名空间 -->
    <_Parameter1>Cmp.WebApi</_Parameter1>
  </AssemblyAttribute>
</ItemGroup>

保存后重新生成项目,自动生成的AssemblyInfo就会包含官方要求的两个程序集特性,本地化功能即可正常工作。

方案2:手动添加特性代码文件

你可以在项目中任意位置新增一个.cs文件(无需命名为AssemblyInfo.cs),直接写入官方要求的特性代码即可:

using Microsoft.Extensions.Localization;

[assembly: ResourceLocation("Resources")]
[assembly: RootNamespace("Cmp.WebApi")]

.NET 5+ 并不会禁止手动添加程序集特性,手动添加的特性会和自动生成的AssemblyInfo内容合并生效,不会产生冲突。

内容的提问来源于stack exchange,提问作者sommmen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:24:00