我有一个访问 SQL Server CE 数据库中数据的 wpf 应用程序。该应用程序和数据库旨在无需安装即可在 PC 上运行,但尝试这样做会失败。(未能找到数据库提供者)我采取了以下步骤:
System.Data.SqlServerCE
-> 复制本地- 将 7 个 SQL Server CE 程序集复制到应用程序目录中
- 验证 VC++ 在系统上可用
添加以下内容
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.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </DbProviderFactories> </system.data>
在尝试执行以下代码时:
try
{
MessageBox.Show("initialize db connection");
context = new DataAccess.PersistentStorageEntities();
MessageBox.Show(context.Database.Connection.ConnectionString);
}
catch (Exception ex)
{
MessageBox.Show("exception: "+ex.Message);
if (ex.InnerException != null)
{
MessageBox.Show("innerexception: "+ ex.InnerException.Message);
}
}
我收到消息:
例外:不是有效的 Win32 应用程序。(来自 HRESULT 的异常:0x800700C1)
我怀疑它在加载时遇到问题System.Data.SqlServerCe.4.0
,但无法弄清楚为什么它会尝试加载为 Win32
有什么想法吗?我觉得我在这里失去了理智