Добавление параметра / p: Platform = "Any CPU" вызывает сборку в конфигурации отладки. - PullRequest
0 голосов
/ 17 мая 2018

Я запускаю следующее для построения своего решения (все проекты в C #):

MSBuild.exe foo.sln /t:Build /p:Configuration=Release /p:Platform="Any CPU"

Он строит его в конфигурации отладки.Если я удалю ссылку на «Любой процессор»

MSBuild.exe foo.sln /t:Build /p:Configuration=Release

, сборка будет встроена в конфигурацию выпуска.

Почему это так?Я что-то упускаю здесь?

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Отвечая на мой собственный вопрос.В то время как я пытался найти что-то сложное, что не так с моим решением (например, прочесывать дюжину файлов .csproj), проблема была смущающе простой.

В Solution / Configuration Manager для параметра Release / AnyCPU некоторые проекты были помечены как Отладка (не знаю почему, так как этому решению, вероятно, уже десятилетие).Установка их на Release устраняет проблему.

0 голосов
/ 18 мая 2018

Добавление / p: Platform = параметр «Любой ЦП» вызывает сборку в конфигурации отладки

Выходной каталог проекта связан со свойством OutputPath в PropertyGroup в файле проекта foo.csproj.

Согласно вашему описанию, вы, возможно, не настроили целевую платформу и OutputPath правильно в файле проекта, например:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

Если мы дадим <OutputPath>bin\Debug\</OutputPath> для конфигурации выпуска, то мы получим вывод в папке Debug.

Итак, чтобы решить эту проблему, вам нужно проверить свойство OutputPath в файле проекта.Убедитесь, что она соответствует целевой платформе.

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

...