2017-10-19 172 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等其他人)。