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

C#转VB.NET后出现BC30663错误:特性重复应用问题求助

解决VB.NET中BC30663属性重复应用错误

问题场景

将C#自动生成的资源类转换为VB.NET模块后,编译时触发错误BC30663,提示CompilerGeneratedAttribute和DebuggerNonUserCodeAttribute不能被多次应用,但原C#代码可正常运行。

错误原因

转换后的VB.NET代码中,同一属性被重复声明:

  • 既使用了简写形式<DebuggerNonUserCode>、<CompilerGenerated>
  • 又显式添加了完整命名空间的属性Global.System.Diagnostics.DebuggerNonUserCodeAttribute()、Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()

而C#代码中每个属性仅标注一次,因此不会触发重复应用的错误。

修正后的VB.NET代码

移除重复的属性声明,保留一组即可,同时确保资源管理器的命名空间与项目实际情况匹配:

Namespace My.Resources
    <GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")>
    <DebuggerNonUserCode>
    <CompilerGenerated>
    <Global.Microsoft.VisualBasic.HideModuleNameAttribute()>
    Friend Module Resources
        <EditorBrowsable(EditorBrowsableState.Advanced)>
        Friend ReadOnly Property ResourceManager() As ResourceManager
            Get
                If Resources.resourceMan Is Nothing Then
                    ' 注意此处命名空间需与项目资源文件的实际命名空间一致
                    Resources.resourceMan = New ResourceManager("My.Resources.Resources", GetType(Resources).Assembly)
                End If
                Return Resources.resourceMan
            End Get
        End Property

        <EditorBrowsable(EditorBrowsableState.Advanced)>
        Friend Property Culture() As CultureInfo
            Get
                Return Resources.resourceCulture
            End Get
            Set(ByVal value As CultureInfo)
                Resources.resourceCulture = value
            End Set
        End Property

        Private resourceMan As ResourceManager
        Private resourceCulture As CultureInfo
    End Module
End Namespace

额外注意事项

  • 确保ResourceManager构造函数中的第一个参数(资源名称)与项目中资源文件的完整命名空间一致,否则会导致资源加载失败
  • VB.NET的模块与C#的类特性不同,HideModuleNameAttribute是VB特有的属性,用于在IntelliSense中隐藏模块名称,保留即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:17:10