【发布时间】:2011-04-29 23:21:39
【问题描述】:
我正在使用 Powershell 编写构建脚本。这些脚本执行各种操作,例如从 SVN 获取最新的源代码、备份等,并使用 MSBuild 构建解决方案:
cmd /c C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe "C:\Dev\Path\MyProjct.sln" /p:Configuration=Release
在这条指令之后,如果编译成功,我只想执行脚本的其余部分。我该如何检查?
该项目是一个网络项目,因此检查输出并不容易,但我猜一些变量会包含编译结果。另外,由于我使用 cmd /c 调用 msbuild,我可以访问这些变量吗?
【问题讨论】:
-
我只是好奇...为什么要使用 PowerShell 脚本来构建?为什么不使用 MSBuild 文件并使用扩展任务库来执行诸如从 SVN 获取之类的操作? PowerShell 很酷且功能强大,但在某种程度上,你正在采取艰难的方式。
-
嗯,首先我并不真正了解 MSBuild,但我认为它是一个构建工具,我可能很难与其他任何东西(SVN、WinRAR、. ..)。对我来说,构建只是开发过程的 5%,我认为脚本语言最适合其他 95%。但我很高兴错了。
-
MSBuild 是一个很棒的面向任务的依赖工具。使用 PowerShell 支持多种场景并支持面向产品的方法。也请查看 PSake,我们使用它。当您想要扩展事物时,您不必陷入 C#(MSBuild 任务)。您只需添加更多 PowerShell。
-
我认为扩展您的 msbuild 脚本对于与构建相关且具有依赖管理的事物有意义(例如 A 依赖于 B;B 依赖于 C 和 D;D 已经改变,所以现在?)。如果您愿意,启用
msbuild /p:SyncAndBuild并不难。如果您决定执行更多 MSBuild,请使用 SO 寻求帮助。我有太多在 MSBuild 中编写复杂应用程序的经验,很乐意分享。
标签: powershell msbuild