디버그 모드로 내 로컬 시스템에서 테스트하기 위해 게시 중이며 '#if 디버그'모드가 작동하여 내가 테스트 한 기능을 테스트 할 수 있기를 바랬습니다. 아직 생산을 원하지 않는다.디버그 모드로 게시하지만 컴파일러는 #if 디버그 내에서 코드를 제거합니다.
내가 디버그 모드로 게시 할 때의 Web.config은 여전히
<system.web>
<compilation debug="true" targetFramework="4.0">
</system.web>
을 가지고 있지만이 프로젝트의 DLL에이
#if debug
PlaceHolder1.Visible = true;
#endif
같았다 코드를 반사판을 사용할 때 존재하지 않는다. 컴파일러가 제거했다고 생각합니다.
참고 : 저는 빌드에 대해 이야기하는 것이 아니라 게시하는 것에 대해 이야기하고 있습니다. 위의 코드를 사용하여 디버그 빌드를 수행하면 여전히 작동합니다.
이 예상되는 동작입니까? 디버그 모드로 게시 할 때 컴파일러에서 해당 코드 비트를 포함하도록하는 방법이 있습니까? 나는이 모든 잘못을 저지르고 있는가?
업데이트 : @에 대응 은 /의 내 패키지를 언급 대시 웹 설정은 게시 :
이것은 나를 위해 작동 게시 할 때 활성 빌드 구성. – dash
빌드 속성 페이지는 어떻게 생깁니 까? 'Define DEBUG constant '에 체크 표시를 했습니까? 패키지/게시 웹 페이지에서 디버그가 설정되어 있고 빌드 탭에서 해당 옵션을 선택한 다음 게시를 수행하면이 기능이 작동합니다. ILSpy (http://ilspy.net/)를 사용하여 당신이 기대하는 코드가 포함되었습니다. – dash
@dash 예 정의 DEBUG 상수가 체크되어 있지만 그것이 작동하지 않습니다. 내가 게시 한 후 컴파일 된 코드를 확인하기 위해 http://www.reflector.net/을 사용했지만 ILSpy에 대한 팁을 주셔서 감사합니다. 전에는 들어 보지 못했습니다. 이 설정을 다른 설정과 함께 사용하겠습니다. – Dean