Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Visual Studio 2019 - Arquivos a mais na pasta bin

Estou usando o Visual Studio 2019 e caso eu crie os projetos a partir do visual studio e debugar o projeto ele gera alguns arquivos a mais do que o mostrado na aula. Os arquivos ficam dentro de uma subpasta: "ByteBank\ByteBank.SistemaAgencia\bin\Debug\netcoreapp3.1" Lista dos arquivos gerados

  • ByteBank.Modelos.dll
  • ByteBank.Modelos.pdb
  • ByteBank.SistemaAgencia.deps.json
  • ByteBank.SistemaAgencia.dll
  • ByteBank.SistemaAgencia.exe
  • ByteBank.SistemaAgencia.pdb
  • ByteBank.SistemaAgencia.runtimeconfig.dev.json
  • ByteBank.SistemaAgencia.runtimeconfig.json

Fazendo o download do projeto disponibilizado e compilando, aparecem apenas os arquivos conforme mostrado no vídeo, mas gostaria de entender o pq de aparecerem esses arquivos a mais qnd faço o processo pelo VS2019. Alguém sabe me explicar?

3 respostas

Olá Kelleni,

Estes arquivos são gerados quando você compila seu projeto, e não são enviados junto ao código-fonte de um projeto, justamente por não fazer parte do mesmo, e sim gerados na compilação.

Os arquivos ".dll" são gerados por cada projeto que você tem na sua solução, nota-se que o nome destes arquivos gerados são os mesmo que está na propriedade de cada projeto, ou caso você não tenha alterado, o próprio nome do namespace.

Os arquivos ".pdb", acrônimo para Program DataBase, são arquivos auxiliares criados para debugar seu código, observa-se que estes arquivos somente devem ser gerados no modo Debug do compilador.

Os arquivos ".exe" é o executável da sua aplicação, você pode executa-lo assim que realizar uma compilação e verá que tudo o que foi programado, será feito quando você executar este ".exe".

Os arquivos ".json" são arquivos de configuração de alguns parâmetros para executar a sua aplicação, alguns parâmetros caso não seja definido no projeto, são assumidos valores padrões. Caso queira saber mais sobre cada parâmetro dentro deste ".json", sugiro que abra este arquivo com um edito de texto qualquer (pode ser o bloco de notas), e verá que terá lá algumas informações sobre seu projeto.

E complementando, por padrão o .Net gera os arquivos após a compilação nas pastas "bin" e "obj" de cada projeto.

No seu caso ByteBank\ByteBank.SistemaAgencia\bin\Debug\netcoreapp3.1

ByteBank.SistemaAgencia: Nome do seu projeto;

bin: Pasta padrão para arquivos da compilação;

Debug: Modo da compilação (Release ou Debug);

netcoreapp3.1: Versão do .Net utilizada

Isso tem a ver com a versão do .Net no caso? Pq o projeto de exemplo da aula usa o .NET 4.6.1, e apenas salva as dlls do projeto classifcado como "ClassLibrary" no meu caso seria o ByteBank.Modelos.dll, já no projeto criado no visual Studio mais novo, onde eu não selecionei a versão do .NET, e acabou ficando ".NET Core 3.1", e ele salva esses arquivos a mais

Pra ficar mais claro o que quero dizer:

-> Conteúdo da pasta Debug da pasta do projeto baixado de exemplo da aula (.NET 4.6.1):

  • ByteBank.Modelos.dll
  • ByteBank.Modelos.pdb
  • ByteBank.SistemaAgencia.exe
  • ByteBank.SistemaAgencia.exe.config
  • ByteBank.SistemaAgencia.pdb

-> Conteúdo da pasta Debug/netcoreapp3.1 do projeto criado pelo VS2019:

  • ByteBank.Modelos.dll
  • ByteBank.Modelos.pdb
  • ByteBank.SistemaAgencia.deps.json
  • ByteBank.SistemaAgencia.dll
  • ByteBank.SistemaAgencia.exe
  • ByteBank.SistemaAgencia.pdb
  • ByteBank.SistemaAgencia.runtimeconfig.dev.json
  • ByteBank.SistemaAgencia.runtimeconfig.json

Esses arquivos: "ByteBank.SistemaAgencia.deps.json", "ByteBank.SistemaAgencia.runtimeconfig.dev.json", "ByteBank.SistemaAgencia.runtimeconfig.json" seriam uma substituição do arquivo "ByteBank.SistemaAgencia.exe.config"?

E o arquivo ByteBank.SistemaAgencia.dll? Pq ele é criado se o projeto foi criado como Console Application e não como Class Library?

solução!

Olá Kellani, seguinte, entendi a sua dúvida e de forma resumida sem entrar em detalhes especificos (ate msm pq nao sei de todos kkkk).

O .NET Framework só funciona no Windows, o que faz o .NET Core ser multiplataforma é ao inves de gerar uma compilação agrupada gerando um "exe" no final, ele usa as dlls e os arquivos de suporte (dev.json, runtimeconfig.json,etc..) para fazer tipo uma compilaçao desacoplada para funcionar em qualquer SO, por isso vc ve as dll's adicionais, no linux por exemplo, um arquivo "exe" nao seria executado e sim através das dll's geradas.