Compare dois arquivos no Visual Studio


430

Eu vi uma nova ferramenta de comparação no VS 2012 para comparar dois arquivos ou duas versões de arquivo. Eu gosto disso. Mas quando tentei encontrá-lo, não posso porque não uso o TFS. Existe uma maneira de comparar apenas dois arquivos com o recurso incorporado no VS, mas sem o TFS?


1
Assim como recado para uso posterior: Se você estiver trabalhando com vs2015, use este link: visualstudio.com/en-us/docs/tfvc/compare-files
Elnaz

Observe que isso ainda é aplicável ao VS 2017. Portanto, forneci uma resposta sobre como lidar com esse problema confortavelmente.
Matt

2
Nenhuma das respostas pode comparar dois arquivos abertos no Visual Studio.
User3454439


No VS2017 e no VS2019, até a barra de ferramentas de comparação de arquivos está aberta, não sei como usá-lo ... Agora, usando o VSCode, basta abrir os dois arquivos e selecionar os dois e o menu de contexto-> comparar selecionado.
jw_ 15/01

Respostas:


809

Você pode chamar a devenv.exe /diff list1.txt list2.txtpartir do prompt de comando ou, se uma instância do Visual Studio já estiver em execução, você pode digitar Tools.DiffFilesna janela Comando, com um prático preenchimento de nome de arquivo:

Usando Tools.DiffFiles na janela de comando do Visual Studio


15
Esta ferramenta diff fornece algum recurso útil como copiar para a esquerda, copiar para a direita, etc? Quando difiro a cópia de trabalho com a versão do servidor, às vezes desejo desfazer algumas das alterações e preciso colar a cópia manual.
Samuel

118
Por que esse recurso está oculto na interface do usuário do VS? Esta é a maneira mais fácil e eficaz de comparar dois arquivos ...
eka808:

76
Para aqueles de vocês que são novos para Visual Studio janela de comando pode ser aberto, indo para: View> Other Windows> Janela de Comando (VS Pro 2013) ou com CTRL + ALT + A
Cleanshooter

35
que vergonha O VS não possui um item de menu para essa funcionalidade muito básica. muitos IDE / editores fazem.
dewd

15
Nota: No Visual Studio 2015, você pode encontrá-lo aqui: Exibir -> Barras de ferramentas -> Comparar arquivos . Basta digitar "compare" na janela de início rápido e você será adicionado.
Matt

84

Inspirado na resposta aceita acima, achei uma maneira muito confortável de comparar instantaneamente dois arquivos com o Visual Studio usando arrastar e soltar ou através do menu de contexto "Enviar para" . Requer apenas um pouco de preparação que você precisa fazer uma vez e depois é útil como um canivete suíço.

O Visual Studio já tem tudo o que você precisa, existem apenas algumas etapas de configuração necessárias para fazer isso funcionar:

Comparação de arquivos usando arrastar e soltar

Preparação:

1. Crie um novo arquivo em lote usando seu editor de texto favorito. Digite o seguinte:

@echo off
setlocal
set vspath=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE
start "Compare files" /B /MIN "%vspath%\devenv.exe" /diff %2 %1 First:'%2' Second:'%1'

Você pode perceber que eu invertei os parâmetros %1e %2no lote. Isso ocorre porque eu notei que o gerenciador de arquivos passa o segundo arquivo como primeiro parâmetro e o primeiro arquivo como segundo parâmetro.

2. Salve esse código como VS_FileCompare.cmdusá-lo, modificar vspath, se necessário para coincidir com a localização do devenv.exe(dependendo da versão Visual Studio você está usando atualmente, ver nota *) )

3. Ou criar um atalho chamado "File Compare" para VS_FileCompare.cmde lugar na área de trabalho(conforme usado na animação abaixo), para que esteja sempre disponível para arrastar e soltar arquivos nele ou colocar diretamente o arquivo em lotes na área de trabalho. Isso é tudo!

Uso:

  1. Abra o Windows Explorer via Win+E
  2. Selecione dois arquivos para comparar no explorer
  3. Arraste e solte-os como mostrado na animação abaixo: DragDropDemo

  4. Após alguns segundos (dependendo do tempo de inicialização do Visual Studio), os resultados serão mostrados no Visual Studio: Visualização do Visual Studio

Nota: Não faz mal se o Visual Studio já estiver aberto. Nesse caso, ele abrirá apenas uma nova janela na instância em execução do Visual Studio. Assim, você pode comparar vários pares de arquivos, mas verifique se selecionou apenas 2 arquivos por vez.


Maneira alternativa: menu de contexto SendTo

