Ошибка MSBuild при указании конфигурации и платформы в проекте WPF через командный файл - PullRequest
1 голос
/ 21 января 2012

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

У меня есть структура папок, которая выглядит следующим образом

/src
  /SLProject
        SLExampleProject.csproj
  /WPFProject
        WPFExampleProject.csproj
  ExampleSolution.sln
  Deploy.bat

Решение содержит несколько проектов Silverlight WPF, разделенных папками на уровне / SLProject и / WPFProject. Я пытаюсь создать командный файл Deploy.bat для выполнения MSBuild в подмножестве проектов Silverlight и WPF, обфускации выходных файлов и библиотек xcopy в другую папку.

У меня проблема с моим командным файлом, связанным с MSBuild. Когда я указываю Платформу и Конфигурацию для первого проекта WPF, который должен быть собран, я получаю сообщение об ошибке «Свойство OutputPath не установлено для проекта» ...

MSBuild Error

Вот строка командного файла, которая вызывает сбой

call %windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe 
  /t:rebuild /p:Configuration=Release /p:Platform="Any CPU"    
  Abt.Controls.SciChart.Wpf/Abt.Controls.SciChart.Wpf.csproj

Есть идеи, что я здесь делаю не так? Я могу подтвердить, что - это Выходной путь, установленный для этого проекта, и сочетание платформы = выпуск и конфигурация = AnyCPU существует для создаваемого проекта и его зависимостей.

Любопытно удалить платформу = "Любой процессор", и сборка прошла успешно ...

1 Ответ

5 голосов
/ 21 января 2012

При непосредственном построении файлов проекта необходимо указать комбинацию конфигурации и платформы, определенную в файле проекта. По умолчанию Visual Studio 2010 создает проекты Debug | x86 и Release | x86 только для проектов .NET. Это не проблема при сборке из файла решения, поскольку по умолчанию он сопоставляет Платформы, такие как «Любой ЦП» или «Смешанные Платформы», с одной из допустимых Платформ, указанных в файлах проекта.

Таким образом, у вас есть два варианта: либо указать «x86» для платформы при сборке из вашего пакетного файла, либо создать новую конфигурацию платформы для «любого ЦП» для каждого проекта с помощью Configuration Manager в Visual Studio , Кроме того, когда вы создаете платформу «Any CPU» для проекта, она фактически называется AnyCPU в файле проекта, поэтому вам нужно будет указать AnyCPU вместо «Any CPU» в вашем пакетном файле. Однако при построении решения из командной строки вам все равно нужно будет указать «Любой ЦП», просто досадное несоответствие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...