我有一个与同一个数据库交互的两个exe。一个是主应用程序,另一个是更新程序应用程序(更新主应用程序)。我试图将安装包限制为一个配置文件。 IE我希望Updater应用程序使用主应用程序配置文件。
我能够拉出连接字符串并像这样创建数据库上下文:
string entityConnectionString = (entitySettings == null) ? "" : entitySettings.ConnectionString;
var ecb = new EntityConnectionStringBuilder(entityConnectionString);
var ec = new EntityConnection(ecb.ToString());
但是,如果我没有在下面包含更新程序应用程序的配置,我会收到错误The specified store provider cannot be found in the configuration, or is not valid.
<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>
如何告诉Entity Framework或应用程序使用其他配置文件或绕过此错误消息?添加updater exe的配置文件不是一个选项,因为boss人想要一个配置文件。 (我们希望能够远程更新配置文件,并添加多个使其更复杂。)
答案 0 :(得分:1)
您可以允许多个项目共享相同的app.config
,如下所示:
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"C:\Shared\app.config");
答案 1 :(得分:0)