2013-03-25 5 views
17

Da der Pfad zu lang wird (mehr als 260 Zeichen), muss ich den Ordner obj an anderer Stelle erstellen.Verschieben von Obj-Ordnern in Visual Studio 2012

Wie kann ich VS 2012 anweisen, diesen Ordner in einem angegebenen Pfad zu erstellen?

+0

I glaube nicht, dass du das kannst; Sie können jedoch den Pfad zu Ihrem Projekt/Lösung und/oder dem Assemblynamen verkürzen. Wenn Sie Ordner sehr tief verwurzelt sind, vielleicht die Verwendung eines Symlink oder Verzeichnis Junction aus, um den Pfad zu verkürzen. – codechurn

+2

Das ist ein Unfall, der darauf wartet, passiert zu sein. Derzeit ist der Ordner obj betroffen ... was könnte sonst noch betroffen sein? Warum nicht das Risiko reduzieren und alles an die Wurzel bringen? – spender

+1

Vielleicht hilft das http://www.howtogeek.com/howto/windows-vista/map-a-drive-letter-to-a-folder-the-easy-way-in-windows/ –

Antwort

37

Sie müssen die Projektdatei (XML) bearbeiten, um die <BaseIntermediateOutputPath> anzugeben. Dieser Wert ist standardmäßig obj\.

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    ... 
    <BaseIntermediateOutputPath>some\path\</BaseIntermediateOutputPath> 
</PropertyGroup> 
+2

Offenbar müssen Sie dies nicht in eine separate/spezielle Eigenschaftsgruppe einfügen. Die Haupt (first) PropertyGroup am Anfang der Projektdatei funktioniert für mich. ;) –

+0

Ich habe mich damit selbst getötet. Ich habe versucht, die Build-Anweisungen zu ändern. Einzeiler! Vielen Dank. – Lereveme

+2

Das ist scheiße. Für C/C++ - Projekte (auch für C++/CLI) ändern Sie einfach den Pfad für "Intermediate Directory" in "Projekteigenschaften> Konfigurationseigenschaften> Allgemein". – displayname

-1

Klicken Sie mit der rechten Maustaste auf das Projekt -> Eigenschaften und wählen Sie ein neues Debug/Deploy dir.

+3

Die Frage wird nicht behandelt. – leppie

2

... Und (zusätzlich zu Sam Harwell) Sie können Konstanten verwenden und eine bestimmte <PropertyGroup/> (nur "Freigabe" zum Beispiel) ändern können auf diese Weise:

<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>