里面的代码我只在调试模式下发布测试我的本地机器,我希望'#if调试'模式将工作,以便我可以测试功能,我不想在生产中。发布在调试模式,但编译器删除#if调试
当我在调试模式下发布的web.config中仍具有
<system.web>
<compilation debug="true" targetFramework="4.0">
</system.web>
但是当我使用反射器对项目的DLL,它是这样
#if debug
PlaceHolder1.Visible = true;
#endif
代码是不存在的。我认为编译器已经删除它。
注:我不是在谈论构建,我正在谈论发布。做一个调试版本的工作,因为我期望它与上面的代码仍然存在
这是预期的行为?当我以调试模式发布时,是否有办法让编译器包含这些代码段?我是否全部错了?
更新: 为了响应@ Dash的评论我的封装/发布站点设置为:
如果我使用'if#DEBUG',而不是'if#debug',那么一定要在项目属性中检查'Package/Publish Web'设置以确保'Debug'是发布时的活动构建配置。 – dash
你的Build属性页面是什么样的?你有'定义DEBUG常数'打勾?如果我在Package/Publish Web页面中设置了Debug,并且在Build选项卡上勾选了该选项,然后进行发布,则适用于我,您可以使用ILSpy(http://ilspy.net/)检查以确保你期待的代码已经包含在内。 – dash
@dash是定义DEBUG常量被打勾,但它不适用于我。我一直在使用http://www.reflector.net/来检查发布后的编译代码,但感谢关于ILSpy的提示,我之前没有听说过。为了防止这种情况出现 – Dean