У меня есть сценарий MSBuild, который использует команду MSBuildExtensions SqlExecute
, аналогичную следующей:
<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$
Домен у обоих одинаковый.
Что я делаю неправильно или какие следующие шаги мне нужно выполнить, чтобы получить больше информации?