我们有ASP.NET WebSite,它引用了引用EntityFramework dll的项目(dll)。我们已经手动将EntityFramework.dll和EntityFramework.SqlServer.dll引用添加到bin文件夹(而不是通过Nuget)。我们正在使用Octopus来部署我们的网站。在部署时,我们在bin文件夹中没有EntityFramework.SqlServer dll。我已经通过各种答案,但无法得到它。 有谁知道相同的答案?我尝试通过VS发布,我在bin文件夹中看到EF的SqlServer。我们在web dconfig版本中没有任何引用条目。
不确定添加以下代码,其中一些建议 -
var ensureDLLIsCopied = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
错误讯息 -
LockAutomationNotification.NotifyEmail中发生错误 System.Data.Entity.Core.MetadataException:指定的架构无效。错误: OLIEDataModel.ssdl(2,2):错误0152:找不到具有不变名称' System.Data.SqlClient'的ADO.NET提供程序的实体框架提供程序。确保提供商已在' entityFramework'中注册。应用程序配置文件的一部分。见
答案 0 :(得分:0)
第一个问题的答案是here。这是因为 EntityFramework.SqlServer.dll
在内部被 EntityFramework.dll
而不是您的项目代码引用。
您收到的新错误是因为您缺少配置。请在您网站的 web.config
文件中添加以下设置:
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>