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

Свойство OutputPath не задано для проекта

Построение моего решения Jenkins/MSBuild дает мне эту ошибку

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error : 
The OutputPath property is not set for project '<projectname>.csproj'.  Please check to
make sure that you have specified a valid combination of Configuration and Platform 
for this project.  Configuration='Latest'  Platform='AnyCPU'.  You may be seeing this 
message because you are trying to build a project without a solution file, and have
specified a non-default Configuration or Platform that doesn't exist for this project. 
[C:\<path>\<projectname>.csproj]

Любые идеи?

ИЗМЕНИТЬ

У меня это в файле .csproj

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Latest|AnyCPU'">
    <OutputPath>bin\Latest\</OutputPath>
  </PropertyGroup>
4b9b3361

Ответ 1

Откройте свой csproj в текстовом редакторе и посмотрите, есть ли у вас раздел группы свойств, должен выглядеть примерно так:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Latest|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Latest\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  </PropertyGroup>

У вас есть "последняя" конфигурация сборки? Если не добавить этот раздел в csproj.

Ответ 2

Я выяснил, как это работает (без изменения свойств sln/csproj в VS2013/2015).

  1. если вы хотите собрать .sln файл:
    1. /p:ConfigurationPlatforms=Release/p:Platform="Any CPU"
  2. если вы хотите собрать файл .csproj:
    1. /p:Configuration=Release/p:Platform=AnyCPU
      1. обратите внимание на "Any CPU" против AnyCPU
  3. проверьте, что анализ кода, fxcop, тестовое покрытие (NCover) цели, а также MSBUILD должны быть расположены правильно. В моем случае это:
    1. C:\Windows\Microsoft.NET\Framework64\v4.0.30319 но это может отличаться, поскольку вы можете видеть, что Microsoft предоставила 6 cmd опций для построения базы кода: AMD (с опциями cross plt, x86 и x64) и Windows (cross, x86, x64) и это также, когда разработка кода происходила с JIT по умолчанию (это может быть PreJIT ngen.exe, econoJIT)

Я думаю, что больше, чем эта проблема может быть решена с помощью Power Shell + msbuild. Может быть полезным для кого-то...

Ответ 3

Как упоминалось perlyking, а не редактирование csproj XML Следующие работали для меня. Вот шаги, которые я использовал.

  • Откройте Свойства проекта.
  • Выберите вкладку "Сборка".
  • В разделе "Выход" проверьте, установлен ли путь вывода. (если он не установлен, сохраните проект, и он должен работать).
  • Если он установлен, нажмите кнопку "Обзор..." выходного пути.
  • Когда откроется диалоговое окно выбора папки, перейдите на один уровень в браузера файлов, а затем повторно выберите выходную папку и нажмите кнопку "Выбрать папку".
  • Сохраните свойства проекта, и он должен работать.

Ответ 4

Чтобы добавить к тому, что сказал @James, я обнаружил, что если бы я посмотрел на свойства компиляции проекта в VS2013, был указан путь выхода сборки. Но когда я непосредственно просмотрел файл .csproj, элемент OutputPath отсутствовал для соответствующей конфигурации сборки. Таким образом, в VS я просто сделал и изменил второстепенное редактирование на выходной путь, сохранил его, и это ударило значение в файл проекта, и тогда я смог его построить.

Ответ 5

Я получил эту ошибку только после публикации моего веб-проекта. Я ошибочно выбрал неправильную конфигурацию сборки при настройке профиля публикации.

Ответ 6

В моем случае эта ошибка произошла из-за того, что папка вывода включала точку, чтобы сделать ее относительно текущего каталога. Проблема была решена путем удаления точки.

Нарушение Build output path было:

.\bin\Output

Проблема была решена путем изменения ее на

bin\Output

Выходной путь сборки можно найти на вкладке Build свойств проекта, и для каждой комбинации Configuration и Platform существует другой путь.

Ответ 7

У меня была такая же проблема. Я обновил свою платформу Windows с помощью командной строки. В настоящее время я обновился до версии [email protected] Затем вам нужно найти имя файла "SQLite3.UWP.vcxproj". Попробуйте изменить "v141" на "v140". В настоящее время я использую профессионала Visual Studio 2015. Если это Visual Studio 2017, тогда нет необходимости изменять версию в файле SQLite3.UWP.vcxproj.

Ответ 8

Просто у вас возникла проблема с некоторыми материалами в MSBuild.

Первый шаг - щелкнуть правой кнопкой мыши по каждому затронутому проекту и вытащить их Свойства, выбрав вкладку "Сборка", а затем установить целевую платформу для платформы x64.

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

Это было для проекта VS2017.

Ответ 9

Свойство OutputPath не установлено для проекта. Сообщение об ошибке появляется, если существует переменная среды Platform (как это происходит на ноутбуках HP), а цель MSBuild содержит ссылку на другой проект Visual Studio.

После переименования переменной среды Platform моя сборка работает.

Кажется, что параметр /p:Platform="Any CPU" применяется к целевому решению, но не переносится на указанные проекты. В моем случае в сообщении об ошибке указывалось, что указанные проекты используют переменную среды Platform=MCD.

Ответ 10

Эта ошибка вводит в заблуждение и может быть вызвана другой проблемой. Проверьте все сообщение:

The OutputPath property is not set for project 'myproject'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='myconfig'  Platform='AnyCPU'.  This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.

В моей конфигурации сборки отсутствовал этот узел в csproj:

<PlatformTarget>AnyCPU</PlatformTarget>

Несмотря на то, что AnyCPU была выбранной Платформой в выпадающем списке, фактического xml там не было. Добавление этого исправило несоответствие между проектом и другим проектом, на который он ссылался.

Ответ 11

У меня было два проекта, Debug и Release. Когда использовалась сборка Release, он выдавал эту ошибку. Проблема, которую я обнаружил, заключалась в том, что в csproj конфигурация Debug находилась в верхней части, а конфигурация Release была в нижней части.

Ручное перемещение сборки Release чуть ниже сборки Debug исправило это.

Я предполагаю, что сделал что-то неправильно при настройке конфигурации сборки, потому что это не похоже на то, что мне нужно было настраивать вручную.

Ответ 12

Я использовал MSBuild для создания нескольких файлов .sln и добавил новый шаг для создания файла .csproj, когда столкнулся с этой ошибкой.

Ответ @Saurabh высветил корень проблемы. Однако при исправлении, добавление /p:Platform=AnyCPU в раздел Аргументы MSBuild не исправило это. На самом деле мне нужно было обновить значение Platform на этапе сборки.

На всех других этапах сборки использовалось значение переменной $(BuildPlatform) (которое оказалось "любым процессором" с пробелом в нем).

(Если бы я создавал несколько файлов .csproj, я, вероятно, создал бы вторую переменную для платформы AnyCPU.)

Screenshot of Visual Studio Build step

Ответ 13

У меня была такая же проблема на нескольких проектах. После добавления новой конфигурации в проекты, PropertyGroup была добавлена в самый конец файла проекта.

Перемещение PropertyGroup вправо после всех других конфигураций PropertyGroup устранила проблему.

Надеюсь, это поможет.