Я следовал этому примеру с веб-страницы Скотта Хансельмана: http://www.hanselman.com/blog/ReleaseISNOTDebug64bitOptimizationsAndCMethodInliningInReleaseBuildCallStacks.aspx
Моя цель - получить номер строки, из которой выдается исключение, а не там, где оно перехватывается.
Когда я компилирую код с помощью следующего скрипта сборки, он не будет работать
SET FXROOT=%Systemroot%\Microsoft.NET\Framework\v4.0.30319
DEL *.exe /q
"%FXROOT%\csc.exe" /t:exe /out:NormalRelease.exe /debug:pdbonly /o+ NormalProgram.cs
NormalRelease.exe > NormalRelease32.txt
Вывод:
System.ApplicationException: generic bad thing
at NormalProgram.Main(String[] args) in c:\Development\DebugSymbols\DebugSymConsole\NormalProgram.cs:line 8
Когда я компилируюкод с этим сценарием сборки будет работать
SET FXROOT=%Systemroot%\Microsoft.NET\Framework\v2.0.50727
DEL *.exe /q
"%FXROOT%\csc.exe" /t:exe /out:NormalRelease.exe /debug:pdbonly /o+ NormalProgram.cs
NormalRelease.exe > NormalRelease32.txt
Вывод:
System.ApplicationException: generic bad thing
at NormalProgram.badMethod() in c:\Development\DebugSymbols\DebugSymConsole\NormalProgram.cs:line 18
at NormalProgram.Main(String[] args) in c:\Development\DebugSymbols\DebugSymConsole\NormalProgram.cs:line 8
Разница в том, что в моем первом примере я скомпилировал против .net2-framework, а во втором примере я скомпилировал против .net4-framework.
Буду признателен за любые решения моей проблемы, спасибо.