Reputation: 3
When I use Visual Studio for Mac to create a web project with .Net core 1.1, there is no project.json in my project. Is there any mistake when I create this project?
Upvotes: 0
Views: 543
Reputation: 131180
Project.json was never released in production. It was replaced by a new, vastly simplified MSBuild project format before .NET Core was released. The new format works a lot like the project.json
format - it supports globbing, package references and compiles all *.cs* files found in a folder. You don't need to define dependent packages in the project file any more, you can specify *one* root package and all dependencies will be added when you execute
dotnet restore`
.NET Core allows you to add commandlets that appear as commands to the .NET CLI. dotnet watch
executes the dotnet-watch
executable. dotnet ef
searches for and executes the dotnet-ef
executable.
You have to add an option to the MSBuild project that installs the tool in the first place with the <DotNetCliToolReference>
element. After that, dotnet restore
will install the tool just like any other package.
This is described in .NET Core Command Line Tools for EF Core.
The MSBuild project file should look like this :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
</Project>
This file is enough to build your project and execute ef
commands from the command line, since all *.cs
files will be compiled by default
Upvotes: 1
Reputation: 100543
project.json
is deprecated and was never supported outside preview .NET Core tooling in VS 2015. The new tooling uses csproj
files and can be used in VS 2017 and VS for Mac (and others like VSCode, Rider, …).
Upvotes: 1