Projeto de cópia do Visual Studio

141

Eu gostaria de fazer uma cópia do meu projeto. Prefiro não começar do zero adicionando arquivos e referências, etc. Por favor, note que não me refiro a cópia para implantação. Apenas cópia simples.

Existe uma ferramenta no VS para fazer isso? Estou usando o VS 2008

sarsnake
fonte

Respostas:

144

Se você deseja uma cópia, a maneira mais rápida de fazer isso é salvar o projeto. Em seguida, faça uma cópia de tudo no sistema de arquivos. Volte para o Visual Studio e abra a cópia. A partir daí, eu provavelmente recomendaria mudar o nome do projeto / solução para que você não tenha dois nomes iguais, mas essa é a maneira mais rápida de fazer uma cópia.

Mitchel Sellers
fonte
25
O que acontece com o ProjectGUID, então?
Lars Corneliussen
4
Não se esqueça de excluir os arquivos svn, se você tiver algum (eu fiz!) -> weblogs.asp.net/jgalloway/archive/2007/02/24/…
qbantek
51
O GUID do projeto é atualizado automaticamente pelo VS, se outro projeto com o mesmo GUID existir na mesma solução.
Sebastian Krysmanski
3
Estou tentando isso, mas ele não renomeia os namespaces dos aplicativos. Não é o que eu estava procurando.
Jason
3
O GUID do projeto NÃO É ATUALIZADO AUTOMATICAMENTE PELO VS no Community 2017 Versão 15.8.4. De fato, como poderia ser se o seu AssemblyInfo.cs estiver no controle do código-fonte?
PeterVermont 18/09/18
134

Basta criar um modelo ;

No seu projeto, escolha: Projeto - Exportar modelo

O assistente permitirá que você defina

  • Nome do modelo
  • Descrição do modelo
  • Ícone
  • Visualizar imagem

Depois, fecha seu projeto no diretório 'Meus Modelos Exportados'. Você também tem a opção de disponibilizar seu modelo ao criar um novo projeto.

Quando você usa seu modelo para criar um novo projeto, o namespace estará correto para 'your_new_project_name' em todo arquivo, todas as referências corretas, tudo perfeito :)

Você pode enviar o arquivo .zip para qualquer pessoa e eles devem copiar (não descompactar) o arquivo .zip no diretório Templates \ ProjectTemplates para que eles também usem.

Eu criei um modelo ASP.NET MVC com pastas, página de layout, modelos de exibição, etc., organizados exatamente como eu gosto deles.

NOTA:
Se você tiver uma pasta vazia no seu projeto, ela NÃO será adicionada ao modelo, então acabei de adicionar uma classe vazia apropriada para cada pasta e uma imagem de exemplo para a pasta de imagens.

Shane
fonte
28
OMI, melhor resposta.
fischgeek
14
No VS2017, o modelo de exportação estava no item de menu de nível superior do projeto.
Choco
3
Isso é incrivelmente útil, como eu não sabia disso antes? Obrigado!
Aldarrion
5
Essa deve ser a resposta escolhida. Muito fácil! Esse processo deve ter copiado para a pasta Templates \ ProjectTemplates também, apenas certifique-se. Eu tive que reiniciar o Visual Studio para vê-lo na caixa de diálogo de criação do projeto.
Midoriha_senpai
3
Quando chegou a hora de importar o modelo para criar um novo projeto, não consegui descobrir como fazê-lo. Aconteceu que eu tive que usar a barra de pesquisa na caixa de diálogo Novo Projeto para localizar o modelo.
Tawab Wakil
6

Eu acho que se isso é algo que você faz com frequência, há um pequeno utilitário (não gratuito) que promete fazer isso por você: eu não o usei, então não tenho certeza de quão bom é:

http://www.kinook.com/CopyWiz/

Há também este projeto no CodePlex:

http://clone.codeplex.com/

Provavelmente tentarei o projeto codeplex e, se não funcionar, vou renomear tudo manualmente e editar o arquivo sln.

