Как сказать, было ли приложение.NET скомпилировано в режиме DEBUG или RELEASE?

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
45
задан Marc.2377 1 May 2019 в 21:29
поделиться

3 ответа

Я вел блог это давным-давно, и я не знаю, является ли это все еще допустимый или нет, но код что-то как...

private void testfile(string file)
{
    if(isAssemblyDebugBuild(file))
    {
        MessageBox.Show(String.Format("{0} seems to be a debug build",file));
    }
    else
    {
        MessageBox.Show(String.Format("{0} seems to be a release build",file));
    }
}    

private bool isAssemblyDebugBuild(string filename)
{
    return isAssemblyDebugBuild(System.Reflection.Assembly.LoadFile(filename));    
}    

private bool isAssemblyDebugBuild(System.Reflection.Assembly assemb)
{
    bool retVal = false;
    foreach(object att in assemb.GetCustomAttributes(false))
    {
        if(att.GetType() == System.Type.GetType("System.Diagnostics.DebuggableAttribute"))
        {
            retVal = ((System.Diagnostics.DebuggableAttribute)att).IsJITTrackingEnabled;
        }
    }
    return retVal;
}
29
ответ дан ZombieSheep 26 November 2019 в 21:22
поделиться

Вы находитесь на правильном пути на самом деле. Если Вы посмотрите в окне Disassembler в отражателе, то Вы будете видеть следующую строку, если это было создано в режиме отладки:

[assembly: Debuggable(...)]
9
ответ дан Joe Basirico 26 November 2019 в 21:22
поделиться

Как насчет того, чтобы использовать Jeff Key утилита IsDebug? Это немного датировано, но так как у Вас есть Отражатель, можно декомпилировать его и перекомпилировать его в любой версии платформы. Я сделал.

2
ответ дан flipdoubt 26 November 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: