0

我们的软件可用作 Autodesk Inventor 的插件。这意味着我们的应用程序(由 DLL 组成)文件夹与 EXE 完全分离。

问题在于实体框架试图加载 SQL CE 提供程序,该提供程序私下安装在我们应用程序中的其余 DLL 旁边。在未安装 SQL CE 的机器上运行应用程序时出现以下错误:

System.ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.
at System.Data.Entity.Infrastructure.SqlCeConnectionFactory.CreateConnection(String nameOrConnectionString)
at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
at System.Data.Entity.Internal.LazyInternalConnection.get_ProviderName()
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at ...

如果我将所有 SQL CE 安装文件复制到 Inventor 的 bin 文件夹(主 EXE 旁边),一切正常,但这不是一个选项。

我已经调查了一些主题,建议修改 app.config,指定不同的提供程序。所有这些都类似于这个那个。但它在我的情况下不起作用。app.config 修改不能帮助我指定提供程序的位置,即使这样做,修改配置也不是一种选择(除非我可以有一个单独的配置)。

这甚至可能吗?我想指定我的安装文件夹的位置,以便 Entity Framework 可以在那里查找 SQL CE 提供程序。

4

1 回答 1

0

我认为这是不可能的,您必须使用提供程序注册更新主 .exe 配置文件,或者安装 SQL CE MSI。

于 2013-06-11T17:09:31.367 回答