Facilitating the spread of knowledge and innovation in professional software development



Choose your language

InfoQ Homepage News .NET Core Plans to Drop project.json

.NET Core Plans to Drop project.json

Leia em Português

This item in japanese

Lire ce contenu en français


Microsoft has come to the conclusion that the project.json experiment has failed and will be shifting back to using .csproj files. However, this won’t happen right away and the recently released .NET Core RC2 (a.k.a. tooling preview 1) will continue to use a combination of .xproj and project.json.

Starting in .NET Core RTM/tooling preview 2, Visual Studio will automatically rename .xproj files as .csproj. However, the project.json’s functionality won’t change just yet.

After preview 2, Microsoft will start working on moving project.json’s functionality into csproj. Some of that will simply require updating Visual Studio. For example, .csproj already support wildcards, even though Visual Studio insists on adding source files one by one. Other features of project.json may require significantly more work to integrate into .csproj.

At the end of this process, project.json may only exist as an alternative to Nuget’s packages.config file. If that happens, it will probably be renamed to nuget.json.


For those of you who don’t know, .csproj files are really just specialized versions .msbuild scripts. This means MSBuild will need to be available wherever .NET Core runs.

Long term, Microsoft is looking into adding NuGet functionality directly to MSBuild. (Currently MSBuild relies on extensions to access NuGet.)

We need your feedback

How might we improve InfoQ for you

Thank you for being an InfoQ reader.

Each year, we seek feedback from our readers to help us improve InfoQ. Would you mind spending 2 minutes to share your feedback in our short survey? Your feedback will directly help us continually evolve how we support you.

Take the Survey

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Any source for this post?

    by Tiger Wang,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I thought MS has just started supporting project.json...

  • Re: Any source for this post?

    by Jonathan Allen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    project.json is also part of Windows Universal Apps, so it's been around for a little while.

    They didn't explicitly list out their reasons, but basically its coming down to how difficult it is to support 2 wildly different project file formats. And from what I gather, project.json really doesn't work outside of Microsoft's own tooling, which is a problem for third party tool developers (and probably their own teams as well).

    Sorry I forgot the link to the ASP.NET Community Standup.

  • I liked Project.json a lot but....

    by Vijay Jain,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Yes, I read that too last week here

    It is going to go after the RTM release. I believe microsoft itself is not clear what they want. Project.json was a welcome change and I personally liked it lot. JSON is better than XML but now we are back to .csproj with XML. First they changed the name and now they are changing this. Our team was planning to start a new project on RC1 and thank god we didn't used it for our customer. I understand this is a small change and Visual studio will do it automatically but migration from RC1 to RC2 is also pain. Let's hope nothing changes after RTM.

  • Re: I liked Project.json a lot but....

    by Raul Planas,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I personally would not mind moving to csproj file. Consistent in one location. And would probably provide more direct support for conditional compilation/includes of NuGet packages. This would be great for internal development of NuGet packages where consumers could dynamically choose to reference debug vs release versions of NuGet package.

  • Sad to hear!

    by Jesse Thompson,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Very sad by this decision. project.json is a 100% better experience

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p


Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.