【问题标题】:Configure WPF client to run 64bit将 WPF 客户端配置为运行 64 位
【发布时间】:2012-02-20 09:07:50
【问题描述】:

我们有一些针对 DB2 数据库使用实体框架的代码。

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

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

我们能够发现的区别是,单元测试配置为Any CPU,而WPF项目配置为x86。

问题在于 Visual Studion UI 不允许我们为 WPF 项目选择 x86 以外的任何内容。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      没有这样的限制。您可以在项目属性的构建页面上的平台目标组合框中选择目标

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

          在最新版本的 Visual Studio(至少 2019)中,在项目属性中,在构建设置中,有一个平台目标首选 32 位的选项。

          您可能需要取消选中它,否则即使在 x64 机器上,您的应用也会以 x32 运行。

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              猜你喜欢
              • 2016-03-14
              • 2013-05-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多