Team Foundation Server 2010 - конфигурация сборки не задана для проекта - PullRequest
1 голос
/ 11 ноября 2011

(я обновил заголовок, чтобы отразить мои новые выводы)

Я только что портировал несколько проектов с TFS2008 на TFS2010 и столкнулся с (на самом деле несколькими :)) проблемами с конкретным проектом. При компиляции с конфигурацией сборки Debug все работает как положено. Однако при компиляции с конфигурацией сборки 'Release' я получаю ошибку компоновщика, поскольку al.exe не может найти указанный файл в 'obj \ debug'.

Ошибка:

Task "AL" (TaskId:781)
...
ALINK : error AL1047: Error importing file 'c:\Builds\23\...\obj\Debug\someproject.exe' -- The system cannot find the file specified. [C:\Builds\23\...\Release\Sources\...\someproject.csproj]
  The command exited with code 1. (TaskId:781)
Done executing task "AL" -- FAILED. (TaskId:781)

Я включил ведение журнала диагностики информации о сборке команды и нашел следующую переменную:

IntermediateOutputPath = obj\Debug\

У меня вопрос: зачем компоновщику искать в папке Debug, когда я собираю его в конфигурации релиза? Я проверил решение и конфигурацию проекта, и в конфигурации релиз-решения нет конфигураций «Отладка». Есть идеи, почему это происходит и как это решить?

Заранее спасибо.

!! Информация о бонусе

У меня есть следующее утверждение в файле проекта, которое не выполняется, гарантируя, что конфигурация сборки не указана, для нее будет задано значение Debug.

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

Я попытался изменить его на Release по умолчанию, и теперь моя сборка команды отладки не удалась, вместо этого указав на obj \ release. Таким образом, кажется, что конфигурация сборки не указана, когда проект компилируется. Как это может быть?

1 Ответ

1 голос
/ 11 ноября 2011

Нашел проблему. Я должен установить конфигурацию сборки явно для моей цели публикации, определенной в файле проекта someproject.csproj. Я вставил строку «Конфигурация = Выпуск»

    <MSBuild ToolsVersion="3.5" Projects="$(SolutionRoot)\...someproject.csproj"
             Properties="RunCodeAnalysis=false;
                             Configuration=Release;
                             ClrVersion=2.0.50727.0;
             ApplicationVersion=$(VersionNumber);
             UpdateUrl=$(DevtestUpdateUrl);
             InstallUrl=$(DevtestInstallUrl);
             IsWebBootstrapper=true;
             PublishDir=$(DropLocation)\$(BuildNumber)\Publish\Update\;
             SolutionDir=$(SolutionRoot)\Kl******\;
             DeploymentConfiguration=devtest;
             SignManifests=true;
                        ManifestCertificateThumbprint=23...23;"
             Targets="PublishOnly" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...