0

error BC30037: Character is not valid.Visual Studioは、VB.NET 3.5プロジェクトのいずれかでnull許容演算子を使用している場合は常に、(Webサイトの検証中に)「」をスローし始めました。これは数ヶ月前に同僚に起こりましたが、彼はそれをどのように修正したかを覚えていません。

たとえば、のすべてのインスタンスをに変更するDouble?Nullable(Of Double)、正常にコンパイルされ、同じソリューション内の他のプロジェクトでのnullablesの他の使用法は引き続き正常に機能します。

ソリューションをクリーンアップし、Visual Studioを閉じ、一時ASP.NETファイルを削除し、VisualStudioを再起動してみました。

他に試すことができるものはありますか?

添加:

デリゲート構文も失敗していると言いたいと思いました。私はこのコードを持っています:

Dim hasSkips As Boolean = payments.Where(Function(p) p.Code = "SKIP").Count > 0
Dim isRegular As Boolean = Not hasSkips

paymentsですIList(Of Payment)Paymentオブジェクトには、と呼ばれる文字列プロパティがありますCode。Visual Studioには、そのコード行が何をしているのかわからないと思わせる検証エラーや目に見えるものはありません。Intellisenseは問題なく動作しますが、コンパイラは構文に適合しています。次の2つのエラーは、それぞれ上記の2行のコードに付随しています。

error BC30201: Expression expected.
error BC30451: Name 'hasSkips' is not declared.

Visual Studioには、知っているはずのVB.NET3.5の機能がないように見えます。

4

3 に答える 3

2

私はそれを考え出した。プロパティ ページでバージョンを選択した後でも、使用するコンパイラのバージョンを Web サイト プロジェクトに指示する必要があります。これを私のweb.configに追加すると、問題が修正されました:

<system.codedom>
    <compilers>
        <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <providerOption name="CompilerVersion" value="v3.5"/>
            <providerOption name="OptionInfer" value="true"/>
            <providerOption name="WarnAsError" value="false"/>
        </compiler>
    </compilers>
</system.codedom>

まあ、わかってよかったと思います。

于 2009-08-11T21:26:53.457 に答える
1

私もこの問題を抱えていましたが、プロジェクトファイルの破損が原因でした.aspxページがコンパイルされるように設定されていました....

また、Aspx ページを VB としてコンパイルすると、開始の '<%@' 文字が無効になります...

プロジェクトをアンロードする必要がありました-問題のあるエントリを見つけて削除します。

于 2011-12-14T23:27:35.360 に答える
-1

アンドリューの答えに二番目です。ダブル?は C# の構文であり、VB には存在しません。VB は Nullable(Of Double) を使用します。

于 2009-08-05T19:22:34.723 に答える