Переместить папку obj в Visual Studio 2012

Поскольку путь становится слишком длинным (более 260 символов), мне нужно создать папку obj в другом месте.

Как я могу указать Visual Studio 2012 создать эту папку по указанному пути?


person ff8mania    schedule 25.03.2013    source источник
comment
Я не думаю, что вы можете это сделать; однако вы можете сократить путь к вашему проекту/решению и/или имени сборки. Если вы очень глубоко укоренены в папках, возможно, рассмотрите возможность использования символической ссылки или соединения каталогов, чтобы сократить путь.   -  person codechurn    schedule 25.03.2013
comment
Это авария, ожидающая своего часа. В настоящее время затронута папка obj... что еще может быть затронуто? Почему бы не снизить риск и не переместить все куда-нибудь поближе к корню?   -  person spender    schedule 25.03.2013
comment
Возможно, это поможет howtogeek.com/howto/windows-vista/   -  person Ash Burlaczenko    schedule 25.03.2013
comment
К сожалению, я не могу переместить проект, принадлежащий рабочей области, которая должна быть названа таким образом.   -  person ff8mania    schedule 25.03.2013
comment
Возможный дубликат Как я могу перенаправить каталоги bin и obj в другое место?   -  person Peter Mortensen    schedule 24.07.2019


Ответы (2)


Вам нужно будет отредактировать файл проекта (XML), чтобы указать <BaseIntermediateOutputPath>. По умолчанию это значение равно obj\.

<PropertyGroup>
  <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
  ...
  <BaseIntermediateOutputPath>some\path\</BaseIntermediateOutputPath>
</PropertyGroup>
person Sam Harwell    schedule 25.03.2013
comment
По-видимому, вам не нужно помещать это в отдельную/специальную группу свойств. У меня работает основная (первая) группа свойств в верхней части файла проекта. ;) - person James Wilkins; 04.07.2013
comment
Я убивал себя этим. Я пытался изменить инструкции по сборке. Один лайнер! Спасибо. - person Lereveme; 27.04.2014
comment
Это отстой. Для проектов C/C++ (также для C++/CLI) вы просто меняете путь для Intermediate Directory в Project Properties > Configuration Properties > General. - person Stefan Falk; 24.07.2014
comment
Да, это работает. Папка может даже полностью находиться за пределами корневой папки с папкой .sln (таким образом, полное разделение между исходными файлами и сгенерированными файлами) с использованием относительных путей, например. ..\..\строить\объект\. Это также работает для папки bin по свойству OutputPath (например, BaseIntermediateOutputPath) или через свойства проекта (→ Build → Configuration = Debug, Output → Output path = ` ..\..\build\bin\Debug\ ` ). Обратите внимание, что, в отличие от obj, путь должен быть уникальным, по одному для каждой комбинации конфигурации/платформы (например, 4 для отладки/выпуска, 32-бит/64-бит). - person Peter Mortensen; 24.07.2019

...И (в дополнение к Sam Harwell) вы можете использовать константы и изменять любой конкретный <PropertyGroup/> (например, только "релиз") следующим образом:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <Optimize>true</Optimize>
  .....
  <OutputPath>\your_projects\bin\$(SolutionName)\$(MSBuildProjectName)\$(Configuration)\</OutputPath>
  <IntermediateOutputPath>\your_projects\obj\$(SolutionName)\$(MSBuildProjectName)\$(Configuration)\</IntermediateOutputPath>
  <DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
person Valikoo Vakh    schedule 17.06.2016