Aqui está uma alternativa de como você pode usar o arquivo VS_FileCompare.cmdem lotes mencionado na seção acima. Permite usar a pasta Enviar para do menu de contexto para comparar os arquivos.

Preparação:

  1. Crie um atalho "Compare2Files VS" para o arquivo em lotes VS_FileCompare.cmde copie-o para a pasta SendTo . Abra o Windows Explorer via Win+E
  2. Abra a pasta SendTo , inserindo shell:sendtoa barra de endereços do gerenciador de arquivos (conforme descrito aqui ). Em seguida, coloque o atalho preparado nesta pasta.

Uso:

  1. Abra o Windows Explorer via Win+E
  2. Selecione dois arquivos para comparar no explorer
  3. Supondo que o atalho para o arquivo em lotes VS_FileCompare.cmdseja denominado "Compare2Files VS" , você pode selecionar os dois arquivos, clicar com o botão direito do mouse e selecionar Enviar para -> Compare2Files VS para chamar a comparação, como mostrado abaixo: Enviar para

  4. Após alguns segundos (dependendo do tempo de inicialização do Visual Studio), os resultados serão mostrados no Visual Studio: Visualização do Visual Studio


Referências do MSDN:
- Uso da janela de diferenças
- Parâmetro Diff do Visual Studio


*)  Nota de rodapé: como vsPath(o caminho para DEVENV.exe) difere dependendo da sua versão do Visual Studio, estou descrevendo como você pode descobrir (Windows 10):

  1. No menu Iniciar do WindowsÍcone do Windows Pequeno , localize o ícone do Visual Studio Ícone do Visual Studio Small
  2. Clique com o botão direito do mouse para abrir o menu de contexto. Selecione Mais> Abrir local do arquivo .
    O Windows Explorer é aberto com o atalho do Visual Studio realçado.
  3. Clique com o botão direito do mouse no Visual Studio e selecione Propriedades
  4. Na caixa de diálogo de propriedades, você pode encontrar o caminho em "Destino:" VSProperties

5
Esta é realmente uma resposta muito boa e elaborada, que definitivamente deve ser votada. Eu sou do grupo que continua procurando respostas prontas para uso, mesmo que a resposta esteja marcada em um tópico, por isso estou absolutamente dando o aviso.
Div Tiwari

1
@DivTiwari - Obrigado, prazer em ouvir isso!
19418 Matt

