【问题标题】:How can I use Dotnet Core 1.1 CLI tooling without a project.json?如何在没有 project.json 的情况下使用 Dotnet Core 1.1 CLI 工具?
【发布时间】:2017-01-20 19:38:04
【问题描述】:
我在 Visual Studio 2017 RC 中构建了一个针对 Dotnet Core 1.1 的 Web 应用。根据here 和其他地方,MS 已宣布project.json 将被淘汰并受MSBUILD .csproj 文件的青睐。问题是dotnet CLI 似乎不适用于.csproj,例如使用dotnet ef ... 总是会产生错误,即找不到它的二进制文件(即使Add-Migration 等PowerShell 命令在VS 中工作) -这是因为缺少 project.json,有没有办法解决这个问题?
【问题讨论】:
标签:
.net
visual-studio
msbuild
.net-core
【解决方案1】:
尝试添加
Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0-msbuild2-final
关键是 msbuild 部分,它对我有用。供您参考,我的整个 .csproj 如下。
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
<PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>
<ItemGroup>
<Compile Include="**\*.cs" Exclude="$(GlobalExclude)" />
<EmbeddedResource Include="**\*.resx" Exclude="$(GlobalExclude)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETCore.App">
<Version>1.0.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.NET.Sdk.Web">
<Version>1.0.0-alpha-20161104-2-112</Version>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Mvc">
<Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel">
<Version>1.0.1</Version>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Logging.Console">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql">
<Version>1.1.1-prerelease-10012</Version>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.0.0-msbuild2-final" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet">
<Version>1.0.0-msbuild2-final</Version>
</DotNetCliToolReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>