I followed the instruction to create new .NET Core project and ran this from cmd:
dotnet new dotnet restore
The second statement creates project.lock.json
that contains a lot of garbage (not really garbage but tons of dependencies, configurations etc.). I assume these dependencies is .NET framework that is broken down into separate NuGet packages.
My questions:
json file, which is much more common and has been around for much longer. The goal of package-lock. json file is to keep track of the exact version of every package that is installed so that a product is 100% reproducible in the same way even if packages are updated by their maintainers.
json that result in two different installs. You may have noticed it before; you install a package using npm and suddenly a new file called package-lock. json appears in your project directory. Don't delete that package-lock file, run npm install and regenerate it!
Project. json is an automatically generated file which is included in the folder of each automation project made in Studio. The file holds information about the project dependencies, and web services loaded in libraries.
If you're collaborating on a shared project with multiple developers, and you want to ensures that installations remain identical for all developers and environments, you need to use package-lock. json . package-lock. json is automatically generated for any operations where npm modifies either package.
Update: project.json
has been replaced with .csproj
as the main project file for .NET Standard projects. This question refers to the old system before the introduction of PackageReference in NuGet 4.0.
You may still occasionally see project.lock.json
as an artifact of the build process, but it should be ignored. Managing the NuGet packages that your .NET Standard/.NET Core project depends on should always be done by either
.csproj
file directlydotnet add package
, etc)Old answer for posterity: project.lock.json
is generated by the .NET tooling when you restore the project's packages. You shouldn't touch it or check it into source control. Edit project.json
directly.
During the package restore process (dotnet restore
), NuGet has to analyze the dependencies in your project, walk their dependency graphs, and figure out what packages should be installed for your project and your project's dependencies.
This is a non-trivial amount of work, so the results are cached in project.lock.json
to make subsequent restores faster and more efficient. The lock file will be regenerated if project.json
is modified and dotnet restore
is executed again.
Every so often, in our team, when someone updates some nuget, we have the same problem, the lock.json files doens't get updated, even running dotnet restore so, before applying the last choice (deleting them) I suggest run grunt from your command line. If that doesn't work, delete all the lock.json files and run dotnet restore, this is my favourite choice ;)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With