Edit: Este é o script para o VS 2013, obrigado novamente. @echo off setlocal set vspath = C: \ Arquivos de Programas (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE start "Compare files" / B / MIN "% vspath% \ devenv.exe" / diff% 2% 1 Primeiro: '% 2' Segundo: '% 1'
Fernando Aguilar

1
Isso foi excelente e funcionou como um encanto. Graças um companheiro muito
Sabbir Hassan

1
Agradável! up-vote this..just amor a natureza 'hackish' desta solução. Obrigado por compartilhar.
Leo Gurdian 15/05/19



24

Há também uma extensão do Visual Studio chamada CompareFiles , que nada mais faz além de adicionar a entrada "Comparar arquivos" ao menu de contexto do Solution Explorer. Invoca a ferramenta de diferenças interna do Visual Studio.

Apenas no caso de alguém (como eu) não querer instalar uma extensão multifuncional como o VSCommands ...


1
NB - esta extensão é apenas para o VS2012, mas você pode editar o arquivo de manifesto para oferecer suporte ao VS2013 com bastante facilidade - veja meu comentário na guia Perguntas e Respostas da extensão para obter detalhes. (Eu queria esse recurso, mas não pode usar a versão gratuita do VSCommands no trabalho devido à sua licença)
James S

As Ferramentas de Comparação do Visual Studio estão disponíveis para 2013, visualstudiogallery.msdn.microsoft.com/…
Alinhado em

23

VS2019->View->Other Windows->Command Window (Ctrl + Alt + A)

Tools.DiffFiles File1 File2

É o mesmo que outra resposta
niico 06/06

5
Talvez - embora pessoalmente eu prefiro usar uma GUI para selecionar os arquivos que o tipo tem que construir dois caminhos em qualquer caso - Quero dizer que não é 1984.
niico

18

No Visual Studio 2012, 2013, 2015, você também pode fazer isso com o Web Essentials , basta clicar com o botão direito do mouse nos arquivos e, no menu de contexto> Web Essential >> Dif. Arquivos selecionados:

Editar: agora está disponível como uma extensão separada

insira a descrição da imagem aqui


Não vejo Diff arquivos selecionados ou compilar Markdown para HTML em Essential Web - VS 2015
usefulBee

Eu instalei a nova versão, VS 2015mas não consigo ver a Diff selected filesopção por que?
shaijut

@stom instale a extensão que eu mencionei.
Hamid Mosalla 01/10/19


8

No Código do Visual Studio, você pode:

  • Vou ao Explorer
  • Clique com o botão direito do mouse no primeiro arquivo que você deseja comparar
  • Selecione Select for compare
  • Clique com o botão direito do mouse no segundo arquivo que você deseja comparar
  • Selecione Compare with '[NAME OF THE PREVIOUSLY SELECTED FILE]'

Isso funciona maravilhosamente no código do Visual Studio, como você mencionou, mas infelizmente não no Visual Studio Enterprise (nem no Professional).
Eptin 15/04


4

ATUALIZADO: Para o VS 2019 File Differ Plugin Permite comparar arquivos em projetos distintos insira a descrição da imagem aqui

insira a descrição da imagem aqui

Você pode instalá-lo aqui:

insira a descrição da imagem aqui

OLD: para o VS 2017 Instale https://marketplace.visualstudio.com/items?itemName=vs-publisher-457497.FileComparer2017

O problema é que você não pode comparar arquivos em diferentes projetos, mas pode copiar os arquivos no mesmo projeto para comparar ...

Diferença de arquivo


1
Infelizmente, isso não funciona quando se tenta comparar dois arquivos sem solução (por exemplo, quando você VS2017 aberto no modo pasta: Open - Pasta)
Yury Kozlov

2

Eu tive esse problema também. Sem TFS, mas achei este artigo útil .

Especificamente, etapa 1b.

Abra um prompt de comando do Visual Studio e navegue até a pasta Common7 / IDE e digite

tf diff /configure

0

Comparador de arquivos VS Extension de Akhil Mittal. Excelente ferramenta leve que faz o trabalho.


0

Para comparar dois arquivos e mesclá-lo em um arquivo Aqui estão as etapas a seguir que você pode seguir se tiver o visual studio (qualquer versão) instalado.

Etapa 1: Abra o prompt de comando do Visual studio. Se você não encontrar o prompt de comando do visual studio, escolha as ferramentas do visual studio

Iniciar -> prompt de comando do Visual Studio

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Etapa 2: Digite o comando vsdiffmerge.exe

Ignore o switch / m se você precisar apenas de comparação.

Sintaxe 1:
vsdiffmerge <arquivo1> <arquivo2> <arquivo1> <arquivo de saída> / t / m

Sintaxe 2:
vsdiffmerge <basefilename> <CompareFilename> <basefilename> <OutputFilename> / t / m

Exemplo 1:
vsdiffmerge test1.js test2.js test1.js output.js / t / m
Exemplo 2:
vsdiffmerge.exe "C: \ Usuários \ livingston \ Downloads \ wa \ wa \ Arquivos \ pré \ Test.js" "C : \ Users \ livingston \ Downloads \ wa \ wa \ Arquivos \ Prod \ Test.js "" C: \ Usuários \ livingston \ Downloads \ wa \ wa \ Arquivos \ pré \ Test.js "" C: \ Usuários \ livingston \ Downloads \ wa \ wa \ Arquivos \ output \ samp.js "/ t / m

insira a descrição da imagem aqui


Etapa 3: mesclar os arquivos

insira a descrição da imagem aqui Observe que, se o nome do arquivo não existir no local, ele não abrirá o comparador.

Além disso, você pode embelezar o arquivo antes de fazer a comparação. No estúdio visual Ctrl + K + D.

Existem muitos sites de embelezamento disponíveis online.


0

O código do Visual Studio é ótimo para isso - abra uma pasta, clique com o botão direito do mouse nos dois arquivos e compare.


0

No Visual Studio, o Diff pode ser chamado usando Command Windowe, em seguida, Tools.DiffFilescomando

  1. Abrir Command Windowpor teclas de atalho Ctrl + W, Aou por menuView -> Other Windows -> Command Window
  2. Comando Enter Tools.DiffFiles "FirstFile.cs" "SecondFile.cs"


-4

Se você estiver trabalhando com o TFS conectado, clique com o botão direito do mouse no arquivo que você precisa comparar (através do explorador de controle de origem) e ele apresentará uma janela como esta - insira a descrição da imagem aqui

Agora mude o caminho do arquivo de origem em 'Souce Path:' e você obterá uma comparação através da ferramenta de comparação VS.

Da mesma forma, você também pode comparar a pasta, que compara todos os arquivos de uma pasta ao mesmo tempo.


2
Se você leu a postagem original, ele diz especificamente: "Existe uma maneira de comparar dois arquivos com o recurso incorporado no VS, mas sem o TFS?" Sua resposta exige que ele tenha TFS.
CigarDoug 9/09/15

embora ele tenha tentado responder .. embora, sua tentativa
esteja
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.