今天調試代碼是突然發現工程無法編譯通過,提示信息如下:
錯誤 2 命令“Call XXXXXX.BAT”已退出,代碼爲 145。 SH.SpeConT.Config
查看輸出結果:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(4291,5): error MSB3073: 命令“Call XXXXXX.BAT”已退出,代碼爲 145。
通過拷貝備份代碼、更改工程路徑、修改工程屬性均無法修正。
但是備份工程可以正常編譯。
感覺很奇怪,明明沒有改動代碼,對比備份代碼沒有任何區別,困擾了好幾個小時~
網上查了查看到 得到提示可能是由於批處理文件失敗導致。
於是通過逐行調整批處理文件找到rd xxx語句導致編譯失敗,查看刪除文件夾,修改爲可讀寫屬性,工程編譯通過。
應該是調用批處理文件是,如果執行失敗則報error MSB3073這個錯誤,解決方法其實是保證批處理文件執行成功。
後來思索出現問題的場景可能是直接從服務器拷貝文件到工程,導致文件只讀,批處理文件刪除文件失敗。