使用 SQL Server 数据库和实体框架错误的 Windows 应用程序部署
Posted
技术标签:
【中文标题】使用 SQL Server 数据库和实体框架错误的 Windows 应用程序部署【英文标题】:Windows application deployment with SQL Server database and Entity Framework error 【发布时间】:2020-02-15 17:53:32 【问题描述】:我有一个使用实体框架和代码优先方法开发的 Windows 应用程序。它在我自己的电脑上完美运行。但是,当我尝试将应用程序部署到安装了 SQL Server 的客户端时,它会引发以下错误。我在这里想念什么?
System.BadImageFormatException:无法加载文件或程序集“EntityFramework,Version=6.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。该模块应包含程序集清单。 文件名:'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' at BLL.BLMasters.BLCompany..ctor()
这是我的app.config
文件:
<configuration>
<configSections>
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
<connectionStrings>
<add name="MyDBConnectionString"
providerName="System.Data.SqlClient"
connectionString="Data Source=DESKTOP-NMSSFU8;Initial Catalog=AMSDEV;Integrated Security=True; Max Pool Size=200;" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
</configuration>
【问题讨论】:
【参考方案1】:您能否检查一下您所有项目的项目属性是否设置为正确的目标平台?
转到您的项目属性 → 构建 → 目标平台。
检查这是否设置为所有项目的值之一:x86、x64、任何 CPU。
尝试为解决方案中的所有项目选择“任何 CPU”,然后将其部署到客户端计算机并检查。
当你的 CPU 架构与目标机器的编译版本不同时,通常会发生此错误。选择 Any CPU 通常可以解决问题。
【讨论】:
以上是关于使用 SQL Server 数据库和实体框架错误的 Windows 应用程序部署的主要内容,如果未能解决你的问题,请参考以下文章
带有实体框架和 SQL Server 数据库的 ASP.NET MVC - 图像未显示在视图中......错误显示“无法将“字节”转换为“字符串”
在 Visual Studio 中使用实体框架与 SQL Server 的连接问题
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段
将 SQL Server tinyint 映射到 Int16 的实体框架