Visual Studio для mac project.json

Когда я использую Visual Studio для Mac для создания веб-проекта с .Net core 1.1, в моем проекте нет project.json. Есть ли ошибка при создании этого проекта?


person Ivan Barrios    schedule 19.10.2017    source источник
comment
ссылка хорошо, похоже, они изменили project.json на. csproj, но возникает новая проблема: когда я использую команду ‹dotnet ef migrations add Init› для инициализации моей базы данных под моим dic проекта, она выдает ‹Не найдено ни одного исполняемого файла соответствующей команде dotnet-ef›   -  person Ivan Barrios    schedule 19.10.2017
comment
Вам необходимо добавить в проект ссылку на инструмент для инструментов командной строки EF.   -  person Panagiotis Kanavos    schedule 19.10.2017


Ответы (2)


Project.json никогда не выпускался в производство. Он был заменен новым, значительно упростил формат проекта MSBuild до выпуска .NET Core. Новый формат во многом похож на формат 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 executedotnet restore`

.NET Core позволяет добавлять командлеты, которые отображаются как команды в .NET CLI. dotnet watch выполняет dotnet-watch исполняемый файл. dotnet ef ищет и выполняет dotnet-ef исполняемый файл.

Вы должны добавить параметр в проект MSBuild, который устанавливает инструмент в первую очередь с помощью элемента <DotNetCliToolReference>. После этого dotnet restore установит инструмент, как и любой другой пакет.

Это описано в Инструменты командной строки .NET Core для 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 файлы будут скомпилированы по умолчанию.

person Panagiotis Kanavos    schedule 19.10.2017
comment
Спасибо, команда dotnet-ef была выполнена успешно после того, как я отредактировал файл .csporj и добавил узел DotNetCliToolReference, также я изменил версию для Microsoft.EntityFrameworkCore.Tools.DotNet, теперь она работает хорошо - person Ivan Barrios; 20.10.2017

project.json устарел и никогда не поддерживался за пределами предварительной версии инструментария .NET Core в VS 2015. Новый инструмент использует csproj файлы и может использоваться в VS 2017 и VS для Mac (и других, таких как VSCode, Rider,…).

person Martin Ullrich    schedule 19.10.2017