以前都是直接使用VS或者msbuild生成整個解決方案,或者只構建單個工程。
這回使用msbuild構建單個工程的時候出現了問題,因為工程中使用了SolutionDir這個宏來定位第三方庫路徑。
對於這個文件,微軟已經給出了解決方案。
解決
如何:使用 MSBuild.exe 生成解決方案中的特定目標
您可以使用MSBuild.exe生成解決方案中的特定項目的特定目標。
若要生成解決方案中的特定項目的特定目標
- 在命令行中,鍵入
MSBuild.exe <SolutionName>.sln, ,其中<SolutionName>對應於包含您想要執行的目標的解決方案的文件名稱。 - 在后使用
/t參數指定構建目標名/t:TargetName。
示例
下面的示例執行對NotInSlnFolder項目的Rebuild操作,然后再執行對NewFolder目錄下的InSolutionFolder項目的Clean操作。
msbuild SlnFolders.sln /t:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean
上面把rebuild clean等操作在英文版中都是target,這個和makefile中的依賴 目標 動作概念是一樣的。rebuild clean等都是目標。
