Compare dois arquivos no Visual Studio

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

Você pode invocar devenv.exe /diff list1.txt list2.txt no prompt de comando ou, se uma instância do Visual Studio já estiver em execução, você pode digitar Tools.DiffFiles na janela de comando, com um preenchimento de nome de arquivo acessível:

Usando o Tools.DiffFiles da janela de comando do Visual Studio

Você pode tentar extensão VSCommands do Visual Studio Gallery . A versão mais recente permite selecionar dois arquivos e compará-los:

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Inspirado pela resposta aceita acima, eu encontrei uma maneira muito confortável como você pode instantaneamente comparar dois arquivos com o Visual Studio usando arrastar e soltar ou através do menu de contexto “Enviar para” . Ele requer apenas uma pequena preparação que você precisa fazer uma vez e, em seguida, é útil como um canivete suíço.

Arquivo comparar usando arrastar e soltar

Preparação:

1. Crie um novo arquivo de lote usando o 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 notar que inverti os parâmetros %1 e %2 no lote. Isso porque notei que o explorador de arquivos passa o 2º arquivo como primeiro parâmetro, depois o 1º arquivo como segundo parâmetro.

  1. Salve este código como VS_FileCompare.cmd para usá-lo, modifique vspath se necessário para coincidir com a localização do devenv.exe (dependendo da versão do Visual Studio que você está usando atualmente).

  2. Crie um atalho chamado “File Compare” para VS_FileCompare.cmd e coloque-o na área de trabalho (como usado na animação abaixo), para que ele esteja sempre disponível para arrastar e soltar arquivos ou coloque diretamente o arquivo de lote na área de trabalho. Isso é tudo!

Uso:

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

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

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


Forma alternativa: menu de contexto SendTo

Aqui está uma alternativa como você pode usar o arquivo em lotes. Ele permite usar a pasta Enviar para do menu de contexto para comparar os arquivos.

Preparação:

  1. Coloque o atalho na pasta SendTo . Abra o explorador do Windows via Win + E
  2. Abra a pasta SendTo digitando shell:sendto na barra de endereço do explorador de arquivos (conforme descrito aqui ). Em seguida, coloque o atalho preparado nessa pasta.

Uso:

  1. Abra o explorador do Windows via Win + E
  2. Selecione dois arquivos para comparar no explorador
  3. Supondo que o atalho é chamado “Compare2Files VS”, você pode selecionar os dois arquivos, clique com o botão direito e selecione Enviar para -> Compare2Files VS para invocar a comparação, conforme mostrado abaixo: Enviar para

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


Referências do MSDN:
– Uso da janela do diff
– Parâmetro Diff do Visual Studio

Eu sempre fui um fã do WinMerge, que é um projeto de código aberto. Você pode conectá-lo ao Visual Studio com bastante facilidade.

http://blog.paulbouwer.com/2010/01/31/replace-diffmerge-tool-in-visual-studio-team-system-with-winmerge/

irá mostrar-lhe como fazer isso

Há também uma extensão do Visual Studio chamada CompareFiles , que não faz nada além de adicionar a input “Comparar arquivos” ao menu de contexto do explorador de soluções. Ele invoca a ferramenta interna de comparação do Visual Studio.

Apenas no caso de alguém (como eu) não querer instalar uma extensão all-in-one como o VSCommands …

No Visual Studio 2012, 2013, 2015, você também pode fazer isso com o Web Essentials , basta clicar com o botão direito nos arquivos e no menu de contexto> Web Essential >> Diff selected files:

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

insira a descrição da imagem aqui

Se você tiver o VS instalado, você também pode ligar

 "%VS110COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2" 

ou para o VS 2013

 "%VS120COMNTOOLS%..\IDE\vsdiffmerge.exe" "File1" "File2" 

Fonte: http://roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/

Este é o método sem instalação, extensão ou TFS para VS2017

Abra a janela de comando ( Ctrl+Alt+A ) ou ( Ver-> Outras Janelas-> Janela de Comando )

 Tools.DiffFiles File1 File2 

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

Especificamente, passo 1b.

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

 tf diff /configure 

File Comparer VS Extension por Akhil Mittal. Excelente ferramenta leve que faz o trabalho.

No Visual Studio Code você pode:

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

Para comparar quaisquer dois arquivos e mesclá-lo com um arquivo Aqui estão os seguintes passos 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 precisar apenas de comparação.

Sintaxe 1:
vsdiffmerge / t / m

Sintaxe 2:
vsdiffmerge / t / m

Exemplo 1:
vsdiffmerge test1.js test2.js teste1.js output.js / t / m
Exemplo 2:
vsdiffmerge.exe “C: \ Usuários \ livingston \ Downloads \ wa \ wa \ Arquivos \ pre \ Test.js” “C: \ Usuários \ livingston \ Downloads \ wa \ wa \ Arquivos \ Prod \ Test.js” “C: \ \ Users \ livingston \ Downloads \ wa \ wa \ Arquivos \ pre \ 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 visual studio Ctrl + K + D.

Há muitos sites de embelezamento disponíveis on-line.

O código do Visual Studio é ótimo para isso – abra uma pasta, clique com o botão direito em ambos os arquivos e compare.

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 você pode copiar os arquivos no mesmo projeto para comparar …

Menu contextual

Diferença de Arquivo

Acredito que esta seja uma das melhores extensões para o Visual Studio 2012, é chamada de Code Compare e pode ser encontrada aqui.

Se você está trabalhando com o TFS conectado, clique com o botão direito no arquivo que você precisa comparar (através do explorador de controle de código-fonte) e ele apresenta uma janela como essa – insira a descrição da imagem aqui

Agora mude o caminho do arquivo fonte em ‘Souce Path:’ e você terá uma comparação através da ferramenta VS comparision.

Da mesma forma você pode comparar a pasta também, que compara todos os arquivos de uma pasta de uma só vez.