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

C#与VB项目清单资源结构差异原因及扁平化命名配置问询

问题解答

1. 命名差异的官方定义与说明

这类差异属于C#与VB.NET编译器嵌入式资源默认命名规则的设计差异,官方未给该差异单独设置专属名称,相关规则分别在两门语言的编译器行为文档中明确:

  • VB.NET对嵌入式资源的默认命名规则为[项目根命名空间].[文件名].[扩展名],会自动忽略资源文件所在的文件夹层级,生成扁平化的资源清单名称。
  • C#对嵌入式资源的默认命名规则为[项目默认命名空间].[资源文件相对路径按点分隔].[文件名].[扩展名],会完整保留项目内的文件夹层级结构生成资源名。

2. 沿用VB扁平化命名的实现方案

不需要修改原有业务代码,有两种配置方式可以实现需求:

方式1:单资源单独指定

右键点击目标资源文件,选择「属性」,在属性面板的LogicalName字段中直接填写你需要的原有资源名(比如App.IssueNotification.html),编译器生成资源清单时会优先使用该字段定义的名称,自动忽略文件夹层级。

方式2:全局批量配置

编辑你的.csproj项目文件,添加通配规则统一设置某一类资源的命名格式,示例配置如下:

<ItemGroup>
  <!-- 匹配Resources文件夹下所有html格式的嵌入式资源,统一生成扁平化命名 -->
  <EmbeddedResource Include="Resources\**\*.html">
    <LogicalName>App.%(Filename)%(Extension)</LogicalName>
  </EmbeddedResource>
</ItemGroup>

你可以根据实际的文件类型、根命名规则调整Include的通配符和LogicalName的拼接规则,适配原有代码的读取逻辑。


内容的提问来源于stack exchange,提问作者A. Niese

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:24:02