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

VB项目引用私有NuGet包后无法使用Module方法的解决咨询

解决VB NuGet包中Module成员无法访问的问题

嘿,我来帮你捋捋这个问题——VB的Module确实有点容易踩坑,咱们一步步解决:

1. 先确认命名空间是否导入

你的TestModule放在TestHelperNamespace这个命名空间里,所以在你要使用这个Module方法的项目里,必须先导入这个命名空间才行:

Imports TestHelperNamespace

导入之后,你直接调用方法就行,不用加Module的名字:

StringSub("随便传个字符串")

要是不想全局导入,也可以用完整的命名空间+Module名来调用:

TestHelperNamespace.TestModule.StringSub("随便传个字符串")

2. 如果是扩展方法,别忘了加Extension属性

你提到这个Module里是扩展方法,但看你贴的代码里没加<Extension()> 标记——这可是VB扩展方法的必备条件!如果要让StringSub成为String类型的扩展方法,得把Module代码改成这样:

Namespace TestHelperNamespace
    ' 必须导入这个命名空间才能用Extension属性
    Imports System.Runtime.CompilerServices

    Public Module TestModule
        <Extension()>
        Public Sub StringSub(ByVal targetString As String)
            ' 这里写你的扩展方法逻辑
        End Sub
    End Module
End Namespace

改完之后重新打包NuGet包,更新引用,导入命名空间后,就能像调用String自带方法一样用了:

Imports TestHelperNamespace

"我是测试字符串".StringSub()

3. 最后检查下NuGet包的内容

有时候可能打包的时候漏了Module的代码,你可以把.nupkg后缀改成.zip,解压后看看里面的.dll里有没有TestModule的定义,确保代码确实被打包进去了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:22:31