在哪里可以找到我的应用程序的 .EDMX 文件?

Posted

技术标签:

【中文标题】在哪里可以找到我的应用程序的 .EDMX 文件?【英文标题】:Where can I find the .EDMX file of my application? 【发布时间】:2017-02-14 01:34:53 【问题描述】:

我在 Visual Studio 2015 上编译了一个 WPF 应用程序并构建了一个 Release。到目前为止,客户已经使用此版本可能两个月了,没有任何问题。

今天他们打电话说应用程序无法启动并显示此错误:

The provider did not return a ProvideManifest instance.

我以前从未见过此错误。我在现场拜访客户之前正在研究和收集信息,以及几乎所有这些问题:

EntityFramework error: The provider did not return a ProviderManifest instance Entity Framework: The provider did not return a providermanifest instance The provider did not return a ProviderManifest instance

是说我需要“用记事本打开 EDMX 文件并将 ProviderManifestToken="2012" 更改为 ProviderManifestToken="2008"”。

但是,我无法找到该文件。既不在客户当前拥有的 Release 文件夹中,也不在我拥有的 Project Solution 中。

连同我在研究时发现的其他解决方案,我必须尝试上述解决方案。但是我在哪里可以找到.EDMX 文件?

编辑:如果我可以修复他们现有的版本而无需构建和安装新版本,那就太棒了。

【问题讨论】:

您有异常的完整详细信息(带有内部异常)吗? @RajNagalingam 不,不是在我拜访他们之前。我在他们的机器上有一个记录器,但是没有互联网覆盖可以与 SO 通信。 只是猜测,可能是您要求用户从 appdata 文件夹中删除配置文件(例如 C:\\Users\\username\\AppData\\Local\\COMPANY NAME\应用程序名称\应用程序版本文件夹) 【参考方案1】:

通常——即。除非它已在项目中自定义 - EDMX 将是项目构建的装配中的资源,包括模型。

它可以是一个单独的文件,但您需要将连接字符串从其默认值更改为使用特定符号表示“查看程序集”:

metadata=res://*/ProjectName.csdl|res://*/ProjectName.ssdl|res://*/ProjectName.msl

将 EDMX 指向一个单独的文件。

【讨论】:

嗨,理查德,谢谢。问:我可以在不构建和安装新版本的情况下修复他们现有的版本吗? @FirstStep 您需要尝试一下(我知道我已经找到了有关在程序集之外拥有 EDMX 的文档,或者至少是从它派生的文件:但这将是几年前的事了) .

以上是关于在哪里可以找到我的应用程序的 .EDMX 文件?的主要内容,如果未能解决你的问题,请参考以下文章

将我的 ICollection 覆盖为我的 edmx 文件中的 IList 的最佳方法,在 asp.net MVC Web 应用程序中

在 EF 4 上映射外键而不创建新的 Edmx 文件

如果我编辑EDMX文件,它是否会更改除自身以外的任何文件及其设计器文件?

在哪里可以找到 Raku 核心转储文件?

我可以从 edmx 模型更新数据库表吗?

在哪里可以找到特定于应用程序的 context.xml 文件?