| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Debug \ Release |
| Автор: Aurus 28.12.2005, 17:39 |
| В чём разница между "Debug" и "Release". Я просто не понимаю |
| Автор: mr.DUDA 28.12.2005, 18:14 | ||
По умолчанию, в Release-конфигурации: 1) включена опция Optimize Code 2) выключена опция Generate Debug Information (не генерится pdb-файл) 3) отсутствует константа препроцессора DEBUG, что приводит к отключению всех conditional-методов с данной константой (например, отключаются все методы System.Diagnostics.Debug: Assert, Write, Fail и др.) |
| Автор: Aurus 29.12.2005, 18:47 |
| вообщем я мало чего понял. и так: 1)что за опция Optimize Code? 2)не генерится pdb-файл - что это за файл такой? 3)что такое conditional-методы ? я вообще ламо в этом деле. обьясните на пальцах - если можно. заранее спасибо. |
| Автор: mr.DUDA 30.12.2005, 11:06 | ||
Очень хочется сказать: читай MSDN... 1) оптимизация кода - это оптимизация кода 2) файл с отладочной информацией, без него не получится "пошагать" по исходному коду в отладке 3) методы, помеченные атрибутом [Conditional("имя_константы")], компилятор автоматически убирает их объявление и вызовы из сборки, если константа эквивалентна false |
| Автор: WTF 30.12.2005, 12:53 | ||
А еще можно вот так сделать:
Как правило DEBUG версия используется в процессе разработки приложения, а RELEASE - когда оно идет в эксплуатацию пользователям. |
| Автор: Exception 30.12.2005, 13:06 |
| Кстати (если не ошибаюсь), при Debug компилер вставляет IL-инструкции nop в код, а в Release он так не делает. Правда, зачем эти nop нужны, не знаю... |
| Автор: dronzo 30.12.2005, 14:13 | ||
| Ага, самому стало интересно. Вот, что нашёл по этому поводу. http://www.panopticoncentral.net/archive/2004/02/03/267.aspx
|