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

.NET 6引用含.resx文件的项目时触发无效清单格式错误

解决方案

以下是针对该错误的排查和修复步骤:

  • 检查resx文件的嵌入配置
    确保Project A中的resx文件已正确设置为嵌入式资源,且指定了有效的清单资源名称。在Project A的.csproj中添加或修改resx的配置:

    <ItemGroup>
      <EmbeddedResource Include="Resources/DataAnnotationStrings.resx">
        <ManifestResourceName>YourNamespace.Resources.DataAnnotationStrings</ManifestResourceName>
      </EmbeddedResource>
    </ItemGroup>
    

    替换Resources/和YourNamespace为实际的文件路径和项目命名空间,避免ManifestResourceName为空或无效。

  • 验证GenerateEmbeddedFilesManifest的配置位置
    确认<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>是放在Project A的.csproj的<PropertyGroup>节点内,而非其他位置:

    <PropertyGroup>
      <TargetFramework>net6.0</TargetFramework> <!-- 匹配你的目标框架版本 -->
      <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
    </PropertyGroup>
    
  • 清理并重建解决方案
    删除Project A和Project B的bin、obj目录,执行清理解决方案后重新生成整个项目。缓存的构建文件可能导致清单生成异常。

  • 确认程序集的正确性
    在Project B的调用代码中添加调试输出,验证获取的程序集确实是Project A的:

    var assembly = typeof(DataAnnotationStrings).Assembly;
    Console.WriteLine(assembly.FullName); // 检查输出是否为Project A的程序集信息
    var f = new ManifestEmbeddedFileProvider(assembly);
    
  • 检查resx文件完整性
    打开Project A中的resx文件,确认XML格式无错误,没有空的资源项或无效的键值对,损坏的resx文件可能导致生成的清单包含空的ResourcePath。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:15:01