brincadeira
fonte
O aplicativo codeplex "Solution Clone" funciona muito bem. Ele copia e renomeia todos os arquivos de solução e mantém todas as referências. A única coisa que eu precisava fazer era substituí-lo para o novo arquivo de projeto renomeado após abrir a solução copiada e renomear o nome do assembly e o espaço para nome raiz nas propriedades do projeto. Era muito mais fácil do que fazer tudo manualmente.
Fütemire
4

É altamente recomendável não deixar para copiar projetos em todos, porque os alguns arquivos de configuração formada internamente como .csproj, .vspscc etc. pode (e provavelmente irá) aponte para referências que pertencem a soluções anteriores de localização e outros caminhos / locais em sistema ou TFS. A menos que você seja especialista na leitura desses arquivos e na correção de referências, não tente copiar projetos.

Você pode criar um projeto esquelético do mesmo tipo que pretende copiar, isso cria um arquivo .csproj, .vspscc adequado . Agora você pode copiar os arquivos de classe, scripts e outro conteúdo do projeto anterior, pois eles não terão impacto. Isso garantirá uma construção e controle de versão fáceis (caso você queira se interessar por isso)

Tendo dito tudo isso, deixe-me fornecer o método para copiar o projeto de qualquer maneira, de maneira passo a passo:

  1. Vá para o projeto que deseja copiar no Solution Explorer e clique com o botão direito do mouse .
  2. Agora selecione ' Abrir pasta no File Explorer ' (supondo que você tenha a solução mapeada para um caminho local no seu disco).
  3. Selecione os Projetos que você deseja replicar como pastas inteiras (junto com todas as dependências, arquivo bin .vspscc, arquivo .csproj)
  4. Cole-os no local desejado (pode ser a mesma pasta de solução ou mesmo outra pasta de solução. Se estiver dentro da mesma pasta de solução, será necessário renomeá-lo, também o .csproj e outros arquivos internos para o novo nome. )
  5. Não volte ao Visual Studio, clique com o botão direito do mouse em Solução> Adicionar> Projeto Existente ...
  6. Procure e selecione o arquivo do projeto (arquivo .csproj) agora no local em que o colocou e selecione ' abrir '
  7. Este arquivo agora aparece no gerenciador de soluções para você trabalhar.

Agora você pode ter que resolver alguns erros de compilação, provavelmente com referências duplicadas / ausentes, etc.

Vikram K
fonte
2
Atualização: a melhor resposta a partir de 2019 é a abaixo, por @Shane. Criar modelos do VS é a maneira perfeita de clonar projetos sem problemas de referências.
Vikram K
3

Sigo essas etapas e uso a ferramenta de desenvolvimento chamada Resharper , que é incrível por sinal:

Assim,

  1. Copie a pasta do projeto existente para o destino desejado
  2. Vá para o controle de origem e clique com o botão direito do mouse na pasta raiz desejada e escolha "Adicionar itens à pasta ...". Em seguida, um assistente aparecerá para escolher os arquivos a serem copiados (não há necessidade de alguns arquivos e assistente o guia por esse motivo, por padrão).
  3. Alterar o nome do arquivo de solução (* .sln)
  4. Mude os nomes dos subprojetos, se existirem.
  5. Use o Resharper para alterar o nome dos espaços para nome de ligação (executarei automaticamente o trabalho sujo com segurança). A maneira alternativa é alterar manualmente todos os espaços para nome com o novo nome.
  6. A mesma ação com nomes de métodos.
  7. Verifique as propriedades da solução se desejar alterar.

É isso aí. Você está pronto!!!

Giannis Grivas
fonte
1

A melhor maneira é criar um novo projeto do zero e ir para a pasta com os arquivos do projeto que você deseja copiar (projeto, formulário1, tudo, exceto pastas). Renomeie os arquivos (exceto os arquivos form1), por exemplo: copiei arquivos Ch4Ex1 no meu projeto Ch4Ex2, mas primeiro renomeei os arquivos para Ch4Ex2. Copie e cole esses arquivos no Solution Explorer para o novo projeto no Visual Studio. Em seguida, basta substituir os arquivos e você deve estar pronto!

