Как мне исправить поврежденный менеджер сборки в vs2010?

#c# #visual-studio-2010

#c# #visual-studio-2010

Вопрос:

У меня есть проект C # в vs2010, который имеет несколько вариантов сборки (Debug, Release, Debug x86, Debug I Just Got A New Hat и т.д.), Потому что некоторые люди немного перестарались с добавлением проектов.

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

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

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

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

Ответ №1:

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

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

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

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

Ответ №2:

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

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

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

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

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

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

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