我们有一些针对 DB2 数据库使用 Entity Framework 的代码。
当我们尝试使用事务作用域时,我们收到一条消息“底层提供者打开失败”。
- 只有在从 WPF 客户端运行时才会出现此错误。
- 从单元测试运行时,我们不会收到此错误。
- DB2 提供程序是 64 位的
我们能够发现的不同之处在于,单元测试配置为 Any CPU,而 WPF 项目配置为 x86。
问题是 Visual Studio UI 不允许我们为 WPF 项目选择除 x86 之外的任何内容。
这是 WPF 项目的限制吗?如果不是,我们如何将 WPF 项目配置为任何 CPU?
最佳答案
也许您混淆了 Visual Studio C# Platform 和 Platform target?
每个 Visual Studio C# 项目都可以构建到多个平台之一。这允许您使用同一个项目构建多个硬件平台,例如 32 位和 64 位 Intel/AMD CPU,甚至是不同的 CPU,例如 Itanium。
但是,当您创建一个新项目时,它默认只包含一个平台,在您的情况下,您还希望构建到一个平台,即 x64。对于新项目,Visual Studio 使用的平台如下:
- 库项目(包括测试项目)将具有任何 CPU 平台。
- 可执行项目(包括 WPF 项目)将具有 x86 平台。
有点令人困惑的是,这些平台只是暗示实际构建内容的名称。您可以在项目设置的 Build 选项卡中控制编译器发出的内容。您可以在此处将平台目标设置为任何 CPU、x86 或 x64 等值。
您必须在 WPF 项目中将平台目标设置为x64。
要完全配置您的平台,您必须使用菜单Build -> Configuration Manager 中的Configuration Manager。 p>
关于c# - 配置 WPF 客户端以运行 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9358507/