Como faço para adicionar uma árvore de diretórios existente para um projeto no Visual Studio?

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

  •  23-08-2019
  •  | 
  •  

Pergunta

A questão é realmente simples. Em vez de criar pastas no Visual Studio, criar uma estrutura de diretório para o meu projeto no sistema de arquivos. Como faço para incluir todas as pastas e arquivos em um projeto, mantendo a estrutura?

Se eu "Adicionar arquivo existente" em uma pasta Serviços nomeados e navegue até um arquivo na estrutura de diretório .. Serviços> AccountManagement> CreateAccount.cs, ele aparece no Visual Studio assim: Serviços> CreateAccount.cs. Eu não quero isso.

Eu tenho uma estrutura de diretório inteira trabalhou fora já, como eu estou imitando nossos desenvolvedores de clientes utilizando a mesma estrutura de organização. Como faço para adicionar todas as pastas e arquivos para o projeto no Visual Studio? Ou eu tenho que fazer o que a maioria dos usuários da Microsoft que e "colocar-se com ele" e recriar cada pasta através do Visual Studio?

Foi útil?

Solução

Você precisa colocar sua estrutura de diretório no diretório do projeto. E, em seguida, clique no ícone "Mostrar todos os arquivos" na parte superior da caixa de ferramentas Solution Explorer. Depois disso, o diretório adicionado será mostrado. então você terá de escolher este diretório, clique direito e escolha "Incluir no Projeto."

 enter descrição da imagem aqui

 enter descrição da imagem aqui

Outras dicas

Você também pode arrastar e soltar a pasta de Windows Explorer em sua janela solução Visual Studio.

No Visual Studio 2015, este é como fazê-lo.

Se você queria incluir automaticamente todos os arquivos descendentes abaixo uma pasta específica:

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

Isto pode ser restringida para incluir apenas arquivos dentro do caminho especificado:

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

Ou mesmo somente os arquivos com a extensão especificada:

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

Referência: http://jamesrpatterson.com/blog/ automática incluem-in-projeto-para-visual-studio

Copiar e Colar .

Para adicionar uma pasta, todos os sub-diretórios e arquivos também podemos copiar e colar. Por exemplo nós podemos:

  1. Clique com o botão direito no Windows Explorer na pasta e Copiar na pasta com muitos arquivos e pastas.

  2. Então, em Visual Studio Solution Explorer, clique direito sobre a pasta de destino e clique em Colar.

  3. add Facultativo à TFS; Em seguida, no topo pasta clique direito e check-in para TFS para verificar em todas as sub-pastas e arquivos.

Você pode usar um link simbólico. Isso faz com que a modificação do arquivo em um projeto modificá-lo no outro (como é realmente o mesmo arquivo).

Para fazer isso:

  1. Open Prompt CMD como administrador
  2. mklink / d [nome do diretório atual projeto] [diretório em outro projeto que deve apontar para]

Esta tem suas desvantagens e armadilhas, mas eu usá-lo de vez em quando para bibliotecas duplicadas que precisam de nomes diferentes.

Editar para Anoop: Passos para adicionar ao Visual Studio:

  1. Criar link no projeto pasta usando as etapas acima.
  2. No Visual Studio ... selecione projeto no Solution Explorer.
  3. No topo da Solution Explorer ... clique no botão Mostrar todos os arquivos (seja necessário clicar duas vezes, se já está ativo).
  4. O link irá agora mostrar em seu projeto ... clique com o botão direito e escolha Incluir No projeto.

Estes são os passos que eu sigo e obras por um par projetos diferentes.

Para expandir a de Yuchen resposta , você pode incluir arquivos e caminhos como um link. Esta não é a mesma coisa que adicionando os itens existentes, porque não fazer uma cópia extra na estrutura de pastas do seu projeto. É útil se você quiser um canônica pasta arquivo / etc para ser usado em um monte de lugares diferentes, mas você só quer manter uma versão / cópia do mesmo.

Aqui está um exemplo do que você pode adicionar a um arquivo *.csproj para criar o link

<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) é uma variável ambiente Windows I definido, você pode usar o built-in variáveis ??de ambiente da mesma maneira.

O último exemplo grupo é um monte de arquivos de conteúdo que eu preciso no resultado final. Consulte https://stackoverflow.com/a/11808911/492 e outras respostas e links lá para saber mais sobre isso.

Mais informações MSBuild em https://msdn.microsoft.com/en- us / library / bb629388.aspx

No Visual Studio 2017, você alternar entre Solução Ver e Exibição de pasta e para trás. Eu acho que esta é uma opção melhor, porque ele vai manter o aspirador de solução. Eu uso isso para editar .gitignore, arquivos .MD, etc.

 Solu&ccedil;&atilde;o Ver e Vista da pasta

Acho que encontrei uma maneira de fazer isso com a compilação Incluir = "\ Code ***. Cs" O que eu queria é incluir código recursiva sob a minha pasta de código.

