环境: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服务从本地网络帐户更改为管理员帐户,则一切正常。但是,如果我使用其他域帐户,则会失败。如果我将该域帐户添加到本地Administrators组,也会失败。
关于我缺少的任何想法?为了让“DevEnv / build”在不崩溃的情况下工作,您需要具备特定的权限吗?
答案 0 :(得分:1)
哎呀,我最近刚刚经历过这个。首先,使用devenv.com
,而不是devenv.exe
。具有com扩展的devenv可以构建解决方案并将所有输出发送到控制台,而无需使用gui。由于TeamCity代理是一项服务,因此可能根本不允许与gui交互。
其次,我意识到这对你来说可能是不可能的(特别是如果你正在构建一个MSI),但考虑做你需要做的任何事情来使用TeamCity附带的内置Visual Studio构建运行器。它确实利用MSBuild来完成它的工作。如果你走这条路并且仍然需要devenv,那就去找MSBuild Extensions Pack,它已经用他们自己的devenv构建任务解决了很多这些问题。
老实说,我最终用替代品(InstallShield或WiX)替换了Microsoft的安装项目,并且从未回头。