Come faccio ad aggiungere un albero di directory esistente a un progetto in Visual Studio?

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

  •  23-08-2019
  •  | 
  •  

Domanda

La questione è semplice, in realtà. Invece di creare cartelle in Visual Studio, creo una struttura di directory per il mio progetto sul file system. Come faccio a includere tutte le cartelle ei file di un progetto, mantenendo la struttura?

Se io "Add File esistente" a una cartella denominata Servizi e passare a un file nella struttura di directory .. Servizi> AccountManagement> CreateAccount.cs, appare in Visual Studio in questo modo: Servizi> CreateAccount.cs. Non voglio questo.

Ho una intera struttura di directory ha funzionato già, come sto imitando i nostri sviluppatori di client utilizzando la stessa struttura per l'organizzazione. Come faccio ad aggiungere tutte le cartelle ei file al progetto in Visual Studio? O devo fare quello che la maggior parte degli utenti Microsoft non e "mettere in su con esso" e ricreano ogni cartella tramite Visual Studio?

È stato utile?

Soluzione

Hai bisogno di mettere la vostra struttura di directory nella directory del progetto. E quindi fare clic sull'icona "Mostra tutti i file" nella parte superiore di Esplora soluzioni toolbox. Dopo di che, la directory aggiunto verrà mostrato up. Sarà quindi necessario selezionare questa directory, fare clic destro e scegliere "Includi nel progetto".

 entrare descrizione dell

 entrare descrizione dell

Altri suggerimenti

È anche possibile trascinare la cartella dalla Esplora risorse sulla vostra finestra soluzione di Visual Studio.

In Visual Studio 2015, questo è come lo fai.

Se si voleva includere automaticamente tutti i file discendenti sotto una cartella specifica:

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

Questo può essere limitato per includere solo i file all'interno del percorso specificato:

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

O anche solo i file con una determinata estensione:

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

Riferimento: http://jamesrpatterson.com/blog/ automatico-include-in-progetto-per-visual-studio

Copia e incolla .

Per aggiungere una cartella, tutti i sub-directory e file che possono anche copiare e incollare. Per esempio possiamo:

  1. Fare clic destro in Windows Explorer sulla cartella, e copia della cartella con molti file e cartelle.

  2. Poi in Visual Studio Esplora soluzioni, fare clic destro sulla cartella di destinazione e scegliere Incolla.

  3. opzionale aggiungere al TFS; Poi nella cartella principale fare clic destro e check-in per TFS per il check-in tutte le sottocartelle e file.

È possibile utilizzare un collegamento simbolico. Questo rende la modifica del file in un unico progetto modificarlo in un altro (come in realtà è lo stesso file).

Per fare questo:

  1. Aprire il prompt cmd come amministratore
  2. mklink / d [progetto attuale nome della directory] [directory in un altro progetto che dovrebbe puntare a]

Questo ha i suoi svantaggi e le insidie, ma lo uso a volte per le biblioteche duplicati che hanno bisogno di nomi diversi.

Modifica per Anoop: Passaggi per aggiungere a Visual Studio:

  1. Crea collegamento nella cartella di progetto utilizzando la procedura descritta sopra.
  2. In Visual Studio ... Progetto selezionato in Esplora soluzioni.
  3. Nella parte superiore del ... Esplora soluzioni fare clic sul pulsante Mostra tutti i file (potrebbe essere necessario cliccare due volte se già attivo).
  4. Il collegamento mostrerà ora nel progetto ... destro del mouse e scegliere Includi nel progetto.

Questi sono i passi che seguo e lavori per un paio di progetti diversi.

Per espandere il di Yuchen risposta , è possibile includere file e percorsi come un link. Questa non è la stessa cosa come l'aggiunta gli elementi esistenti, perché non fa una copia in più nella struttura delle cartelle del progetto. E 'utile se si desidera una canonica cartella / file etc da utilizzare in un sacco di posti diversi, ma si desidera solo per mantenere una versione / copia di esso.

Ecco un esempio di cosa è possibile aggiungere a un file *.csproj per creare il collegamento

<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) è una variabile ambiente Windows ho definito, è possibile utilizzare le variabili di ambiente incorporate nello stesso modo.

L'ultimo gruppo esempio è un gruppo di file di contenuto di cui ho bisogno nel risultato finale. Vedere https://stackoverflow.com/a/11808911/492 e altre risposte e collegamenti per più su questo.

Maggiori informazioni MSBuild a https://msdn.microsoft.com/en- us / library / bb629388.aspx

In Visual Studio 2017, si passa da Soluzione Visualizza e Vista cartella avanti e indietro. Penso che questa sia una soluzione migliore, perché sarà mantenere il più pulito soluzione. Io lo uso per modificare .gitignore, file .MD, ecc.

 Soluzione Vista e Vista cartella

Credo di aver trovato un modo per fare questo con la compilazione Include = "\ Codice ***. Cs" Quello che ho voluto è quello di includere il codice in modo ricorsivo sotto la mia cartella di codice.

