C# 发布网站期间,在项目中未找到任何数据库
我试图在Visual Studio 2017社区中发布一个带有Entity Framework Core的MVC核心项目,但VS找不到任何包含DbContext的项目,因此它说:在项目中找不到数据库 DbContext不在网站项目(我想发布的)中,而是在网站项目引用的自己的dll项目中 我尝试在Windows 10上发布VS 2017社区版和预览版。以前在Windows8上,我可以使用预览版,而且效果很好。现在我在Windows10上 有关我的环境的Som信息:C# 发布网站期间,在项目中未找到任何数据库,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我试图在Visual Studio 2017社区中发布一个带有Entity Framework Core的MVC核心项目,但VS找不到任何包含DbContext的项目,因此它说:在项目中找不到数据库 DbContext不在网站项目(我想发布的)中,而是在网站项目引用的自己的dll项目中 我尝试在Windows 10上发布VS 2017社区版和预览版。以前在Windows8上,我可以使用预览版,而且效果很好。现在我在Windows10上 有关我的环境的Som信息: Visual Studio 2
- Visual Studio 2017社区(和预览版)
- 具有ASP.NET核心和EF核心的.NET 4.6
- 视窗10
解决方案是安装Visual Studio 2017 Professional,现在我可以查看我的DbContext类并在发布时应用迁移。在我的例子中,问题是在appsettings.dev.json文件中定义了连接字符串,但在appsettings.json文件中没有定义
在我将连接字符串移动到appsettings.json文件后,在发布对话框中正确检测到数据库。我认为您只需要在
appsettings.json
中为连接字符串设置一个键,因为发布工具可能会在appsettings.json
中搜索任何连接字符串,然后,它将查找找到的连接字符串的dbContect
如果你有这样的代码-
public void配置服务(IServiceCollection服务)
{
services.AddMvc();
var connection=Configuration.GetConnectionString(“MyConnectionString”);
services.AddDbContext(options=>options.UseSqlServer(connection));
}
你需要加上这个-
"ConnectionStrings": {
"MyConnectionString": ""
}
发布工具将查找
MyConnectionString
,并将发现我们在MyConnectionString
中注册了DbContext
作为服务,这是为我做的,因此应该是正确的答案:3我的项目中没有appsettings.dev.json
和appsettings.json
。