簡體   English   中英

在生成事件中執行bat文件得到錯誤“錯誤MSB3073:命令” call“ MyTest.bat”以代碼1退出。”

[英]Execute bat file in the build event got the error “error MSB3073: The command ”call “MyTest.bat” exited with code 1."

在我們的解決方案中,我們有150多個項目,我需要先構建一個項目,但我不想一一設置100多個項目的項目參考或項目依賴項。 這是浪費時間。 因此,在此之前我要提出以下問題:

在不使用項目參考的情況下設置構建順序

正如@Leo Liu建議我可以先使用批處理文件來構建項目一樣,這應該是一個有效的解決方法。 作為優化,我想在該項目的build事件中設置此bat文件,以便只構建該項目,而無需從外部手動運行bat文件。

但是,當我使用以下build事件構建該項目時:

call "$(ProjectDir)\MyTest.bat"

我收到此錯誤:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin\Microsoft.Common.CurrentVersion.targets(5074,5): error MSB3073: The command "call "C:\Users\Myname\Source\repos\MysolutionName\GenerateFile\MyTest.bat"" exited with code 1. [C:\Users\\Source\repos\MysolutionName\GenerateFile\GenerateFile.csproj]

更新:bat文件中的腳本為:

@echo OFF 
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
echo "Starting Build for all Projects with proposed changes"
MSBuild.exe "C:\Users\MyName\Source\repos\MySolutionName\MySolutionName.sln"
pause
echo "All builds completed." 

有什么建議嗎? 提前致謝。

在生成事件中執行bat文件得到錯誤“錯誤MSB3073:命令” call“ MyTest.bat”以代碼1退出。”

根據您的問題,我創建了一個測試樣本,並收到30多個錯誤,但沒有其他詳細信息:

error MSB3073: The command "call "D:\TestSample.bat"" exited with code 1.

進一步的研究發現了這些錯誤的原因,因為在bat文件中構建了解決方案,然后在解決方案中一個項目的構建事件(在bat文件中調用)中設置了該bat文件。

因此將生成一個無限循環 ,這就是為什么在build事件中一個命令行出現30多個錯誤的原因。

要解決此問題,在使用bat文件構建解決方案時,我們不應該構建指定項目,因此可以打開配置管理器,取消選中生成項目的構建復選框:

在此處輸入圖片說明

使用此設置,當您使用該bat文件構建解決方案時,將忽略此項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM