I recently help set up a CI (Continuous Integration) environment using CC.NET (Cruise Control.NET) at a client that I’m at. We’re in the process of implementing TFS (Team Foundation Server) but until some red tape is cleared we’re still stuck on VSS (Visual Source Safe).
While setting up the environment we were given a test VSS account to work with until everything worked as expected. Well the user they gave me had a blank password.
Example –
User: ccnet Pass: (no password)
The visual source safe source control block looked like this:
<sourcecontrol type=”vss” autoGetSource=”true” applyLabel=”true”>
<executable>C:\Program Files\Microsoft Visual Studio\VSS\win32\SS.EXE</executable>
<project>$/CCNET</project>
<username>ccnet</username>
<password> </password>
<ssdir>c:\repos\</ssdir>
<workingDirectory>c:\myBuild</workingDirectory>
<culture>en-us</culture>
<cleanCopy>false</cleanCopy>
</sourcecontrol>
When I fired up the CC.NET Service, everything started off fine. The project said “Checking For Modifications” and then it HUNG there, forever. It never stopped. I had to stop the service and then kill SS.exe (source safes process).
Solution
The reason this happened is because of this line:
<password> </password>
The password was left as ” “. It was a space. If I fired up VSS and typed in ccnet and put a space into the password, it would let me in, no problem. But if I did that with CC.NET SS.EXE would hang.
Pretty much, here’s what’s happening – Source Safe is firing up and its trying to log in and its giving an invalid password. SS.EXE is trying to raise a dialog box, but its running under the context of the Cruise Control.NET service, therefore it cannot open that dialog box.
I changed the password field to this:
<password></password>
and then it worked flawlessly.
Simple solution to a simple mistake. ๐
Leave a Reply
You must be logged in to post a comment.