Devo adicionar os arquivos .suo e .user do Visual Studio ao controle de origem?

As soluções do Visual Studio contêm dois tipos de arquivos ocultos do usuário. Um é o arquivo .suo da solução, que é um arquivo binário. O outro é o arquivo .user do projeto, que é um arquivo de texto. Exatamente quais dados esses arquivos contêm?

Eu também tenho me perguntado se devo adicionar esses arquivos ao controle de origem (Subversion no meu caso). Se eu não adicionar esses arquivos e outro desenvolvedor fizer check-out da solução, o Visual Studio criará automaticamente novos arquivos de usuário?

Esses arquivos contêm configurações de preferências do usuário que são geralmente específicas para sua máquina, portanto, é melhor não colocá-las no SCM. Além disso, o VS irá alterá-lo quase toda vez que você executá-lo, então ele será sempre marcado pelo SCM como ‘alterado’. Eu não incluo também, estou em um projeto usando VS por 2 anos e não tive problemas em fazer isso. O único aborrecimento menor é que os parâmetros de debugging (caminho de execução, destino de implementação, etc.) são armazenados em um desses arquivos (não sei qual), portanto, se você tiver um padrão para eles, não conseguirá ‘ publicá-lo via SCM para outros desenvolvedores para ter todo o ambiente de desenvolvimento “pronto para uso”.

Você não precisa adicioná-los – eles contêm configurações por usuário e outros desenvolvedores não querem sua cópia.

Outros explicaram por que ter os *.suo e *.user sob controle de origem não é uma boa idéia.

Eu gostaria de sugerir que você adicione estes padrões à propriedade svn:ignore por 2 razões:

  1. Então, outros desenvolvedores não vão acabar com as configurações de um desenvolvedor.
  2. Portanto, quando você visualiza status ou confirma arquivos, esses arquivos não sobrecarregam a base de código e ocultam novos arquivos que você precisa adicionar.

Nós não cometemos o arquivo binário (* .suo), mas cometemos o arquivo .user. O arquivo .user contém, por exemplo, as opções de início para depurar o projeto. Você pode encontrar as opções de início nas propriedades do projeto na aba “Debug”. Usamos o NUnit em alguns projetos e configuramos o nunit-gui.exe como a opção inicial para o projeto. Sem o arquivo .user, cada membro da equipe teria que configurá-lo separadamente.

Espero que isto ajude.

Desde que encontrei esta pergunta / resposta através do Google em 2011, pensei em tirar um segundo e adicionar o link para os arquivos * .SDF criados pelo Visual Studio 2010 à lista de arquivos que provavelmente não deveriam ser adicionados ao version control ( o IDE irá recriá-los). Como eu não tinha certeza se um arquivo * .sdf poderia ter um uso legítimo em outro lugar, ignorei apenas o arquivo específico [projectname] .sdf do SVN.

Por que o assistente de conversão do Visual Studio 2010 cria um arquivo de database SDF massivo?

Não, você não deve adicioná-los ao controle de origem, pois – como você disse – eles são específicos do usuário.

SUO (Opções do usuário da solução): registra todas as opções que você pode associar à sua solução para que, sempre que abri-la, inclua personalizações feitas por você.

O arquivo .user contém as opções do usuário para o projeto (enquanto o SUO é para a solução) e estende o nome do arquivo do projeto (por exemplo, anything.csproj.user contém configurações do usuário para o projeto anything.csproj).

Por padrão, o Visual SourceSafe da Microsoft não inclui esses arquivos no controle de origem porque eles são arquivos de configurações específicos do usuário. Eu seguiria esse modelo se você estiver usando o SVN como controle de origem.

Esta parece ser a opinião da Microsoft sobre o assunto: http://social.msdn.microsoft.com/forums/en-US/vssourcecontrol/thread/dee90d75-d825-4c76-a30f-016eab15ef7f

Eu não sei porque seu projeto armazena o DebuggingWorkingDirectory no arquivo suo. Se essa for uma configuração específica do usuário, considere armazenar isso no nome do arquivo * .proj.user. Se essa configuração for compartilhável entre todos os usuários que trabalham no projeto, considere armazená-la no próprio arquivo de projeto.

