本文介绍了在程序集"ef"上找不到"UserSecretsIdAttribute"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用ASP.NET Core 1.1,并且在启动时具有以下内容:

I am using ASP.NET Core 1.1 and I have the following on startup:

ConfigurationBuilder builder = new ConfigurationBuilder();
builder.AddUserSecrets();

我使用的是csproj文件而不是我添加的JSON:

I am using csproj file instead of JSON where I added:

<PropertyGroup>
   <UserSecretsId>8844d677-223b-4527-a648-387a65933d55</UserSecretsId>
</PropertyGroup>

但是当我运行命令时:

dotnet ef migrations add "InitialCommit"

我得到了错误:

An error occurred while calling method 'ConfigureServices' on startup class 'Startup'. Consider using IDbContextFactory to override the initialization of the DbContext at design-time. Could not find 'UserSecretsIdAttribute' on assembly 'ef, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60"

知道为什么吗?

推荐答案

您遇到了这个问题: https://github.com/aspnet/Configuration/issues/543

解决方案是将您的调用 .AddUserSecrets()更改为 .AddUserSecrets(Assembly assembly)

The solution is to change your call .AddUserSecrets() to .AddUserSecrets(Assembly assembly)

请参阅此公告,以了解弃用project.json如何要求对用户机密进行重大更改: https://github.com/aspnet/Announcements/issues/209

See this announcement about how deprecating project.json required a breaking change to user secrets: https://github.com/aspnet/Announcements/issues/209

这篇关于在程序集"ef"上找不到"UserSecretsIdAttribute"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 13:56