none
Imports指定しているのに、インスタンスの初期化子部分で「型''が定義されいません」が出ます。 RRS feed

  • 質問

  • ■開発環境
    Windows7
    VB2005
    VisualStudio2005 version 8.0.50727.867
    NET Framework version 2.0.50727 SP2

    お世話になっております。質問させて下さい。

    クラスとそのクラスを参照するExeの2プロジェクトを新規で起こした
    ソリューションと共に用意してそれぞれ以下のようにコーディングしています。

    ■TestClass.dll
    --------------------------------------------
    Public Class Class1
        Public Member1 As Integer
    End Class
    --------------------------------------------


    ■Form1.exe
    --------------------------------------------
    Imports TestClass
    Public Class Form1
        Private cls As Class1 = New Class1 ←型'Class1'は定義されていません
                                     ~~~~~
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        End Sub
    End Class
    --------------------------------------------

    しかし、上記のように、まだ一回もビルドもしていないコード分析の時点で
    「型'Class1'は定義されていません」とエラーが出てしまいます。
    ビルドも失敗しますし、リビルドも変わりません。
    開発PCが10台ほどありますが、このエラーが出るのは新規追加したPCにVSをインストールした
    2台でのみ発生しています。


    色々調べても原因が分からず、試しに

    Private cls As Class1 = New TestClass.Class1
    だとエラーにならず正常に実行出来る事が分かり、

    Private cls As New Class1
    も、やはりエラーにならず、

    以下のようにSub/Functionの中に移動してみるとこれもエラーになりませんでした。
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim cls As Class1 = New Class1
    End Sub

    先頭行のImportsがコード分析されていないのか分かりませんがインスタンス化時の初期化子が正しく
    認識/分析されていない気がしたので、先頭行のImportsを消し、
    プロジェクトのプロパティ画面>参照>インポートされた名前空間で、「TestClass」にチェックを入れると
    これもエラーにならず、正常に実行されます。


    どなたか、Form1側の上記コードがエラーとなる原因を教えて頂けないでしょうか?
    正常となったコードに修正する事は簡単ですが、できれば原因を知りたいと考えています。

    どうかよろしくお願い致します。m(_ _)m

    2015年7月14日 4:10

回答

  • Windows7に2005Proの日本語版と英語版を試しに入れてみましたところ素の状態(8.0.50727.42)では再現はしました。
    ただし、SP1を入れてやるとエラーにならなくなったので単純にSP1で修正されるバグの気がします。

    提示されているバージョンはSP1適用後のバージョンなので、SP1適用後にも現象が引き続き発生している場合のであれば、SP1を再度適用してみてはどうでしょう。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2015年7月14日 12:10

すべての返信

  • Windows7に2005Proの日本語版と英語版を試しに入れてみましたところ素の状態(8.0.50727.42)では再現はしました。
    ただし、SP1を入れてやるとエラーにならなくなったので単純にSP1で修正されるバグの気がします。

    提示されているバージョンはSP1適用後のバージョンなので、SP1適用後にも現象が引き続き発生している場合のであれば、SP1を再度適用してみてはどうでしょう。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2015年7月14日 12:10
  • お世話になっております。
    提示して頂いた通り、SP1を当て直したら治りました!
    gekka様、とても助かりました。ありがとうございました。m(_ _)m

    2015年7月15日 6:11