46

Recently I've noticed a .config directory being created by Visual Studio with a dotnet-tools.json file in. Should this be .gitignored or checked into source control?

Jez
  • 27,951
  • 32
  • 136
  • 233
  • 1
    I'm not sure what is this specific config file but your answer is simple. first check the config, if it contains some global configurations that can help other users using your project you should add it to your repo but if it contains any personal information (related to you or your system) you should ignore it. – AliReza Sabouri Feb 11 '20 at 17:20
  • for example, I'm using vs-code. I added tasks.json to my repo but ignored settings.json from .vscode folder in my project directory. – AliReza Sabouri Feb 11 '20 at 17:26
  • We always ignore the .vscode folder, it mostly contains user specific configuration – Fabian Claasen Feb 17 '20 at 12:40

2 Answers2

60

.config directory with dotnet-tools.json file is created when you install a tool for your project with dotnet tool install command. This file dotnet-tools.json contains details like version, installation command etc. about all the tools installed for your project. It is more of a local configuration related to setup on local machine. If you want your colleague to install the same tools on her/his machine then you should check-in this file and your colleague is required to clone and run command to restore the same tool on her/his machine. This is very much similar to NuGet packages.

You can safely add this to .gitignore. In this case, your collegue will still be able to perform a fresh install of the same tool using dotnet tool install with same or different version.

Here is a good article on this topic

as-if-i-code
  • 2,103
  • 1
  • 10
  • 19
14

Sometimes Visual Studio creates this file when you simply open the "publish" dialog without even touching any settings. Visual Studio tries to detect EF-migrations/DB-context/etc. in your project by running dotnet ef -blahblah; and for that it installs the ef tool; and because of that the install generates this file.

If you're not using Entity Framework not only you're safe to .gitignore this file, but you're safe to completely delete it after closing the "publish" settings dialog (again, if you're not using EF).

Alex from Jitbit
  • 53,710
  • 19
  • 160
  • 149