1

环境:Win2k3 上的 TeamCity 6.5.1、Win2k3 上的 BuildAgent、Visual Studio 2k10、.NET v4、Nant 0.91

我正在完成 TeamCity 的设置,并尝试按照我们的安全指南锁定构建机器上的 BuildAgent 帐户。第一次通过 Nant 脚本调用“devenv.exe /build”时构建崩溃:

错误应用程序 devenv.exe,版本 10.0.30319.1,标记 4ba1fab3,错误模块 msenv.dll,版本 10.0.30319.1,标记 4ba1fd94,调试?0,故障地址0x0000c36b。

我没有运气谷歌搜索该消息。但是,如果我将 BuildAgent 服务从本地网络帐户更改为管理员帐户,则一切正常。但是,如果我使用另一个域帐户,它会失败。如果我将该域帐户添加到本地管理员组,也会失败。

关于我所缺少的任何想法?为了使“DevEnv /build”能够正常工作而不会崩溃,您是否需要特定的权限?

4

1 回答 1

1

哎呀,我最近刚刚经历了这个。首先,使用devenv.com,而不是devenv.exe。带有 com 扩展名的 devenv 可以构建解决方案并将所有输出发送到控制台,而无需使用 gui。由于 TeamCity 代理是一项服务,因此可能根本不允许它与 gui 交互。

其次,我意识到这对您来说可能是不可能的(特别是如果您正在构建 MSI),但请考虑做任何您需要做的事情来使用 TeamCity 附带的内置 Visual Studio 构建运行器。它确实利用 MSBuild 来完成它的工作。如果你走这条路,你仍然需要 devenv,然后去找MSBuild Extensions Pack,它已经用他们自己的 devenv 构建任务解决了很多这些问题。

老实说,我最终用替代品(InstallShield 或 WiX)替换了 Microsoft 的安装项目,并且从未回头。

于 2011-08-08T19:12:51.163 回答