Wie füge ich einen vorhandenen Verzeichnisbaum zu einem Projekt in Visual Studio?

StackOverflow https://stackoverflow.com/questions/392473

  •  23-08-2019
  •  | 
  •  

Frage

Die Frage ist wirklich einfach. Stattdessen Ordner in Visual Studio zu erstellen, schaffe ich für mein Projekt auf dem Dateisystem eine Verzeichnisstruktur. Wie füge ich alle Ordner und Dateien in einem Projekt, um die Struktur zu halten?

Wenn ich auf „Hinzufügen vorhandene Datei“ auf einem Ordner mit dem Namen-Service und navigieren Sie zu einer Datei in der Verzeichnisstruktur .. Dienstleistungen> Account> CreateAccount.cs, scheint es in Visual Studio wie so: Dienstleistungen> CreateAccount.cs. Ich will das nicht.

Ich habe eine ganze Verzeichnisstruktur bereits ausgearbeitet, wie ich unseren Client-Entwickler bin imitiert die gleiche Struktur für die Organisation mit. Wie füge ich alle Ordner und Dateien in das Projekt in Visual Studio? Oder muss ich tun, was die meisten Microsoft-Benutzer tun und „es dulden“ und jeden einzelnen Ordner durch Visual Studio neu erstellen?

War es hilfreich?

Lösung

Sie benötigen eine Verzeichnisstruktur in Ihrem Projektverzeichnis setzen. Und dann klicken Sie auf „Alle Dateien anzeigen“ Symbol in der oberen der Lösung Explorer Toolbox. Danach wird das hinzugefügte Verzeichnis angezeigt werden. Sie müssen dann dieses Verzeichnis auszuwählen, klicken Sie rechts und wählen Sie „In-Projekt.“

 image description hier

 image description hier

Andere Tipps

Sie können auch den Ordner von Windows Explorer auf Ihre Visual Studio-Lösung Fenster per Drag & Drop.

In Visual Studio 2015, das ist, wie Sie es tun.

Wenn Sie alle Nachkommen Dateien unter einem bestimmten Ordner automatisch schließen wollen:

<Content Include="Path\To\Folder\**" />

Dies kann eingeschränkt werden nur Dateien im Pfad enthält angegeben:

<Content Include="Path\To\Folder\*.*" />

oder auch nur Dateien mit einer vorgegebenen Endung:

<Content Include="Path\To\Folder\*.jpg" >

Referenz: http://jamesrpatterson.com/blog/ automatische-include-in-Projekt-for-visual-studio

Kopieren und Einfügen .

Um einen Ordner hinzufügen, werden alle Unterverzeichnisse und Dateien können wir auch kopieren und einfügen. Zum Beispiel können wir:

  1. Rechtsklick im Windows Explorer auf dem Ordner, und Kopieren auf dem Ordner mit vielen Dateien und Ordnern.

  2. Dann in Visual Studio Solution Explorer mit der rechten klicken Sie auf den Zielordner und klicken Sie auf Einfügen.

  3. Optional zu TFS hinzuzufügen; Dann im oberen Ordner kopieren und überprüfen, um TFS in zu überprüfen, in alle Unterordner und Dateien.

Sie können einen symbolischen Link verwenden. Dies macht die Datei in einem Projekt ändern es in der anderen Modifikation (wie es ist eigentlich die gleiche Datei).

Um dies zu tun:

  1. Öffnen cmd Aufforderung als Administrator
  2. mklink / d [aktuelles Projekt Verzeichnisname] [Verzeichnis in anderem Projekt soll es verweisen auf]

Das hat es Nachteile und Gefahren, aber ich benutze es gelegentlich für doppelte Bibliotheken, die verschiedenen Namen benötigen.

Bearbeiten für Anoop: Schritte zum Visual Studio hinzuzufügen:

  1. Verknüpfung erstellen im Projektordner die Schritte oben.
  2. In Visual Studio ... wählen Projekt in Projektmappen-Explorer.
  3. An der Spitze der Lösung Explorer ... klicken Sie auf die Schaltfläche Alle Dateien anzeigen (müssen es zweimal, wenn bereits aktiv anklicken).
  4. Die Verbindung wird nun in Ihrem Projekt ... der rechten Maustaste und wählen Im Projekt einbeziehen.

