È importante capire che esistono due compilazioni completamente separate per il progetto. Il primo è quello che fai in Visual Studio. Il secondo è quello che ASP.NET fa appena prima che la pagina venga pubblicata. Se DEBUG all'interno della tua vista è fatto nel secondo passaggio. La build di rilascio che descrivi è il primo passo. Pertanto, l'impostazione di debug/release del tuo progetto non ha nulla a che fare con l'impostazione di debug in Web.config/il compilatore ASP.NET.
Inoltre, sarebbe del tutto inappropriato per la build di Visual Studio modificare le impostazioni di debug in Web.config. Queste sono due compilazioni separate e una non dovrebbe influenzare l'altra.
D'altra parte, probabilmente hai un'esigenza perfettamente ragionevole per fare in modo che la visualizzazione si comporti diversamente quando esegui il debug all'interno di Visual Studio e puoi farlo. Hai solo bisogno di spostare l'istruzione "if" al di fuori della vista e in qualcosa che è compilato da Visual Studio, invece di ASP.NET. Lo facciamo con un helper HTML. Ad esempio:
/// <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. ...
Questo include i file JS di debug durante l'esecuzione nella configurazione di debug in Visual Studio, ma minimizzato JS in caso contrario.
fonte
2009-09-04 12:47:00
Passaggio tra il minified e il full javascript/css era esattamente la ragione per cui stavo usando questo IF DEBUG. La ringrazio per la risposta. –
È confuso perché Visual Studio mette in ombra il blocco di testo sbagliato. – ajbeaven
+1 spiegazione molto buona su due compilatori. Ha senso ora. – ashes999