Подтвердить что ты не робот

"AnyCPU" против "Любой процессор" в TFS 2010

Я потратил много часов, пытаясь понять, почему мой проект строится с настройкой по умолчанию (пустой) на TFS2010, но не говорит мне, что нет пути вывода, если я его установил.

В конце я понял, что в файле .csproj конфигурация написана как AnyCPU, тогда как для TFS предлагаемое раскрывающееся значение Any CPU (обратите внимание на пробел).

Я удалил пространство в конфигурации TFS и работал.

Проект был преобразован из версии VS2008. MS изменила имя конфигурации для версии VS2010? Может кто-нибудь сказать мне, что происходит?

4b9b3361

Ответ 1

Это, кажется, известная ошибка в VS2010.
Подробнее см. http://connect.microsoft.com/VisualStudio/feedback/details/503935/msbuild-inconsistent-platform-for-any-cpu-between-solution-and-project.

Что я нашел:

Все файлы проекта в решении имеют платформу, установленную на "AnyCPU", даже если вы выберете "Любой процессор" в окне конфигурации. Поэтому, если вы создадите это решение в VS, все будет хорошо. Когда вы пытаетесь построить с использованием платформы TFS "Любой процессор", решения работают нормально, но проекты должны быть установлены (в задаче msbuild) для использования /p: AnyCPU.

Ответ 2

(Четыре года спустя..)

Эта ошибка, похоже, жива и пинается в Visual Studio 2012.

Сегодня мне не удалось развернуть новую версию моего проекта Services, так как VS2012 продолжал говорить мне, что я не указал OutputPath... но у меня это было, и я мог видеть его в окне свойств проекта.

Я также попытался развернуть свои службы на локальном диске на моем ноутбуке, просто чтобы посмотреть, будет ли это делать VS.

Но нет. Это не так.

Ouch

Моя конфигурация фактически называлась " Release (PreProd)" (без речевых указателей), но VS, похоже, заикался, пытаясь поместить это имя в путь.

Перезапуск Visual Studio 2012 не повлиял и (после Googling для решения), я проверил, что у меня не было переменной среды "Платформа" на моей машине, что могло бы испортить компиляторы.

Нелепое решение заключалось в том, чтобы открыть файл решения (.sln) в текстовом редакторе, а затем выполнить поиск с "Любой процессор" до "AnyCPU".

Очевидно, действительно...!

Январь 2015

Просто чтобы добавить, эта ошибка все еще жива и пинается.

Самое простое исправление - это переименовать ваши конфигурации, чтобы они не содержали пробелы или речевые метки (т.е. имена по умолчанию!!)

Итак, переименовав конфигурацию от Release (Prod) до ReleaseProd, ошибка исчезнет.

Ответ 3

Я не уверен, что это был каждый "AnyCPU" (без пробела), но целевое имя по умолчанию - "Любой процессор" с пробелом. Однако я должен указать, что эти имена являются произвольными строками, и вы можете установить их так, как вам нравится, если они будут согласованы.