我正在尝试在Visual Studio 2008中构建一个Web部署项目,它一直在失败,我不知道为什么。错误:
------ 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 ==========
我在另一台机器上有相同的项目,它构建得很好。我已经下载了Visual Studio 2008 Web Deployment Projects - RTW并为Visual Studio 2008安装了Service Pack 1.
编辑:
在错误列表中,它有Error 1 The command "if exist ".\TempBuildDir\" rd /s /q ".\TempBuildDir\"" exited with code 1.
。我不知道为什么会出现C:\Documents
,因为项目位于没有空格的文件夹中(C:\Web\Projects\
)
通过右键点击网站并点击Add Web Deployment Project
创建一个全新的网络部署项目。
编辑(1月29日)。更详细的输出,只要使用<exec>
if exist
时就会失效:
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
答案 0 :(得分:2)
看这里: http://social.msdn.microsoft.com/Forums/en/tfsbuild/thread/9c14fd1c-4c6c-4a5b-ac2a-05a2972036e9
如果这不起作用,请在Google上搜索“MSB3073”您帖子中的特定错误代码。
祝你好运!
答案 1 :(得分:1)
我认为您的项目构建到临时目录,然后将其复制到更永久的位置。 ".\TempBuildDir\"
是一个相对路径,它可能导致构建成功的pc上的非间隔目录,但由于temp目录的位置而在您的PC上失败(默认位于C:\ Documents and Settings)
只是为了确定:检查您的电脑和另一台机器上临时目录的位置。或者,如果可能的话,将TempBuildDir路径更改为更加绝对的路径,如C:\ Temp或任何适合您的路径。
更具体地说:如果另一台机器是Vista或Win7 pc,TempBuildDir可能位于C:\ Users目录中的某个位置。如果您的机器是WinXP PC,TempBuildDir很可能位于C:\ Documents and Settings中。
答案 2 :(得分:1)
找出问题所在。
用户个人资料文件夹中有一个@符号,看起来可能会破坏MSBuild(因为@对MSBuild有特殊含义)。
用户个人资料文件夹为C:\Documents and Settings\username@domain
,将其重命名为C:\Documents and Settings\username
修复了我遇到的此问题。因此,在文件夹名称中包含空格不是失败的原因。