我有一个 MSBuild 脚本,它使用SqlExecute
类似于以下的 MSBuildExtensions 命令:
<Target Name="DoSqlStuff">
<SqlExecute TaskAction="Execute"
UseTransaction="True"
ConnectionString="Data Source=$(Sql_ServerName); Initial Catalog=$(Sql_DatabaseName); Integrated Security=SSPI;"
Files="@(sqlFiles)"
CommandTimeout="1800">
</SqlExecute>
</Target>
如果我从命令行运行它(使用所有正确的变量和诸如此类的东西),那么它就可以正常工作。
我有一个 TeamCity 构建代理设置为可以从命令行成功运行此 MSBuild 脚本(输入所有相同的变量)的同一台机器,我收到以下错误:
[MSBuild output] C:\BuildAgent\work\c5affefc453a825c\ContinuousBuild\Deploy.proj(22,3): error : SqlException: Login failed for user 'ALLIANCE\DANIELM$'. [C:\BuildAgent\work\c5affefc453a825c\ContinuousBuild\Deploy.proj.teamcity]
我为此任务添加了一些调试输出:
<Message Text="Current user is $(USERNAME)" />
<Message Text="Current domain is $(USERDOMAIN)" />
通过cmd运行时,用户名为danielm
通过 TeamCity 运行时,用户名为danielm$
两者的域相同。
我做错了什么,或者我需要执行哪些后续步骤才能获取更多信息?