How to set the default namespace in projects using project.json (.xproj)

Muhammad Rehan Saeed picture Muhammad Rehan Saeed · Feb 24, 2016 · Viewed 7.9k times · Source

In a standard .csproj you could go into properties and set the default namespace. How can this be achieved in a .xproj project using project.json?

Answer

nover picture nover · Oct 24, 2016

With ASP.NET Core 1.0.1, you can set your default namespace in the project.json file as follows:

"tooling": {
   "defaultNamespace": "Your.Name.Space"
}

The yeoman ASP.NET generator will respect this defaultNamespace when generating new classes.

For the new Visual Studio 2017 csproj tooling, you can add the following XML to change your default namespace (up in the top level <PropertyGroup> reference):

<PropertyGroup>
  <Optimize>true</Optimize>
  ...
  <RootNamespace>My.Root.Namespace</RootNamespace>
</PropertyGroup>

This is only necessary if your .csproj filename does not match your intended root namespace for the project.