2011-04-13 2 views
0

나는 컴파일 할 필요가있는 VB.NET 응용 프로그램을 상속 받아 dokumentation을 실행할 수 있습니다. 먼저 "Option Strict On에서 x에서 y 로의 암시 적 변환을 허용하지 않습니다."라는 오류를 받았으므로 프로젝트 파일에서 Option Strict 옵션을 해제했습니다."Option Strict"가 꺼져 있으면 "Option Strict On"으로 컴파일이 실패하는 이유는 무엇입니까?

그렇다면 왜 여전히 같은 오류 메시지가 나타나면서 실패합니까?

+1

오류의 원인이되는 행을 게시 할 수 있습니까? –

+0

희미한 ExceptionHandler ExceptionHandler = Me.LoadControl (ConfigurationSettings.AppSettings ("PagesFolder") & "ExceptionHandler.ascx") – grefly

답변

7

"Option Strict On은 x에서 y 로의 암시 적 변환을 허용하지 않습니다"라는 오류 메시지가 처음으로 표시되므로 프로젝트 파일에서 Option Strict 옵션을 해제했습니다.

반대로 말하면, 오류를 수정 하시겠습니까? 실례지만, 잘못된 수정을 선택했습니다 : Option Strict을 비활성화하는 대신 은 컴파일러가 표시 한 오류를 수정해야합니다. 결국 Option Strict의 요점은 코드를 더욱 강력하게 만드는 것입니다.

Option Strict를 제어 장소 (다른 모든 옵션)가 말했다

: 프로젝트 기본값을 제어

  1. 비주얼 스튜디오 옵션,
  2. 프로젝트 설정의 web.config
  3. 컴파일러 명령 줄
  4. 파일 단위로 소스 코드 파일의 맨 위 줄.

확인 Option Strict 장소 (2), (3)과 (4)와 (일반적으로 Option Strict Off을 돌리면 정말, 정말 나쁜 생각 때문에) 제자리 1에 점에서 꺼져 있는지. 그러면 문제는 사라질 것입니다.

에 명시 적으로 설정을 사용 중지 해보세요. 여기 사지에 가고 있지만 forums.asp.net이 따라하고있어이하여 <configuration> 노드 내부에 직접 다음 추가하여 수행 할 수 있습니다

<system.codedom> 
    <compilers> 
     <compiler compilerOptions ="/optionstrict-" language="vb;vbs;visualbasic;vbscript" 
        extension=".vb" 
        type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </compilers> 
</system.codedom> 

은 ... 아마 이미 <compiler> 노드가 존재 - 그 수정을.

+0

이 옳습니다. 제발, 제발, 제발, 명시 적으로 적절한 캐스트 작업을 추가하여 문제를 해결하십시오. – magma

+0

응답 해 주셔서 감사합니다. 첫 번째 우려는 오류를 수정, 아니, 나는 그것에 대해 걱정하지 않는다. 빌드 할 수있는 상태로 만들고 싶으니 문서 작성 도구를 실행할 수 있습니다. 두 번째 관심 사항, 프로젝트 파일 Option Strict is off, 파일 수준 Option Stricts가 꺼져 있고 Web.Config에 Option Strict에 대한 참조가 없습니다. – grefly

+0

@magma - 걱정 해 주셔서 고맙습니다.이 제품은 이미 제작 중이며 재 작성 예정인 레거시 응용 프로그램입니다. 어떤 옵션이든지 이미 컴파일되어 실행되고 있으며, 현재 상태로 문서화하려고합니다. – grefly

0

옵션 Strict는 프로그램에서 자동 변수 변환 (암시 적 데이터 형식 변환)을 방지합니다.

관련 문제