我已经标准地安装了带有实体框架6和SQLServerCompact4.0的WPF项目。当我构建我的项目时,Server部署所需的所有文件都将正确地复制到Release文件夹,包括System.Data.SqlServerCe.dll。
但是,在没有安装的计算机上运行项目会引发System.IO.FileLoadException。
在我的开发环境中,是从GAC加载的System.Data.SqlServerCe.dll。我找到了这个引用,其中解释了dll的版本号:http://technet.microsoft.com/en-us/library/gg213826.aspx。
我假设System.Data.SqlServerCe.dll程序集表单NuGet的版本是4.0.0.0。
因此,我将项目中的System.Data.SqlServerCe.dll引用手动更改为私有文件夹中的4.0.0.1文件,并将System.Data.SqlServerCe.dll 4.0.0.1复制到生产机器。
我像这样改变了app.config:
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>现在,我在开发机器上得到了这个例外:
给定的连接不是“SqlCeConnection”类型。
在生产机器上我得到了System.Data.Entity.Core.EntityException。
是否有机会让私人部署使用NuGet和EF 6?还是需要手动复制x86、amd64文件夹中的所有文件?
发布于 2013-11-30 09:45:58
System.Data.Entity.Core.EntityException在我的应用程序中已经出现了问题,部署后我也忘了更改DB名称。
我已经遵循了这一指南,它现在正在起作用:
25.html
https://stackoverflow.com/questions/19914020
复制相似问题