0

すべての未処理の例外をキャッチするために、グローバル エラー処理をアプリケーションに追加しました。これで、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 = "StackOverFlowDemoString"
        'example: http://localhost/fogbugz/scoutSubmit.asp
        Dim user As String = "StackOverFlowDemoString"
        'existing FogBugz User
        Dim project As String = "StackOverFlowDemoString"
        'existing FogBugz project 
        Dim area As String = "StackOverFlowDemoString"
        'existing FogBugz area
        Dim email As String = "StackOverFlowDemoString"
        '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
4

1 に答える 1

0

「保護レベル」は、クラスのアクセス修飾子を指しますBugReport

クラスをFriend( InternalC# では) として宣言すると、同じアセンブリ (.dll) 内の他のクラスからアクセスできます。

別のプロジェクトからそのクラスを参照しようとしても、アクセスできません。

Friendに変更する必要がありますPublic

于 2012-10-01T01:23:56.267 に答える