我想在Visual Studio開始調試我的程序之前運行一個任務。 我每次調試程序時都需要運行此任務,因此生成後事件不夠好。在Visual Studio 2008上設置預調試事件
我查看了設置的「調試」選項卡,但沒有這樣的選項。
有沒有辦法做到這一點?
我想在Visual Studio開始調試我的程序之前運行一個任務。 我每次調試程序時都需要運行此任務,因此生成後事件不夠好。在Visual Studio 2008上設置預調試事件
我查看了設置的「調試」選項卡,但沒有這樣的選項。
有沒有辦法做到這一點?
你可以嘗試(IMO)的唯一事情是實驗與您項目屬性的調試頁面命令屬性,但我不認爲會工作。
編輯:如果你想開始一個批處理文件,像這樣做,
yourbatch.bat $(targetPath)
和yourbatch.bat你可以打電話給你這樣的程序,
call %1 %2 %3 %4 %5 %6 %7 %8 %9
,其中2% ...%3代表可能的程序參數(由您的IDE提供)
我只想知道您的程序是否會直接調試(我認爲您可能必須手動附加到我DE)
爲您的「調試」構建的編譯選項添加預構建步驟,並且沒有在「發佈」構建中。 (編輯:預編譯步驟在項目屬性的「生成事件」部分中設置)
如果您正在討論函數或代碼中的某些內容,請使用預編譯器標誌。例如,在你的調試版本,你可能有「_DEBUG」或編譯器標誌類似的東西...所以在代碼中,你可以做
#ifdef _DEBUG
doMySpecialTask();
#endif
,並使用調試版本時,它纔會被調用。
編輯:從以下注釋中移動信息: 要在運行時動態檢測調試器,可以使用Windows中的IsDebuggerPresent()
函數。 Mac也有一個AmIBeingDebugged()
。如果你希望程序在調試時行爲不同,這很有用,但除非沒有其他選項可用,否則我不建議這樣做。調試時修改程序的行爲可能會導致問題消失或以不同的方式顯示。
但是,即使我不需要構建應用程序,預構建事件也會被調用嗎? – Arthur 2011-05-06 09:33:19
@jules不,不,如果你不建立應用程序。在這種情況下,你可以使用'#ifdef'語句來代替。例如'doMySpecialTask()'可以運行.bat文件或.cmd文件來啓動應用程序,甚至啓動應用程序。 無論何時使用調試版本,這都會工作,而不僅僅是當你構建它時。 如果您需要動態檢測調試器,請使用Windows中的「IsDebuggerPresent」函數。請參閱http://msdn.microsoft.com/en-us/library/ms680345%28v=vs.85%29.aspx – Dennis 2011-05-06 09:57:03
這聽起來是個好主意,但是如何將兩條命令放在同一行上?假設我想調用'myscript.bat',然後調用'$(TargetPath)',你將如何在同一個命令行上調用它們。調試器也不會嘗試調試'myscript.bat'嗎? – Arthur 2011-05-09 09:16:39
@jules將所有命令放在.cmd/.bat文件中。您可以從一個.bat文件中調用.bat文件。bat文件(請參閱http://www.computerhope.com/batch.htm尋求幫助)使用CALL命令。 – Dennis 2011-05-09 13:27:03
有沒有人發現它是否會直接調試項目? – Avery3R 2013-09-18 00:34:55