Eu tenho uma solução do Visual Studio. Atualmente, é uma solução vazia (= sem projetos) e adicionei algumas pastas de solução.
As Pastas de solução parecem ser apenas "pastas virtuais", porque não são realmente criadas no sistema de arquivos e os arquivos dentro das pastas de solução estão apenas na mesma pasta que o arquivo .sln.
Há uma configuração que esqueci que diz ao Visual Studio para tratar as Pastas de Solução como pastas "reais", isto é, criá-las no sistema de arquivos e mover arquivos para ele quando eu os movo dentro da solução para uma dessas pastas?
Edit: Obrigado. Vou fazer uma sugestão para o VS2010 então :)
visual-studio
Michael Stum
fonte
fonte
Respostas:
Nenhuma configuração especial. Eu não acho que seja compatível.
Você pode criar pastas reais em um "projeto" dentro da solução, mas não na própria solução.
fonte
Há uma solução alternativa que realmente se comporta conforme o esperado .
Feito. Agora, o Solution Explorer refletirá qualquer mudança no sistema de arquivos e vice-versa (incluindo subpastas).
Eu (sinto falta) uso-o para especificações, documentos, PM e alguns scripts DevOps que são compartilhados dentro da equipe. É fácil escolher o que incluir no controle de origem ou não e (se configurado corretamente) não entra em conflito com o build.
Eu sei que o recurso não se destina a esse caso de uso, mas exceto pelo ícone "Projeto" talvez enganoso, não encontrei nenhuma escassez para esse hack ainda. E ainda há casos de uso em que as pastas de solução clássicas (virtuais) que o VS fornece se encaixam na imagem. O que você acha?
fonte
.*proj
formato baseado em sistema de arquivos, mais limpo e claro .No Visual Studio 2017, clique no ícone "Soluções e pastas" na janela do Solution Explorer. Este botão alterna da visualização virtual da "solução" para uma "visualização do código-fonte" que corresponde ao layout das pastas e arquivos no sistema de arquivos. Quando você adiciona uma nova pasta, a pasta é criada fisicamente no local esperado. .
fonte
A resposta escolhida sugere que seria possível usar projetos reais em vez de pastas de solução, mas não explica realmente como. Acho que o que estou descrevendo aqui é possivelmente a maneira menos estranha de conseguir isso ... :-P
O problema com arquivos de projeto regulares é que eles eventualmente serão compilados pelo
MSBUILD
. E se você quiser um projeto que contenha apenas arquivos não compiláveis, isso será um problema.Mas, algum tempo atrás, o Visual Studio introduziu um novo tipo de projeto: Projeto Compartilhado (extensão .shproj). Este tipo de projeto não é compilado por padrão, mas apenas quando (e somente se) é referenciado por outro projeto.
Portanto, uma parte do truque aqui é usar projetos compartilhados em vez de pastas de solução . Obviamente, é possível adicionar um projeto compartilhado que nunca é referenciado por nenhum outro projeto, o que significa que podemos evitar o problema apresentado acima.
Então, usando a
<None Include="**/*" />
cláusula no arquivo .shproj, podemos fazer com que ele reflita automaticamente quaisquer novos arquivos e / ou subpastas.Então, basicamente, faça o seguinte:
Por exemplo, no meu caso, criei um DockerDev.shproj, para poder agrupar alguns scripts relacionados ao docker que executamos apenas em nossas máquinas de desenvolvimento:
Este arquivo .shproj manterá o controle de qualquer arquivo, em qualquer subpasta desta nova
DockerDev
pasta em minha solução.Pelo que pude ver, esta solução funciona de forma muito semelhante ao que o OP solicitou: funcionará como uma referência não compilável para uma pasta e refletirá automaticamente quaisquer alterações feitas nela.
fonte
Sara Ford contribuiu com uma macro para adicionar fazer isso. No Visual Studio 2010, se você abrir o Macro Explorer, verá uma macro chamada "GenerateSlnFolderOnDirStructure." Isso automatizará a criação das Pastas de solução e adicionará os arquivos.
fonte
Pasta para pasta de solução por Cecilia Wirén - CeciliaSHARP
Elimine o incômodo de adicionar vários arquivos à pasta da solução. Basta usar o menu de contexto para a solução e logo abaixo da opção de criar uma nova pasta de solução você encontra agora 'Adicionar pasta como pasta de solução'. Isso criará uma pasta de solução com o mesmo nome que você selecionou e adicionará os itens dentro dessa pasta à pasta de solução. Isso não moverá os arquivos no disco.
fonte
Não, não é compatível. Como você suspeitou, as pastas de solução são simplesmente subentradas virtuais no arquivo .sln, nada a ver com o sistema de arquivos.
fonte
O Visual Studio não tem suporte para isso. Eu fiz uma extensão que faz algo semelhante para o VS2013. Ele mapeia pastas de solução para pastas físicas em seu disco rígido, embora o mapeamento seja uma forma (do disco rígido para a solução). Isso significa que o conteúdo de uma pasta de solução refletirá o conteúdo da pasta do disco rígido, e não o contrário.
Com isso fora do caminho, a extensão ainda pode ser útil. Ele tem suporte para mapear pastas de solução para pastas físicas, filtrar arquivos e diretórios com base em regex e lembrar mapeamentos em seu arquivo .sln. As propriedades não são intrusivas, portanto, os desenvolvedores sem a extensão ainda podem abrir o sln e não serem afetados.
Hospedado na galeria do Visual Studio: https://visualstudiogallery.msdn.microsoft.com/69e19ea6-4442-4cb6-b300-044dd21f02bd
Editar: Carregado para bitbucket. Agora, código aberto. Licença do MIT. https://bitbucket.org/LSS_NorthWind/physical-solution-folders
fonte
Nota: Sim, é possível, você pode criar uma pasta na raiz, mas é um pouco complicado ....
Dando alguns esforços extras, você pode fazer isso. Como? Vamos seguir a etapa -
6. Pegue o repositório em um local novo.
Você terminou...
se ainda assim você não conseguir ver sua pasta -----
Parabéns, você terminou ..
Se você enfrentar qualquer problema, escreva-me para obter ajuda ..
fonte
Crie uma "pasta de soluções". Isso criará uma pasta lógica, mas não uma pasta física. Clique com o botão direito na pasta da solução e abra uma nova caixa de diálogo do projeto. Mas antes de clicar em OK, você deve alterar a localização de um projeto para a pasta física desejada e o VS irá criá-la e colocar o projeto dentro.
fonte
Você pode adicionar pastas reais escolhendo "Adicionar novo filtro" para um arquivo de projeto do Visual Studio. Você também pode fazer "Adicionar novo filtro" em uma pasta existente. Assim que a pasta for criada, renomeie-a e adicione o arquivo de origem ou de cabeçalho ou o que for mais adequado ao seu projeto. Essa é uma maneira que conheço que nos permite criar pastas reais por meio do IDE do Visual Studio.
fonte
A pasta criada embaixo da solução será virtual conforme dito. Talvez isso possa ser chamado de solução alternativa, mas você pode criar fisicamente a pasta no disco antes ou quando adicionar um novo item / projeto e Robert deve ser irmão do seu pai.
ps- em olhar mais atento, talvez eu deva explicar "Bob é seu tio" significa que você está bem / classificado.
fonte
Eu mesma desejei esse recurso algumas vezes, mas no final do dia, você realmente NÃO quer a capacidade de fazer isso. Pense na sua Solução (arquivo) como a raiz de um aplicativo da web e nas pastas da Solução como Diretórios Virtuais (literal e funcionalmente). O conteúdo de um diretório virtual da web pode estar fisicamente em um servidor totalmente diferente. O Visual Studio confundiu o conceito de pastas de solução ao permitir que você crie novos arquivos dentro da pasta. Você deve sempre "Adicionar existente" ao adicionar conteúdo. Quando você adiciona existente, ele cria um link para o local de origem do arquivo.
Mas o motivo pelo qual você não deseja que as pastas de solução se comportem como pastas "físicas" é porque seu layout de solução pode não usar necessariamente a mesma convenção que seu layout de controle de origem. As pastas de solução permitem que você personalize a hierarquia de seus projetos para que você possa agrupar projetos e itens da maneira que quiser e, em seguida, decidir que não gosta e alterá-lo novamente sem ter que passar pelo pesadelo de mover itens de controle de origem ao redor e irritando o resto de sua equipe.
fonte
src
,test
,tools
, etc. Você definitivamente querer tomar essa decisão no início do projeto para o seu ponto sobre irritando a equipe, mas isso é verdade para quase todas as decisões arquitetônicas.Eu tenho uma pequena alternativa para isso (não é ótimo, mas funciona).
Não é ótimo porque você precisará manter manualmente as referências do arquivo, mas funciona para mim.
fonte