我遇到了一些奇怪的例外情况。
我已经看到以下线程讨论将Microsoft.EntityFrameworkCore.Tools降级为1.1.1我已经做过,但仍然出现了这些异常。
System.ArgumentNullException: Value cannot be null.
Parameter name: contentRootPath
at Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(String value, String parameterName)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations..ctor(IOperationReporter reporter, Assembly assembly, Assembly startupAssembly, String environment, String projectDir, String contentRootPath, String rootNamespace)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.<>c__DisplayClass4_0.<.ctor>b__4()
at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
任何人都可以在这方面提供帮助。
答案 0 :(得分:1)
回顾一下,我在尝试运行dotnet CLI命令时遇到此错误。我发现的问题是CLI环境默认使用 dotnet 和 ef 命令的.NET Core 2.0版本,但是我需要使用.NET Core 1.1版本因为那是构建软件包版本所依据的。
我发现(通过运行 dotnet --info ),环境中安装了多个版本的.NET Core SDK,并且默认情况下,Path指向最新版本。要使用旧版本,我在解决方案根目录中添加了一个带有特定版本号的 global.json 文件。例如
<unit name="test1">
<unit_meta>
<label>abcdef</label>
</unit_meta>
<item name="test1">
<item_meta/>
<valuedate>20180101</valuedat>
</item>
</unit>
<unit name="test2">
<unit_meta>
<label>qwert</label>
</unit_meta>
<item name="test2">
<item_meta>
<label>blabla</label>
</item_meta>
<valuedate>20182020</valuedate>
</item>
</unit>
<unit name="test3">
<unit_meta>
<label>wasd</label>
</unit_meta>
<item name="test3">
<item_meta>
<label>asdf</label>
</item_meta>
<valuedate>20180303</valuedate>
</item>
</unit>
一切正常。
答案 1 :(得分:0)
确保所有版本对齐。
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.5" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet"
Version="1.1.5" />
</ItemGroup>