2012-02-20 76 views
3

我们有一些代码使用实体框架对DB2数据库。配置WPF客户端运行64位

当我们尝试使用事务处理范围时,我们收到一条消息“处于打开状态的Underneath提供程序失败”。

  • 我们只在从WPF客户端运行时才会出现此错误。
  • 当我们从单元测试运行时,我们不会收到这个错误。
  • 的DB2提供者是64位

,我们已经能够发现的是,单元测试配置为任何CPU的差别,但WPF项目配置为86。

问题是,Visual Studion用户界面不允许我们为WPF项目选择除x86以外的任何内容。

这是WPF项目的限制吗?如果不是,我们如何将WPF项目配置为任何CPU?

回答

7

也许你与目标平台混淆了Visual Studio的C#平台的构建选择页面上的目标是什么?

每个Visual Studio C#项目都可以构建到多个平台之一。这使您可以使用相同的项目构建多个硬件平台,如32位和64位Intel/AMD CPU,甚至可以使用不同的CPU,如Itanium。

但是,当您创建一个新项目时,它将默认只包含一个平台,在您的情况下,您还希望只生成一个平台,即x64。对于新的项目由Visual Studio所使用的平台是这些:

  • 库项目(包括一个测试项目)将有任何CPU平台。
  • 可执行项目(包括WPF项目)将具有x86平台。

有点混淆的是,这些平台只是暗示实际构建的名称。您可以控制项目设置的Build选项卡中编译器发出的内容。在这里,您可以将平台目标设置为值,如任何CPU,x86x64

您必须在您的WPF项目中设置平台目标x64

Visual Studio C# project settings

完全配置的平台,你将不得不使用配置管理器这是对菜单构建 - >配置管理器

1

没有这样的限制。您可以在目标平台组合框项目属性

1

我唯一无法改变的x86是平台,说实话我不知道它是什么。但正如你所看到的,我可以选择x64作为平台目标,你确定你没有这样的选择吗?

enter image description here

0

,要解决这个问题很简单。 我们已将复制的64位控制台PowerShell.exe复制到当前VisualStudio项目的调试文件夹中,并提供了相同的路径(。\ debug RR。\ debug)来触发powershell脚本,并且它工作正常。