Сбой сборки проекта веб-развертывания (Visual Studio 2008) - PullRequest
1 голос
/ 26 января 2010

Я пытаюсь создать проект веб-развертывания в Visual Studio 2008, и он продолжает терпеть неудачу, и я не уверен, почему. Ошибка:

------ 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 - RTW и установил пакет обновления 1 для Visual Studio 2008.

Edit:

В списке ошибок он имеет Error 1 The command "if exist ".\TempBuildDir\" rd /s /q ".\TempBuildDir\"" exited with code 1.. Я не знаю, почему он подходит к C:\Documents, поскольку проект находится в папке без пробелов (C:\Web\Projects\)

Это происходит с новым проектом веб-развертывания, созданным путем щелчка правой кнопкой мыши на веб-сайте и нажатия Add Web Deployment Project.

Редактировать (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

Ответы [ 3 ]

2 голосов
/ 26 января 2010

Смотрите здесь: http://social.msdn.microsoft.com/Forums/en/tfsbuild/thread/9c14fd1c-4c6c-4a5b-ac2a-05a2972036e9

Если это не сработает, поищите в Google «MSB3073» конкретный код ошибки из вашего поста.

Удачи!

1 голос
/ 29 января 2010

выяснил в чем проблема.

В папке профиля пользователя есть знак @, который, похоже, может сломать MSBuild (поскольку @ имеет особое значение для MSBuild).

Папка профиля пользователя была C:\Documents and Settings\username@domain, переименование ее в C:\Documents and Settings\username устранило эту проблему, которая у меня была. Таким образом, наличие пробелов в имени папки не было причиной сбоя.

1 голос
/ 29 января 2010

Я думаю, что ваш проект собирается во временный каталог, после чего он копируется в более постоянное местоположение. ".\TempBuildDir\" - это относительный путь, который может привести к незаполненному каталогу на компьютере, для которого сборка завершается успешно, но не удается на вашем компьютере из-за расположения вашего временного каталога (по умолчанию в C: \ Documents and Settings). 1002 *

Просто чтобы быть уверенным: проверьте расположение временных каталогов на вашем компьютере и другой машине. Или, если возможно, измените путь к TempBuildDir на более абсолютный, например, C: \ Temp или что-то еще, что вам подходит.

Если быть более точным: если на другом компьютере установлена ​​ОС Vista или Win7, TempBuildDir может находиться где-то в каталоге C: \ Users. Если ваш компьютер - ПК с WinXP, скорее всего, TempBuildDir находится где-то в C: \ Documents and Settings.

...