Aqui está o exemplo arquivo de projeto.

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

No Visual Studio 2013, eu não poderia ficar "Incluir no Projeto" para o trabalho quando se clica com o botão direito em uma pasta. O que fez o trabalho está expandindo a pasta, selecionando todos os arquivos, em seguida, escolha "Incluir no Projeto". Foi muito tedioso como você tem que fazer cada uma pasta por um (mas pelo menos você pode fazer todos os arquivos em cada pasta de uma só vez), e parece para armazenar o caminho do arquivo (você pode ver isso exibindo propriedades no arquivo e olhando para a opção "Caminho relativo".)

Estou esperando para usar isso para implantar alguns arquivos de dados em um projeto Visual Studio Installer, e parece para pegar os arquivos incluídos e preservar seus caminhos.

Tanto quanto eu posso dizer, a única maneira de fazer isso no VS2010 é semelhante ao método de arrastar e soltar. Botão direito do mouse a solução para a qual você deseja adicionar um projeto. O menu do aplicativo terá um add ... item. Abrindo isso, você descobrir que uma das opções é adicionar um projeto existente para a solução.

Na caixa de diálogo que se abre, navegue até a pasta que contém o arquivo de projeto para a solução e selecione-o. VS irá, como parte de importação que arquivo de projeto, também importar todo o diretório e, presumo que todos os diretórios subordinados que fazem parte desse projeto.

Como este requer um arquivo de projeto existente, não será impossível importar uma árvore de diretórios até que a árvore tenha sido convertido para um projeto.

Eu não encontrei nenhuma resposta para minha satisfação, então eu descobri a mim mesmo.

Aqui está a resposta para você, se você quiser adicionar códigos de fonte externa para o seu projeto e não quer copiar os códigos inteiros. Tenho muitas dependências em outros gits e são atualizadas a cada hora, se não minuciosamente. Eu não posso fazer copiar a cada hora para sincronizar. Aqui está o que você precisa fazer.

Suponha que este é estrutura:

/ root / proja / src

/ root / proja / inclui

/ root / projB / src

/ root / projB / inclui

/ root / yourProj / src

/ root / yourProj / inclui

  1. Comece sua solução VS.
  2. Clique com o botão direito no nome do projeto abaixo do Solution.
  3. Em seguida, clique no botão "Adicionar", "Novo Filtro", coloque o nome "proja" para proja.
  4. Clique com o botão direito sobre o "proja", clique em "Adicionar", "New Filter", digite o nome "src"
  5. Clique com o botão direito sobre o "proja", clique em "Adicionar", "New Filter", digite o nome "inclui"
  6. botão direito do mouse "proja" / "src", clique em "Adicionar", "Existing Item", em seguida, navegue até o / root / proja / src para adicionar todos os códigos-fonte ou um por um para os que você deseja.
  7. Faça mesmo para "proja" / "inclui"
  8. Do mesmo para projB. Agora, os / projetos externos existentes fora seu estão presentes em sua solução / projeto. O VS irá compilá-los juntos. Aqui está um truque. Desde o proja e projB são pastas virtuais em seu projeto, o compilador pode não encontrar o proja / inclui.

  9. Se não encontrar o proja / inclui, em seguida, clique direito do mouse no projeto, selecione "Propriedades".

  10. Navegue até "C / C ++". Editar "adicionais incluir diretórios", adicione seu proja / incluir como tais "../projA/includes", caminho relativo.

Uma ressalva, se não são duplicados include / arquivos de cabeçalho, o "excluir do projeto" sobre o "Arquivo de cabeçalho" realmente não funciona. É um bug no VS.

Visual Studio 2017 e suporte mais recente um novo formato .csproj leve, que veio a ser conhecido como "formato SDK". Uma das várias vantagens deste formato é que em vez de conter uma lista de arquivos e pastas que são incluídos , os arquivos são wildcard incluído por padrão. Portanto, com este novo formato, seus arquivos e pastas - adicionados no Explorer ou na linha de comando - irá ter pego automaticamente

O arquivo de formato .csproj SDK atualmente trabalha com o seguinte tipos de projeto :

  • projetos de biblioteca de classe

  • Console Apps

  • aplicações web ASP.NET Núcleo

  • projetos .NET núcleo de qualquer tipo

Para usar o novo formato, criar um novo projeto .NET Núcleo ou .NET padrão. Porque os modelos não foram atualizados para o .NET Framework completo mesmo em Visual Studio 2019, para criar uma biblioteca de classes .NET escolher o Standard Template Library .NET e, em seguida, editar o arquivo de projeto para direcionar a versão do framework de sua escolha ( o novo formato do projeto estilo podem ser editados dentro do Visual Studio - basta clicar o botão direito no projeto no Solution Explorer e selecione "arquivo de projeto Edit"). Por exemplo:

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

Além disso leitura:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top