Tópico antigo, mas espero que ajude quem procura esta resposta!

Alperon
fonte
0

Eu tenho um projeto em que os arquivos de origem estão em uma pasta abaixo da pasta do projeto. Quando copiei a pasta do projeto sem a pasta de origem e abri o projeto copiado, os arquivos de origem não estão ausentes, mas foram encontrados no local antigo. Fechei o projeto, copiei também a pasta de origem e reabri o projeto. Agora, o projeto faz referência mágica aos arquivos de origem copiados (o novo caminho apareceu em "salvar como" e uma alteração em um arquivo foi salva na versão copiada).

Há uma ressalva: se as pastas de projeto antigas e novas não estiverem abaixo de uma pasta de biblioteca usada, a mágica mencionada acima descarta também a referência absoluta à biblioteca e a espera no mesmo caminho relativo.

Eu tentei isso com o VS Express 2012.

Rainald62
fonte
0

Minha solução é um pouco diferente - o computador em que o pacote residia morreu e, portanto, fui forçado a recriá-lo em outro computador.

O que eu fiz (no VS 2008) foi abrir os seguintes arquivos no meu diretório:

                  - <package name>.djproj
                  - <package name>.dtproj.user
                  - <package name>.dtxs
                  - <package name>.sln
                  - Package.dtsx

Quando eu fiz isso, uma janela pop-up perguntou se o arquivo sln seria uma nova solução e quando eu cliquei em 'sim' tudo funcionou perfeitamente.

Brian
fonte
0

Depois de tentar as soluções acima e criar cópia para projetos MVC

Para projetos MVC, atualize os números das portas no arquivo .csproj, você pode obter ajuda do iis applicationhost.config para verificar os números das portas. Os mesmos números de porta causarão um problema no carregamento do assembly no IIS.

Ganesh Vellanki
fonte
0

Seguindo a resposta de Shane acima (que funciona muito bem)…

Você pode encontrar vários triângulos amarelos na lista de referências. A maioria destes pode ser eliminada por um Build->Clean Solutione Build->Rebuild Solution.

Por acaso, eu tinha algumas referências à API do Google que eram um pouco mais teimosas.

Tentar reinstalar o pacote NuGet da mesma versão não funcionou.
O Visual Studio acha que você já o tem instalado.

Para contornar isso:
1: Anote a versão original.
2: Instale a próxima versão superior ... depois desinstale-a.
3: Instale a versão original da etapa 1.

Chris Catignani
fonte
0

Eu uso o Visual Studio 2013, em que Projeto> Exportar modelo não é uma opção. Aqui está o que eu uso para clonar um projeto.

Na sua solução: Arquivo> Exportar modelo> selecione o projeto para o qual criar o modelo, observe salvar caminho

Baixe e instale o VS 2013 SDK aqui

Crie um novo projeto VSIX em Extensibilidade

Na caixa de diálogo VSIXManifest, selecione a guia Assets

Preencha a caixa de texto Autor

Escolha "Modelo de projeto" para Digitar e procurar para adicionar o modelo exportado (salvo no caminho que você anotou na etapa 1)

Salve e construa o projeto VSIX. Vá para a pasta ... / bin / Debug do projeto VSIX e clique duas vezes para executar o arquivo .vsix

Inicie uma nova instância do Visual Studio e você deverá ver seu modelo em qualquer tipo de projeto. Crie um novo projeto a partir do seu modelo

Você precisará adicionar novamente as referências da dll

Smitty-Werben-Jager-Manjenson
fonte
0

A maneira mais fácil de fazer isso seria exportar o projeto como um modelo e salvá-lo no local padrão do modelo. Em seguida, copie o modelo no mesmo diretório exatamente no local para o qual você deseja movê-lo. Depois disso, abra o visual studio no novo local, crie um novo projeto e você será solicitado a procurar um modelo. Procure o nome que você deu ao modelo, selecione-o e pronto!

The Nyla Lauren Company
fonte