2017-10-19 178 views
0

当我使用Visual Studio for Mac创建一个带有.net核心1.1的Web项目时,我的项目中没有project.json。当我创建 this project时是否有任何错误?Visual Studio for mac project.json

+0

[链接](https://www.stevejgordon.co.uk/project-json-replaced-by-csproj)好的,他们看起来像他们将project.json改为.csproj,但有一个新问题,当我使用命令在我的项目dic下启动我的数据库,然后它抛出

+2

您需要为项目中的EF命令行工具添加工具参考 –

回答

1

Project.json从未在生产环境中发布。在.NET Core发布之前,它被新的vastly simplified MSBuild project format所取代。新格式的工作原理很像project.json格式 - 它支持通配符,包的引用和编译所有*.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的核心,您可以添加出现在.NET CLI命令命令行开关。 dotnet watch执行dotnet-watch可执行文件。 dotnet ef搜索并执行dotnet-ef可执行文件。

您必须在MSBuild项目中添加一个选项,该选项首先使用<DotNetCliToolReference>元素安装该工具。之后,dotnet restore将像其他软件包一样安装该工具。

这在.NET Core Command Line Tools for EF Core中描述。

的MSBuild项目文件应该是这样的:

<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> 

这个文件是足够建设项目,并在命令行中执行ef命令,因为所有*.cs文件默认

编译
+0

谢谢,dotnet-ef命令在我编辑.csporj文件后运行成功添加DotNetCliToolReference节点,同时我也更改了版本为Microsoft.EntityFrameworkCore.Tools.DotNet,现在它运行良好 –

1

project.json已弃用,并且从未在VS 2015中预览.NET Core工具之外受支持。新工具使用csproj文件,可用于VS 2017和VS for Mac(以及VSCode,Rider等其他人)。