0

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

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

错误对话框 之后应用程序自然会崩溃。

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

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

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

<?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 文件。我还假设它与从网络驱动器运行它有关,但话又说回来,它对我们中的一些人来说效果很好。

在搜索 Internet 时,我并没有真正找到任何关于此的信息,但有没有人知道为什么会发生这种情况?

4

1 回答 1

0

一些谷歌搜索 告诉我某些程序集无法加载。您确定所有内容都正确安装在客户端上吗?您正在使用的任何第三方程序集都安装在您的开发机器上的 GAC 中,而客户端机器上缺少这些程序集?

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

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

于 2013-10-28T16:51:21.770 回答