Dies sind die Schritte, die ich folgen und Werke für ein paar verschiedene Projekte.

Um auf Yuchen Antwort zu erweitern, können Sie Dateien und Pfade als Link enthalten. Dies ist nicht dasselbe wie das Hinzufügen der vorhandenen Elemente, weil es in Ihrer Projektordnerstruktur keine zusätzliche Kopie. Es ist nützlich, wenn Sie eine kanonische Ordner / Datei etc wollen in einer Menge von verschiedenen Orten verwendet werden, aber Sie wollen nur eine Version / Kopie davon erhalten.

Hier ist ein Beispiel dafür, was Sie zu einer *.csproj Datei hinzufügen können den Link

erstellen
<Compile Include="$(Codez)\z.Libraries\Common\Strings\RegexExtensions.cs">
    <Link>Helpers\RegexExtensions.cs</Link>
</Compile>

<Compile Include="..\..\z.Libraries\MoreLINQ\MoreLinq\ExceptBy.cs">
    <Link>Helpers\ExceptBy.cs</Link>
</Compile>

<Content Include="C:\Codez\Libs\Folder\OtherFolder\**\*.*">
    <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

$(Codez) ein Windows-Umgebungsvariable ist I definiert ist, können Sie das eingebaute in Umgebungsvariablen in der gleichen Weise verwendet werden.

Die letzte Beispiel Gruppe ist eine Gruppe von Inhaltsdateien ich in der letzten Ausgabe benötigen. Siehe https://stackoverflow.com/a/11808911/492 und andere Antworten und Links dort für mehr dazu.

Weitere MSBuild Informationen unter https://msdn.microsoft.com/en- us / library / bb629388.aspx

In Visual Studio 2017 wechseln Sie zwischen Lösung Ansicht und Ordneransicht hin und her. Ich denke, dies ist eine bessere Option, weil es die Lösung sauberer zu halten. Ich benutze diese .gitignore, .md-Dateien zu bearbeiten, etc.

 Paaransicht und Ordneransicht

Ich denke, dass ich einen Weg gefunden, dies zu tun mit dem Compile Include = "\ Code ***. Cs" Was ich wollte, ist Code rekursiv unter meinem Code-Ordner enthalten.

Hier ist die Projektdatei Probe.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0" DefaultTargets="BuildTarget">
    <PropertyGroup>
        <OutputType>Library</OutputType>
    </PropertyGroup>
    <PropertyGroup>
        <StartupObject />
    </PropertyGroup>
    <PropertyGroup>
        <RootNamespace>Autogen</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
        <Compile Remove="@(Compile)" />
        <Compile Include=".\Code\**\*.cs" />
    </ItemGroup>
    <Target Name="BuildTarget">
        <Message Text="Build selected" Importance="high"/>
    </Target>
</Project>

In Visual Studio 2013, konnte ich nicht „In Project“ zu arbeiten, wenn die rechte Maustaste auf einem Ordner. Was hat Arbeit die Ordner erweitert, die Auswahl dann alle Dateien, die Wahl „In Project“. Es war ziemlich langweilig, wie Sie jeden Ordner einzeln zu tun haben (aber zumindest können Sie alle Dateien in jedem Ordner in einem Rutsch zu tun), und es scheint, den Dateipfad zu speichern (Sie dies, indem Sie Eigenschaften auf der Datei sehen können und Blick auf die "Relative Path" Option.)

Ich hoffe, diese zu verwenden, um einige Dateien in einem Visual Studio Installer-Projekt zu implementieren, und es scheint, die darin enthaltenen Dateien zu holen und bewahren ihre Wege.

Soweit ich sagen kann, ist der einzige Weg, dies in VS2010 zu tun ist, um die Drag-and-Drop-Methode verwendet. Rechtsklick auf die Lösung, auf die Sie ein Projekt hinzuzufügen. Das Anwendungsmenü wird ein Add ... Artikel. dass Öffnen Sie feststellen, dass eine der Optionen ist ein bestehendes Projekt zur Lösung hinzuzufügen.

Im Dialogfeld, das Navigieren zu dem Ordner mit der Projektdatei für die Lösung und wählen sie sich öffnet. VS wird im Rahmen diese Projektdatei zu importieren, auch das gesamte Verzeichnis importieren und ich alle untergeordneten Verzeichnisse übernehmen, den Teil des Projektes ist.

