我们有一个简单的netcore 2.2控制台应用程序,使用来自Microsoft.EntityFrameworkCore的DbContext
。 在控制台上启动时,它按预期工作。
然而,我们决定将其用作dotnet CLI工具。 它的.csproj文件包含:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AssemblyName>dotnet-dbupdate</AssemblyName>
<Title>Db Updater</Title>
<Version>1.0.1</Version>
<PackageId>DbUpdater</PackageId>
<Product>DbUpdater</Product>
<PackageVersion>1.0.1</PackageVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.0" />
</ItemGroup>
</Project>
我们使用dotnet pack
将其打包到Nuget服务器。然后在目标文件夹中,我们得到了以下的.csproj文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<DotNetCliToolReference Include="DbUpdater" Version="1.0.1" />
</ItemGroup>
</Project>
从这个文件夹中我们可以恢复并执行:
dotnet restore
dotnet dbupdate
突然,在 DbSet
的 ToList
方法调用时,我们收到以下错误信息:
System.Data.SqlClient is not supported on this platform
在将其作为dotnet CLI工具启动时,肯定存在问题。然而,我们尚未找到此问题的原因以及如何解决它。在网上搜索没有给我们任何尝试的想法。
dotnet run
或在 IDE 中点击“运行”按钮。 - Jamie Taylor<PackageReference Include =“Microsoft.EntityFrameworkCore”Version =“2.0.0”/>
- Legion