引用的 DLL 未声明?

Posted

技术标签:

【中文标题】引用的 DLL 未声明?【英文标题】:Referenced DLL not declared? 【发布时间】:2012-09-21 21:08:21 【问题描述】:

我在我的应用程序中添加了全局错误处理以捕获所有未处理的异常。我现在刚刚添加了自动将错误添加到我的fogbugz 帐户的功能。现在这是我的问题。

我添加了对 dll 的引用,还必须添加库的导入声明。执行此操作后,代码不会显示任何错误。虽然一旦我去调试代码或构建它,我就会收到这个错误:

'BugReport' 未声明。由于其保护级别,它可能无法访问。

我猜这与某种保护有关?这一切都在我的 applicationevents.vb 类中。

我在另一个项目中尝试了相同的代码,它可以正常工作,所以我知道它不是代码。我只是不知道它是什么?我是否必须更改我的应用程序设置中的某些内容? 这是代码。为了隐私,我用我的信息替换了字符串。

Imports FogBugz

Namespace My

' The following events are available for MyApplication:
' 
' Startup: Raised when the application starts, before the startup form is created.
' Shutdown: Raised after all application forms are closed.  This event is not raised if the application terminates abnormally.
' UnhandledException: Raised if the application encounters an unhandled exception.
' StartupNextInstance: Raised when launching a single-instance application and the application is already active. 
' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
Partial Friend Class MyApplication

    Private Sub MyApplication_UnhandledException(ByVal _
    sender As Object, ByVal e As  _
    Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) _
    Handles Me.UnhandledException

        'TO DO: SET THESE VALUES BEFORE CALLING THIS METHOD! 
        Dim url As String = "***DemoString"
        'example: http://localhost/fogbugz/scoutSubmit.asp
        Dim user As String = "***DemoString"
        'existing FogBugz User
        Dim project As String = "***DemoString"
        'existing FogBugz project 
        Dim area As String = "***DemoString"
        'existing FogBugz area
        Dim email As String = "***DemoString"
        'email address of the customer who reports the bug
        Dim defaultMessage As String = "Bug has been submitted. Every bug submitted helps us make this software that much better. We really do appreciate it."
        'the message to return to the user if no Scout Message is found for an existing duplicate bug
        Dim forceNewBug As Boolean = False
        'If set to true, this forces FogBugz to create a new case for this bug, even if a bug with the same description already exists.
        '************************************************************************************
        'send the bug we created:
        BugReport.Submit(url, user, project, area, email, forceNewBug, _
        defaultMessage, e.Exception, True, "0.1.2.3", True)


        ' If the user clicks No, then exit.
        e.ExitApplication = _
            MessageBox.Show(e.Exception.Message & _
                    vbCrLf & "Oops! It looks like we have encountered a bug. A bug report has been sent to the developers, so they can have it fixed in a jiffy. Continue?", "An Error has occured.", _
                    MessageBoxButtons.YesNo, _
                    MessageBoxIcon.Question) _
                    = DialogResult.No
    End Sub
End Class


End Namespace

【问题讨论】:

这是一个控制台应用程序吗?您的项目是否依赖其他库? 为什么你有 C# 和 vb.net 标签? 将项目的 .NET Framework 目标版本从客户端更改为完整版本,然后重试。 汉斯你是对的。在我回到这里看你发布这个之前,我已经这样做了。这就是解决方案。我使用的是客户资料。 【参考方案1】:

“保护级别”是指BugReport 类上的访问修饰符。

如果您将一个类声明为 Friend(C# 中为 Internal),则同一程序集 (.dll) 中的其他类可以访问它。

当您尝试从另一个项目中引用该类时,它无法访问。

您需要将Friend 更改为Public

【讨论】:

以上是关于引用的 DLL 未声明?的主要内容,如果未能解决你的问题,请参考以下文章

使用 DLL 时 Qt 应用程序崩溃,如果导出的函数未声明 APIENTRY,则可以正常工作

在CentOS7上与g ++进行DLL链接后,未声明C ++函数

NuGet - NU5131: nuspec文件中声明的引用没有被打包。

使用 XML 时引用未声明的实体异常

声明和定义函数静态会产生“对 function_name() 的未定义引用”

将“m_Mutex”声明为引用但未初始化错误