Search code examples
visual-studio-2008web-deployment-project

Web Deployment Project failing build (Visual Studio 2008)


I am trying to build a Web Deployment Project in Visual Studio 2008 and it keeps failing and I am not sure why. Error:

------ Build started: Project: website_deploy, Configuration: Release Any CPU ------
if exist ".\TempBuildDir\" rd /s /q ".\TempBuildDir\"
'C:\Documents' is not recognized as an internal or external command,
operable program or batch file.
C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets(92,7): error MSB3073: The command "if exist ".\TempBuildDir\" rd /s /q ".\TempBuildDir\"" exited with code 1.
Done building project "website_deploy.wdproj" -- FAILED.
========== Build: 1 succeeded or up-to-date, 1 failed, 0 skipped ==========

I have the same project on another machine and it builds just fine. I have downloaded Visual Studio 2008 Web Deployment Projects - RTW and installed Service Pack 1 for Visual Studio 2008.

Edit:

In the error list, it has Error 1 The command "if exist ".\TempBuildDir\" rd /s /q ".\TempBuildDir\"" exited with code 1.. I don't know why it is coming up with C:\Documents as the project is in a folder without spaces (C:\Web\Projects\)

It happens with a brand new web deployment project, created by right-clicking on the website and clicking Add Web Deployment Project.

Edit (29 Jan). More verbose output, failes whenever <exec> with if exist is used:

Building with tools version "3.5".
Target "_PrepareForBuild" in file "C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets":
  Using "CreateProperty" task from assembly "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
  Task "CreateProperty"
  Done executing task "CreateProperty".
  Task "CreateProperty"
  Done executing task "CreateProperty".
  Task "CreateProperty"
  Done executing task "CreateProperty".
  Using "Exec" task from assembly "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
  Task "Exec"
    Command:
    if exist ".\TempBuildDir\" rd /s /q ".\TempBuildDir\"
    'C:\Documents' is not recognized as an internal or external command,
    operable program or batch file.
    C:\Program Files\MSBuild\Microsoft\WebDeployment\v9.0\Microsoft.WebDeployment.targets(92,7): error MSB3073: The command "if exist ".\TempBuildDir\" rd /s /q ".\TempBuildDir\"" exited with code 1.
  Done executing task "Exec" -- FAILED.
Done building target "_PrepareForBuild" in project "website_deploy.wdproj" -- FAILED

Solution

  • Found out what the problem was.

    The user profile folder had an @ sign in it, which looks like it may break MSBuild (since @ has a special meaning to MSBuild).

    The user profile folder was C:\Documents and Settings\username@domain, renaming it to C:\Documents and Settings\username fixed this issue I was having. So having spaces in the folder name was not the reason for the failure.