您好我正在尝试使用MSBuild&编译我的项目Psake但我在将/ m传递给MSBuild时遇到问题。这是我的代码:
Exec {
MSBuild $solutionFile "/p:Configuration=$buildConfiguration;Platform=$buildPlatform;OutDir=$tempPath /m"
}
MSBuild输出:
" C:\用户\ mabre \源\ Psake \ Psake.sln" (默认目标)(1) - > " C:\用户\ mabre \源\ Psake \ SRC \ Psake.Library \ Psake.Library.xproj" (默认目标)(5) - > C:\ Program Files (86)\的MSBuild \微软\ VisualStudio的\ v14.0 \ DOTNET的\ Microsoft.DotNet.Common.Targets(262,5): 错误:找不到路径的一部分 ' C:\用户\ mabre \源\ Psake.build \ temp中 的 \米 \ SRC \ Psake.Library \ OBJ \发布\ netstandard1.6&#39 ;. [C:\用户\ mabre \源\ Psake \ SRC \ Psake.Library \ Psake.Library.xproj]
0 Warning(s) 4 Error(s)
请注意, / m 现在是输出路径的一部分
错误:7/22/2016 12:39:04 AM:At C:\ Users \用户mabre.nuget \包\ psake \ 4.6.0 \工具\ psake.psm1:156 char:17 + throw(" Exec:" + $ errorMessage)+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [<< ==>>]异常:执行:错误 执行命令MSBuild $ solutionFile " / P:配置= $ buildConfiguration;平台= $ buildPlatform; OUTDIR = $ TEMPPATH /米" 。建立退出代码:1
提前致谢
答案 0 :(得分:3)
尝试不将所有参数放在一个字符串中。以下是我的MSBuild任务在pSake中的两个示例:
Task CleanProject -depends RestoreNuget {
Exec {
msbuild `
"$VisualStudioSolutionFile" `
/target:Clean `
/property:Configuration=$Configuration `
/verbosity:quiet
}
}
和...
Task BuildProject -depends DeleteBinAndObjFolders {
Exec {
msbuild `
"$ProjectPath" `
/target:Rebuild `
/property:Configuration=$Configuration `
/property:OutDir="$ProjectBuildArtifactsPath" `
/property:UseWPP_CopyWebApplication=True `
/property:PipelineDependsOnBuild=False `
/property:WebProjectOutputDir="$WebBuildArtifactsPath" `
/verbosity:quiet
}
}
请注意,我将"
放在我认为可能包含空格的任何变量周围。
所以为你尝试这样的事情:
Exec {
MSBuild "$solutionFile" /p:Configuration=$buildConfiguration;Platform=$buildPlatform;OutDir="$tempPath" /m
}