运行的实体框架“migrate.exe”在Windows 2003和XP 6.0.2迁移“不是有效的Win32应用程序”例外

问题描述:

我们的产品需要与Windows,包括Server 2003和XP的版本兼容。运行的实体框架“migrate.exe”在Windows 2003和XP 6.0.2迁移“不是有效的Win32应用程序”例外

我们有不同的迁移代码第一个实体框架的项目。

我们正在部署这些迁移创建或更新使用“migrate.exe”,文件版本6.0.21211.0,在实体框架6.0.2 NuGet包提供的数据库。

当我们在Visual Studio 2010或Windows 7中使用XP自带的visual studio 2013来每次运行“migrate.exe”时,在xp或server 2003机器上安装这个软件包,我们得到一个“不是有效的win32应用程序“例外。

有一个很好的理由“migrate.exe”不能在Windows XP和Windows Server 2003比他们操作系统的事实,没有人真正愿意支持任何其他多上运行?

你可能没有安装在它失败的机器.NET框架。

(作为一个方面说明,我相信XP和2003走出去的支持,很快,所以你可能需要升级你的环境......)

+0

正如我在质询时说,我用XP用它的Visual Studio 2010年实际安装的NuGet包实体框架,它仍然产生migrate.exe与不是有效的Win32应用程序异常。我安装了.NET框架。 XP和2003即将退出支持或不与这个问题或问题无关。 –

+0

“XP和2003即将退出支持不会与这个问题无关” - 我不同意这一点 - 因为问题只发生在XP和2003上,他们很快就会退出支持,您将会如果您迁移到较新的系统,并且应该解决您的问题,因为您指出这些系统适用于较新的系统,所以更好。 – Pawel

+0

对不起帕维尔,但坚持使用XP和2003而不是我们的客户。所以除非我们想要失去他们支付我们支持他们古老系统的所有权利,否则我们将不得不支持他们。 –

我设法通过下载的源代码6.0来解决此问题。 2版本的实体框架,在属性中取消签名,然后通过将.net 4.0而不是4.5,通过将解决方案配置更改为Release40来构建它。

的源代码可以在这里找到:

http://entityframework.codeplex.com/SourceControl/changeset/7648d33dfb53589d9c32b605c61758a5a6c0b80b

我觉得这是很困难的找到它。