Da dies eine vorhandene Projektdatei erfordert, wird es nicht unmöglich sein, einen Verzeichnisbaum zu importieren, bis der Baum in ein Projekt umgesetzt wurde.

fand ich keine Antwort auf meine Zufriedenheit, so dass ich herausgefunden mich.

Hier ist die Antwort auf Sie, wenn Sie die externen Codes zu einem Projekt hinzufügen mögen, und wollen nicht über den gesamten Codes kopieren. Ich habe viele Abhängigkeiten von anderen gits und sie werden stündlich, wenn nicht minutiös aktualisiert. Ich kann nicht jede Stunde kopiere bis zu synchronisieren. Hier ist, was Sie tun müssen.

Angenommen, dies ist Struktur:

/ root / projA / src

/ root / projA / includes

/ root / projB / src

/ root / projB / includes

/ root / yourProj / src

/ root / yourProj / includes

  1. Starten Sie Ihre VS-Lösung.
  2. Rechtsklick auf den Projektnamen direkt unterhalb der Lösung.
  3. Klicken Sie dann auf die Schaltfläche "Hinzufügen", "Neuer Filter", setzen Sie den Namen "projA" für projA.
  4. Rechtsklick auf den "projA", klicken Sie auf "Hinzufügen", "Neuer Filter", geben Sie den Namen "src"
  5. Rechtsklick auf den "projA", klicken Sie auf "Hinzufügen", "Neuer Filter", geben Sie den Namen "enthält"
  6. Rechtsklick auf „projA“ / „src“, klicken Sie auf „Hinzufügen“, „Vorhandenes Element“, wechseln Sie dann in das Verzeichnis / root / projA / src alle Quellcodes oder eins nach dem anderen für diejenigen hinzufügen, die Sie wollen.
  7. Sie gleiche für "projA" / "enthält"
  8. Sie gleich für projB. Nun wird die externen / bestehenden Projekte außerhalb Sie sind in Ihrer Lösung / Projekt. Der VS wird sich zusammen kompilieren. Hier ist ein Trick. Da die projA und projB virtuelle Ordner unter Ihrem Projekt sind, finden kann der Compiler nicht die projA / includes.

  9. Wenn es nicht findet, die projA / enthält, dann rechts das Projekt klicken, wählen Sie die "Eigenschaften".

  10. Navigieren Sie zu "C / C ++". Bearbeiten „Zusätzliche Includeverzeichnisse“, fügen Sie Ihre projA / umfassen als solche „../projA/includes“, relativer Pfad.

Einen Nachteil, wenn es dupliziert werden, umfassen / Header-Dateien, wird die „ausschließen Projekt“ auf der „Header-Datei“ funktioniert nicht wirklich. Es ist ein Fehler in VS.

Visual Studio 2017 und neuere ein neues leichtes .csproj-Format unterstützen, die als „SDK-Format“ zu werden sind gekommen, um bekannt. Einer von mehreren Vorteilen dieses Formats ist, dass anstatt eine Liste von Dateien und Ordnern enthalten, die sind enthalten , Dateien Wildcard standardmäßig enthalten sind. Aus diesem Grunde mit diesem neuen Format, Ihre Dateien und Ordner - hinzugefügt im Explorer oder in der Befehlszeile - automatisch abgeholt werden

Die SDK Format .csproj Datei arbeitet zur Zeit mit folgenden Projekttypen :

  • Klassenbibliotheksprojekte

  • Konsolenanwendungen

  • ASP.NET Core-Web-Anwendungen

  • .NET Core-Projekte jeglicher Art

das neue Format verwenden, erstellen Sie ein neues .NET-Core oder .NET-Standard-Projekt. Da die Vorlagen haben für die volle .NET Framework nicht einmal in Visual Studio 2019 aktualisiert worden ist, um eine .NET-Klassenbibliothek zu erstellen .NET Standard Library-Vorlage auswählen, und dann die Projektdatei bearbeiten, um die Framework-Version Ihrer Wahl zu zielen ( die neue Stil Projektformat kann in Visual Studio bearbeitet werden - genau richtig, das Projekt im Solution Explorer klicken und wählen Sie „Bearbeiten der Projektdatei“). Zum Beispiel:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>
</Project>

Lesen Sie auch:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top