Qui è il campione di file di progetto.

<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, non ho potuto ottenere "includere in Project" al lavoro quando clic destro su una cartella. Che cosa ha fatto il lavoro si sta espandendo la cartella, selezionare tutti i file quindi scegliendo "Include in Project". E 'stato abbastanza noioso come si deve fare ogni cartella ad uno ad uno (ma almeno si può fare tutti i file in ogni cartella in una volta sola), e sembra di memorizzare il percorso del file (si può vedere questo visualizzando le proprietà del file e guardando l'opzione "Relative Path".)

Spero di usare questo per distribuire alcuni file di dati in un progetto di Visual Studio Installer, e sembra raccogliere i file inclusi e preservare i loro percorsi.

Per quanto posso dire, l'unico modo per fare questo in VS2010 è simile al metodo drag and drop. Tasto destro del mouse la soluzione a cui si desidera aggiungere un progetto. Il menu dell'applicazione avrà un add ... oggetto. Apertura che, si scopre che una delle opzioni è quello di aggiungere un progetto esistente alla soluzione.

Nella finestra di dialogo che si apre, passare alla cartella contenente il file di progetto per la soluzione e selezionarlo. VS sarà, come parte di importazione di tale file di progetto, importare anche l'intera directory e, presumo tutte le directory subordinate che fanno parte di quel progetto.

Dato che questo non richiede un file di progetto esistente, non sarà impossibile importare un albero di directory fino a quando l'albero è stato convertito in un progetto.

non ho trovato nessuna risposta alla mia soddisfazione, così ho pensato io.

Ecco la risposta per voi, se si desidera aggiungere codici sorgente esterni al progetto e non si desidera copiare l'intero codice. Ho molte dipendenze da altri Gits e vengono aggiornate ogni ora se non minuziosamente. Non posso fare copiare ogni ora per sincronizzare. Ecco cosa dovete fare.

Si supponga questa è la struttura:

/ root / proja / src

/ root / proja / include

/ root / projB / src

/ root / projB / include

/ root / yourProj / src

/ root / yourProj / include

  1. Iniziare la soluzione VS.
  2. Fare clic destro sul nome del progetto proprio sotto la Soluzione.
  3. Quindi fare clic sul
  4. "Aggiungi", "Nuovo filtro", inserire il nome di "proja" per proja.
  5. Fare clic sul "proja", fai clic su "Aggiungi", "Nuovo filtro", inserire il nome "src"
  6. Fare clic sul "proja", fai clic su "Aggiungi", "Nuovo filtro", inserire il nome "include"
  7. tasto destro del mouse "proja" / "src", fai clic su "Aggiungi", "elemento esistente", quindi passare alla / root / proja / src per aggiungere tutti i codici sorgente o uno per uno per quelli che si desidera.
  8. Fare lo stesso per "proja" / "include"
  9. Fare stesso per projB. Ora i / progetti esterni esistenti al di fuori vostra sono presenti nella soluzione / progetto. Il VS sarà compilarli insieme. Ecco un trucco. Dal momento che il proja e projB sono cartelle virtuali sotto il vostro progetto, il compilatore non può trovare il proja / include.

  10. Se non trova il proja / include, quindi fare clic destro del progetto, selezionare "Proprietà".

  11. Accedere alla "C / C ++". Modifica "Directory di inclusione aggiuntive", aggiungere il tuo proja / include come tali "../projA/includes", percorso relativo.

Un avvertimento, se ci sono duplicati includere file / intestazione, il "escludere dal progetto" a "file di intestazione" non funziona davvero. Si tratta di un bug in VS.

Visual Studio 2017 e più recente supporta un nuovo formato .csproj leggero che è venuto per essere conosciuta come "Format SDK". Uno dei molti vantaggi di questo formato è che invece di contenere un elenco di file e cartelle che sono inclusi , i file sono jolly incluso di default. Pertanto, con questo nuovo formato, i file e le cartelle - Aggiunto in Explorer o nella linea di comando -! Avranno raccolto automaticamente

Il file .csproj Format SDK attualmente lavora con il seguente tipi di progetto :

  • progetti libreria di classi

  • apps Console

  • applicazioni web ASP.NET core

  • .NET progetti principali di qualsiasi tipo

Per usare il nuovo formato, creare un nuovo progetto NET Core o NET standard. Dato che i modelli non sono state aggiornate per l'intero .NET Framework, anche in Visual Studio 2019, per creare una libreria di classi .NET scegliere il modello NET libreria standard, e quindi modificare il file di progetto di indirizzare la versione quadro di vostra scelta ( il nuovo formato di progetto stile può essere modificato all'interno di Visual Studio - basta fare clic destro del progetto in Solution Explorer e selezionare "Modifica file di progetto"). Ad esempio:

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

Per ulteriori approfondimenti:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top