Как исправить поврежденный менеджер сборки в vs2010? - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть проект C # в vs2010, который имеет несколько опций сборки (Debug, Release, Debug x86, Debug, я только что получил новую шляпу и т. Д.), Потому что некоторые люди немного зашли при добавлении проектов.

Я хочу вернуть все это к четырем основным типам сборки:

  1. отладка x86
  2. выпуск x86
  3. отладка x64
  4. release x64

Я удаляю проект, сохраняю sln с тем проектом, которого больше нет в решении, а затем добавляю его обратно, но, очевидно, настройки для проекта были сохранены.Есть ли способ полностью удалить эти посторонние проекты из диспетчера сборки и начать с нуля, кроме создания нового файла SLN?

Толчком для решения этой проблемы является то, что один из проектов в решении не будетразрешить сборку x64.Если я пытаюсь создать сборку x64 для этого проекта, менеджер сборки заявляет, что сборка x64 уже существует, даже если ее явно нет.Менеджер сборки не позволяет мне удалять режимы сборки, просто добавляет их, но затем он не позволяет мне добавить x64, что мне и нужно.

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

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

Очевидно, что вы должны выполнить резервное копирование, прежде чем начать, чтобы вы могли хотя бы вернуться назадв текущее состояние, если все станет грушевидным.

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

Вы также можете создать совершенно новый проект C #, используя тот же шаблон, что и ваш проект, и использовать файл csproj этого проекта в качестве еще одного руководства о том, как все должно выглядеть.

Если вам повезет, вашФайл csproj будет содержать несколько элементов PropertyGroup, некоторые из которых будут иметь условие, идентифицирующее конкретную комбинацию сборки, к которой применяется группа.Например ...

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
    <OutputPath>bin\x64\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <Optimize>true</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x64</PlatformTarget>
  </PropertyGroup>

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

1 голос
/ 12 апреля 2011

Самый быстрый способ - вручную редактировать файлы .proj в блокноте, удаляя все

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'NewHat|x64' ">...</PropertyGroup>

элементов для каждой конфигурации. Затем, наконец, удалите ненужные конфигурации решения, снова отредактировав файл .sln в блокноте. Их легко заметить. После удаления вы сможете открыть решение в VS и настроить все прямо в диспетчере конфигурации

Альтернативой является использование макросов или классов VS EnvDTE для автоматизации процесса, но, возможно, это кувалда для гайки.

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