2009-08-05 6 views
0

Visual Studio에서 방금 VB.NET 3.5 프로젝트 중 하나에서 nullable 연산자를 사용하여 어디서나 "error BC30037: Character is not valid."을 (웹 사이트의 유효성을 검사하는 동안) 던지기 시작했습니다. 몇 달 전에 동료에게 이런 일이 일어 났지만 어떻게 고쳐 졌는지 기억하지 못합니다.VB.NET 3.5; "오류 BC30037 : 문자가 유효하지 않습니다."라는 nullable 형식에 대해 불평하는 컴파일러 (Double? 같은)

예를 들어, Double?의 모든 인스턴스를 Nullable(Of Double)으로 변경하면 잘 컴파일되고 동일한 솔루션의 다른 프로젝트에서 nullable의 다른 사용법은 계속 정상적으로 작동합니다.

솔루션을 정리하고, Visual Studio를 닫고, 임시 ASP.NET 파일을 삭제하고, Visual Studio를 다시 사용하지 않으려 고 시도했습니다.

내가 시도 할 수있는 다른 방법이 있습니까?

ADDITION : 나는 그 대리인 구문도 실패 말할 것이라고 생각

.

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

paymentsIList(Of Payment)이다 : 나는이 코드 조각이있다. Payment 개체에는 Code이라는 문자열 속성이 있습니다. Visual Studio에서 볼 수있는 유효성 검사 오류나 그 어떤 코드 행이 무엇인지 모를 것으로 생각되는 항목이 없습니다. Intellisense는 잘 작동하지만 컴파일러는 구문에 적합합니다. 다음 두 가지 오류는 각각 위의 코드 두 줄을 동반 : 비주얼 스튜디오 알고 가정 년대 VB.NET 3.5 기능에 대한 지식이없는 경우로

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

그것은 거의 것 같다.

+0

웹 사이트 또는 웹 응용 프로그램 프로젝트가 중요할까요? –

+0

이것은 웹 _site_ 프로젝트입니다. –

답변

2

나는 그것을 알아 냈다. 속성 페이지에서 버전을 선택한 후에도 웹 사이트 프로젝트에 사용할 컴파일러 버전을 지정해야합니다. 내 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> 

글쎄요.

+0

@Downvoter : 설명해 주시겠습니까? –

-1

두 번째 Andrew의 대답. 더블? 는 C# 구문이지만 VB에서는 존재하지 않습니다. VB는 Nullable (Of Double)을 사용합니다.

+1

Andrew가 잘못한 것 같습니다 ;-) –

1

나도이 문제를 가지고 있었다 -하지만이 프로젝트 파일의 손상으로 인해 발생 된 -에서 .aspx 페이지를 컴파일 설정 방법 좀 ....

그리고 VB는 것을 의미 같은 aspx 페이지를 컴파일 '< % @'문자는 유효하지 않습니다 ...

프로젝트를 언로드하여 문제가되는 항목을 찾아서 삭제해야합니다.