Visual Studio 2010 - преобразования конфигурации не работают, пользовательская конфигурация сборки не добавляется - PullRequest
2 голосов
/ 09 марта 2011

У меня текущая проблема. Я хочу реализовать «Конфигурационные преобразования», чтобы облегчить мою жизнь. В настоящее время у меня есть три конфигурации сборки в Visual Studio 2010. Отладка, тестирование и выпуск. Настройки конфигурации сборки QA были скопированы из конфигурации сборки выпуска.

Редактировать: Это проект веб-приложения в c-sharp.

Мой проект приложения веб-сайта является одним из 15 проектов в решении, в котором я работаю. На моем веб-сайте, когда я щелкаю правой кнопкой мыши файл web.config для «Добавить преобразования конфигурации», только отладка и выпуск .config файл трансформации добавлен, мой QA один отсутствует: /

Я оглянулся и увидел, что есть опция командной строки, подобная следующей

msbuild "C:\...project.csproj" /t:TransformWebConfig /p:Configuration=QA

Но после этого я получаю следующую ошибку:

"Свойство OutputPath не установлено для проекта ' project '. Убедитесь, что вы указали правильную комбинацию Configuration и Platform для этого проекта.

Примечание: в команде мой путь верен.

Я просто пытаюсь заставить все три конфигурации сборки иметь свой собственный файл преобразования .config. Самый простой способ, спасибо!

1 Ответ

3 голосов
/ 11 марта 2011

Что-то в настройке QA не предоставило достаточно информации для .csproj для msbuild, чтобы сделать свое дело. Я бы перепроверил настройки вашей конфигурации, сопоставление платформы и т. Д.

То, что происходит в вашем .csproj, в каждой конфигурации / платформе есть раздел, подобный следующему:

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

Ваша конфигурация QA либо не имеет этого определения, либо (что более вероятно) имеет то, что определено без элемента <OutputPath>. OutputPath - это то, как / почему сборка создает папки «debug», «release» и т. Д. В вашей корзине. Без этого msbuild не имеет ни малейшего понятия, куда выводить созданные csc.exe двоичные файлы (по крайней мере, по умолчанию в определении сборки C #)

Чтобы перепроверить, откройте файл .csproj в текстовом файле.

Надеюсь, это поможет вашему реверс-инженерам решить проблему.

...