Debug är debug och prod är prod… Så varför har vi en massa assemblies i produktion som kompilerats med debug attribut? Vore det inte bra att kunna köra en batchkörning på alla assemblies i prod för att se om någon slarvat? Såklart ni vill! :-) Har ni powershell? Sweet!

Man tycker kanske att det skulle räcka med att kolla en;

[System.Diagnostics.DebuggableAttribute]::GetCustomAttribute($loadedAssembly, [System.Type]::GetType("System.Diagnostics.DebuggableAttribute"))

för att se om vi slängt på ett debug attribut… En enkel $null check borde vara nog… Men… Det funkar med vb compilern (vem som nu använder den ), men c# compilern slänger alltid in ett debug attribut (även i release build) vilket gör att vi får gå vidare med…

Att kolla in DebuggingFlags… Yay!

function get-debugmode([string] $nameOfAssembly)
{
$loadedAssembly = [System.Reflection.Assembly]::Loadfile($nameOfAssembly, $null)
$debugAttribute = [System.Diagnostics.DebuggableAttribute]::GetCustomAttribute($loadedAssembly, [System.Type]::GetType("System.Diagnostics.DebuggableAttribute"))
$debugAttribute
}

Debug

Release

Detta är ett utmärkt sätt för IT-Pros att få köra en härlig “blame-safari”/förbrödring på dev sidan och samtidigt får upp kvaliteten på det ni kör i produktion!

Remember me when you're the one who's silver screened
Remember me when you're the one you always dreamed
Remember me whenever noses start to bleed
Remember me, special needs…