EF Internal.AppConfig TypeInitializationException

时间:2013-10-28 16:40:04

标签: c# entity-framework .net-4.0 app-config

我们正在构建一个从网络驱动器运行的.NET 4 WPF应用程序。应用程序对我和我的大多数(开发人员)同行都很好。 最近,一位软件测试人员加入了我们的开发团队,并与我在同一个AD组中。

每当他启动应用程序时,都会弹出以下对话框:

Error dialog 然后应用程序会自然崩溃。

附加调试器时,调试器在EF 4.4的DbContext构造函数的第一行中断,代码如下:

public class CardioDanosContext : DbContext
{
    // ...
    public CardioDanosContext()
        : base("CardioDanos")
    {
        // Irrelevant first line

如您所见,我们使用连接字符串名称调用DbContext的构造函数,该名称在app.config中定义,如下所示:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <!-- ... -->
  </configSections>

  <runtime>
    <loadFromRemoteSources enabled="true"/>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="External;Resources;Base;Services;Modules;Data;"/>
    </assemblyBinding>
  </runtime>

  <connectionStrings>
    <add name="CardioDanos"
         connectionString="Data Source={snip};Initial Catalog=CardioDanos;Integrated Security=True;"
         providerName="System.Data.SqlClient"/>
  </connectionStrings>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>

  <appSettings>
    <!-- ... -->
  </appSettings>

  <!-- ... -->

</configuration>

现在,我假设它是权限问题,但我们已经验证了受影响用户的所有权限,并且它们看起来都是有序的。他可以毫无问题地阅读和修改app.config文件。我还假设它与从网络驱动器运行它有关,但话又说回来,它适用于我们中的一些人。

我在搜索互联网时并没有真正发现任何相关信息,但有没有人知道为什么会这样呢?

1 个答案:

答案 0 :(得分:0)

Some googling tells me无法加载某些程序集。您确定客户端上的所有内容都已正确安装吗?您正在使用的任何第三方程序集安装在开发计算机上的GAC中,客户端计算机上缺少这些程序集?

您是如何部署该应用程序的?您是在创建发布,还是只是复制bin / debug文件夹?如果是最后一个,那么如果没有将“Copy local”设置为True,则不包括任何特定的引用程序集。

如何引用实体框架?您使用的是NuGet软件包,还是手动完成的旧安装?