c# - 配置 WPF 客户端以运行 64 位

标签 c# wpf visual-studio entity-framework-4

我们有一些针对 DB2 数据库使用 Entity Framework 的代码。

当我们尝试使用事务作用域时,我们收到一条消息“底层提供者打开失败”。

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

我们能够发现的不同之处在于,单元测试配置为 Any CPU,而 WPF 项目配置为 x86。

问题是 Visual Studio UI 不允许我们为 WPF 项目选择除 x86 之外的任何内容。

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

最佳答案

也许您混淆了 Visual Studio C# PlatformPlatform target

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

但是,当您创建一个新项目时,它默认只包含一个平台,在您的情况下,您还希望构建到一个平台,即 x64。对于新项目,Visual Studio 使用的平台如下:

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

有点令人困惑的是,这些平台只是暗示实际构建内容的名称。您可以在项目设置的 Build 选项卡中控制编译器发出的内容。您可以在此处将平台目标设置为任何 CPUx86x64 等值。

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

Visual Studio C# project settings

要完全配置您的平台,您必须使用菜单Build -> Configuration Manager 中的Configuration Manager。 p>

关于c# - 配置 WPF 客户端以运行 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9358507/

相关文章:

c# - Razor 代码块可以输出到 View 吗?

c# - 为什么 DapperRow.GetType() 返回 null?

c# - 如何确定在 Outlook 拖放过程中被拖动的附件

c++ - 如何模拟时间的流逝来调试程序?

c# - Openwebkitsharp - COMException 未处理?

c# - ASP.NET MVC 4 局部 View 不工作

c# - WPF 绑定(bind) : Where a property contains the path to the value

c# - 在 WPF 中加载自定义多边形作为按钮图像

c# - 如何在已经运行的 Visual Studio 中以编程方式打开项目/解决方案?

c# - 单例与 ServiceLocator