Nem pense em adicionar o arquivo suo ao controle de origem! O arquivo SUO (opções do usuário da solução) deve conter configurações específicas do usuário e não deve ser compartilhado entre usuários que trabalham na mesma solução. Se você fosse adicionar o arquivo suo no database scc eu não sei o que outras coisas no IDE você quebraria, mas do ponto de vista de controle de origem você vai quebrar a integração scc projetos web, o Lan vs Internet plugin usado por usuários diferentes para access ao VSS, e você pode até mesmo fazer o scc quebrar completamente (o caminho do database do VSS armazenado no arquivo suo que pode ser válido para você pode não ser válido para outro usuário).

Alin Constantin (MSFT)

O Visual Studio irá criá-los automaticamente. Eu não recomendo colocá-los no controle de origem. Houve inúmeras vezes em que o arquivo SOU de um desenvolvedor local estava fazendo com que o VS se comportasse de maneira irregular na checkbox do desenvolvedor. Excluir o arquivo e depois permitir que o VS o recriesse sempre corrigiu os problemas.

No site da MSDN , ele afirma claramente que

O arquivo de opções do usuário da solução (.suo) contém opções de solução por usuário. Este arquivo não deve ser registrado no controle do código-fonte .

Então, eu diria que é bastante seguro ignorar esses arquivos enquanto checamos o seu controle de origem.

Eu não faria. Qualquer coisa que possa mudar por “usuário” geralmente não é boa no controle de origem. Diretórios .suo, .user, obj / bin

Esses arquivos são opções específicas do usuário, que devem ser independentes da própria solução. O Visual Studio criará novos, conforme necessário, para que eles não precisem ser verificados no controle de origem. Na verdade, provavelmente seria melhor não, pois isso permite que desenvolvedores individuais personalizem seu ambiente da maneira que preferirem.

Você não pode controlar por fonte os arquivos .user, porque isso é específico do usuário. Ele contém o nome da máquina remota e outras coisas dependentes do usuário. É um arquivo relacionado ao vcproj.

O arquivo .suo é um arquivo relacionado ao sln e contém as “opções do usuário da solução” (projeto (s) de boot, posição do Windows (o que está encheckboxdo e onde, o que está flutuando), etc.)

É um arquivo binário e não sei se contém algo “relacionado ao usuário”.

Em nossa empresa, não os pegamos sob controle de origem.

Eles contêm as configurações específicas sobre o projeto que normalmente são atribuídas a um único desenvolvedor (como, por exemplo, o projeto inicial e a página inicial para iniciar quando você depurar seu aplicativo).

Portanto, é melhor não adicioná-los ao version control, deixando o VS recriá-los para que cada desenvolvedor possa ter as configurações específicas desejadas.

.user é a configuração do usuário, e eu acho que o .suo é a opção do usuário da solução. Você não quer esses arquivos sob controle de origem; eles serão recriados para cada usuário.

Usando o Rational ClearCase, a resposta é não, somente o .sln &. * Proj deve ser registrado no controle do código-fonte, não posso responder por outros fornecedores. Se bem me lembro, esses arquivos são opções específicas do “usuário”, seu ambiente.

Se você definir suas dependencies de dir executáveis ​​em Propriedades do projeto> Depuração> Ambiente , os caminhos serão armazenados em arquivos ‘.user’.

Suponha que eu configure essa string no campo acima mencionado: “PATH = C: \ xyz \ bin” É assim que ela será armazenada no arquivo ‘.user’:

PATH=C:\xyz\bin$(LocalDebuggerEnvironment)

Isso nos ajudou muito enquanto trabalhava no OpenCV. Poderíamos usar diferentes versões do OpenCV para diferentes projetos. Outra vantagem é que foi muito fácil configurar nossos projetos em uma nova máquina. Acabamos de copiar os diretórios de dependência correspondentes. Então, para alguns projetos, prefiro adicionar o ‘.user’ ao controle de origem.

Mesmo assim, é totalmente dependente de projetos. Você pode atender uma chamada com base nas suas necessidades.