How to resolve “Only one project can be specified” error from task in CruiseControl.NET

cruisecontrol.netmsbuild

I'm trying to use the task in CruiseControl.NET version 1.3.0.2918 with a rather straight forward :

  <project name="AppBuilder 1.0 (Debug)">
    <workingDirectory>c:\depot\AppBuilder\1.0\</workingDirectory>
    <triggers/>
    <tasks>
      <msbuild/>
    </tasks>
   </project>

However, when the project is run it fails with this information in the build log:

MSBUILD : error MSB1008: Only one
project can be specified. Switch: 1.0

For switch syntax, type "MSBuild
/help"

When I look at the ccnet.log file I find this:

Starting process [C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe] in working
directory [c:\depot\AppBuilder\1.0] with arguments [/nologo "/p:CCNetArtifactDirectory=C:\Program Files\CruiseControl.NET\server\AppBuilder 1.0 (Debug)\Artifacts;CCNetBuildCondition=ForceBuild;CCNetBuildDate=2009-01-22;CCNetBuildTime=09:25:55;CCNetIntegrationStatus=Unknown;CCNetLabel=3;
CCNetLastIntegrationStatus=Failure;CCNetNumericLabel=3;CCNetProject=AppBuilder 1.0 (Debug);CCNetProjectUrl=http://CISERVER01/ccnet;CCNetRequestSource=jstong;
CCNetWorkingDirectory=c:\depot\AppBuilder\1.0\" "/l:ThoughtWorks.CruiseControl.MsBuild.XmlLogger,ThoughtWorks.CruiseControl.MsBuild.dll;C:\Program Files\CruiseControl.NET\server\AppBuilder 1.0 (Debug)\Artifacts\msbuild-results.xml"]

from which I infer that msbuild was run in the correct working directory and that the command line passed to it was:

/nologo "/p:CCNetArtifactDirectory=C:\Program Files\CruiseControl.NET\server\AppBuilder 1.0 (Debug)\Artifacts;CCNetBuildCondition=ForceBuild;CCNetBuildDate=2009-01-22;CCNetBuildTime=09:25:55;CCNetIntegrationStatus=Unknown;CCNetLabel=3;
CCNetLastIntegrationStatus=Failure;CCNetNumericLabel=3;CCNetProject=AppBuilder 1.0 (Debug);CCNetProjectUrl=http://CISERVER01/ccnet;CCNetRequestSource=jstong;
CCNetWorkingDirectory=c:\depot\AppBuilder\1.0\" "/l:ThoughtWorks.CruiseControl.MsBuild.XmlLogger,ThoughtWorks.CruiseControl.MsBuild.dll;C:\Program Files\CruiseControl.NET\server\AppBuilder 1.0 (Debug)\Artifacts\msbuild-results.xml"

If I run this manually at the command line I get a similiar error.

It appears to me that the isn't passing the correct command line to the MSBuild executable.

Can you spot my error? Or is this version of CruiseControl.NET (1.3.0.2918) broken with respect to the task?

Best Answer

I think maybe it is your space in the artifact directory path. MSBuild really does not like spaces as it considers it a break between arguments. Can you try an remove the space from that path and see what happens?

Related Topic