我有一個Visual Studio項目中有幾個自定義生成步驟,但其中一些只是無法運行。沒有錯誤也沒有警告,根據構建日誌,他們運行的是,但它們絕對不是。爲什麼我的自定義生成步驟不在Visual Studio 2010中運行?
這都是在舊版本的Visual Studio的工作,但現在它在Visual Studio腳麻2010
我有一個Visual Studio項目中有幾個自定義生成步驟,但其中一些只是無法運行。沒有錯誤也沒有警告,根據構建日誌,他們運行的是,但它們絕對不是。爲什麼我的自定義生成步驟不在Visual Studio 2010中運行?
這都是在舊版本的Visual Studio的工作,但現在它在Visual Studio腳麻2010
它的失敗的原因是,有在同一項目中的另一個定製創建步驟,在打電話的批處理文件中,就像這樣:
命令行:buildsomething.bat something.h
說明:構建東西
輸出:something.h
Visual Studio 2010將所有自定義生成命令連接到一個單獨的批處理文件中,然後運行它。當批處理文件運行另一個批處理文件時,Windows不會將控制權返回到第一個批處理文件。它就像一個goto,而不是一個函數調用。因此,要解決這個問題,你需要使用call
這樣的:
命令行:呼叫 buildsomething.bat something.h
call
使得控制返回到Visual Studio的批處理流程文件,因此可以讓您的其他自定義生成步驟運行。
(我回答我的問題,使未來的搜索可以找到答案。)
確保以下兩個文件都處於良好狀態。更好地比較這些文件與工作VS設置。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets