1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

از کار افتادن کامپایلر VB.Net به هنگام...و رفع آن

شروع موضوع توسط minaaa ‏29/1/11 در انجمن .Net

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    خطا :

    در هنگام Build کردن پروزه ممکن است که کامپایلر ویژوال بیسیک دات نت
    ناگهان از کار افتاده و شما پیغام خطای زیر را دریافت نمایید :







    کد:
    Visual Basic .NET compiler is unable to recover from the following error: System Error &amp;Hc0000005&amp; (Visual Basic internal compiler error)</pre>


    Save your work and restart Visual Studio .NET.

    علت بروز خطا :

    این مشکل (BUG) زمانی رخ میدهد که شما از کلمه کلیدی DirectCast در جهت
    پاس کردن یک آرگومان به سازنده ی یک Atribute استفاده نمایید . به طور
    مثال اگر شما در یکی از فایلهای پروژه خود از کد زیر استفاده نمایید ، خطای
    فوق رخ میدهد :

    کد:
    &lt;DefaultValueAttribute(DirectCast(Nothing, String))></pre>


    چگونگی رفع خطا :

    برای رفع این مشکل ، مراحل زیر را دنبال نمایید :

    1 – پس از اینکه پیغام خطا را دریافت کردید ، از VS.Net خارج شوید .

    2 – VS.Net را مجددا اجرا نمایید .

    3 – در کد خود به جای استفاده از کلمه کلیدی DirectCast ، از کلمه کلیدی CType استفاده نمایید .



    به طور مثال ممکن است که پروژه شما حاوی فایلی باشد که کد زیر در آن وجود دارد :







    کد:
    &lt;DefaultValueAttribute(DirectCast(Nothing, String))></pre>


    در اینصورت کد زیر را جایگزین کد فوق نمایید :







    کد:
    &lt;DefaultValueAttribute(CType(Nothing, String))></pre>


    کد جدید از کلمه کلیدی CType به جای DirectCast استفاده میکند .



    چگونگی تولید دوباره خطا:

    در جهت تولید دوباره این مشکل مراحل زیر را دنبال نمایید .

    1 – VS.Net را اجرا نمایید .

    2 – یک پروژه کنسول جدید ایجاد نمایید .( به طور پیش فرض فایل Module1.vb</acronym> ایجاد خواهد شد.)

    3 – در فایل Module1.vb</acronym> کد زیر را بیابید :







    کد:
    Module Module1</pre>


    4 – کد زیر را قبل از کدی که در مرحله 3 آن را یافتید وارد نمایید :







    کد:
    Imports System.ComponentModel</pre>


    5 – در فایل Module1.vb</acronym> کد زیر را پیدا نمایید :

    کد:
    End Sub</pre>


    6 – کد زیر را بعد از کدی که در مرحله قبل پیدا کردید قرار دهید :







    کد:
    &lt;DefaultValueAttribute(DirectCast(Nothing, String))> _

    Private ReadOnly Property Prop() As Integer

    Get

    End Get

    End Property</pre>


    7 – پروژه را Build نمایید .

    به خروجی زیر که در پنجره Build ظاهر میشود توجه کنید :







    کد:
    Preparing resources...

    Updating references...

    Performing main compilation...</pre>


    در این لحضه کامپایلر VB</acronym>.Net از کار می افتد .

    8 – از منوی Build گزینه Cancel را در جهت توقف عملیات کامپایل کلیک کنید .

    9 – از منوی فایل گزینه Close را انتخاب نمایید .

    شما پیغام خطایی که راجع به آن صحبت شد را دریافت خواهید کرد .