sjo*_*urg 17 debugging asp.net-mvc configuration
我有一个ASP MVC视图,其中有以下语句
#if DEBUG
//section 1
//do stuff
#else
//section 2
//do other stuff
#endif
Run Code Online (Sandbox Code Playgroud)
在visual studio中,我从下拉列表中选择发布配置来进行构建,代码仍然会逐步完成第1部分.
在解决方案配置属性中,解决方案的所有子项目都设置为发布配置.
我没有到这里来的是什么?
Cra*_*ntz 32
重要的是要了解您的项目有两个完全独立的编译.第一个是您在Visual Studio中执行的操作.第二个是ASP.NET在提供页面之前执行的操作.视图中的if DEBUG是在第二步中完成的.您描述的发布版本是第一步.因此,您的项目的调试/发布设置与Web.config/ASP.NET编译器中的调试设置完全没有任何关系.
而且,Visual Studio构建完全不适合更改Web.config中的调试设置.这是两个单独的编辑,一个不应该影响另一个.
另一方面,当您在Visual Studio内部进行调试时,您可能非常需要使视图的行为不同,并且您可以执行此操作.您只需将视图外的"if"语句移动到由Visual Studio而不是ASP.NET编译的内容中.我们使用HTML帮助程序执行此操作.例如:
/// <summary>
/// Returns the HTML to include the appropriate JavaScript files for
/// the Site.Master.aspx page, depending upon whether the assembly
/// was compiled in debug or release mode.
/// </summary>
/// <returns>HTML script tags as a multi-line string.</returns>
public static string SiteMasterScripts(this UrlHelper helper)
{
var result = new StringBuilder();
#if DEBUG
result.AppendFormat("<script src=\"{0}\" type=\"text/javascript\"></script>", helper.Content("~/Content/js/MicrosoftAjax.debug.js"));
#else
result.AppendFormat("<script src=\"{0}\" type=\"text/javascript\"></script>", helper.Content("~/Content/js/MicrosoftAjax.js"));
#endif
// etc. ...
Run Code Online (Sandbox Code Playgroud)
这包括在Visual Studio中的调试配置中运行时调试JS文件,否则最小化JS.
| 归档时间: |
|
| 查看次数: |
11569 次 |
| 最近记录: |