Some time ago I have shown how to configure automatic build of SSIS projects (SQL Server Integration Services). Unfortunately they require full version of Visual Studio installed on a build machine as it’s an overwhelming plugin (not only a toolset), what potentially could hit me back.
And well, of course it failed and hit me after 30 days! Turned out Visual Studio 2017 Community Edition expired and was refusing to cooperate more, producing this nice error log:
[12:08:30][Step 2/3] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script7138984668293949066.cmd [12:08:30][Step 2/3] in directory: C:\TeamCity\buildAgent\work\2906b7d01f979ef5 [12:08:51][Step 2/3] [12:08:51][Step 2/3] Microsoft Visual Studio 2017 Version 15.0.27428.2027. [12:08:51][Step 2/3] Copyright (C) Microsoft Corp. All rights reserved. [12:08:51][Step 2/3] [12:08:51][Step 2/3] The license for Visual Studio has expired. [12:08:51][Step 2/3] [12:08:52][Step 2/3] The evaluation period for this product has ended. [12:08:52][Step 2/3] Process exited with code 1
Nothing simpler, I run Visual Studio and entered my credentials, that created a proper license etc. All the warnings on UI were gone. All was supposed to go back to normal, but somehow the same log appeared again.
Till now, it was actually my naïve thinking, as Visual Studio was launched in a context of a totally different user than the one used when I double-clicked the shortcut icon. Build system operated as the local system account, since it was the “TeamCity Build Agent” service that was configured to start it.
I tried to use RunAs plugin for TeamCity. I installed it, created dedicated BuildTool user, even configured in “Build Features” section of the build configuration. Of course I run Visual Studio as this user and entered obtained again the license. But automatic build process was still failing with this log:
[13:12:58][Step 1/3] MSBuild output [13:12:58][MSBuild output] Access is denied. [13:12:58][MSBuild output] The current directory is invalid.
I should have probably focused more on this message and grant read/write access for new user to the buildAgent folder (as this is the place, where the sources gets populated and processed) and that would be probably the final solution (even mentioned here). But since I am hot-tempered, I moved to another try.
Next, I reconfigured the whole TeamCity Build Agent service to start as BuildTool user. I added proper login permissions (to allow it to boot the machine, login as a service etc., more here), along with access to mentioned above folder.
Since now on, I had no issue anymore and all builds successfully again.