C# 将WPF客户端配置为运行64位

C# 将WPF客户端配置为运行64位,c#,wpf,visual-studio,entity-framework-4,C#,Wpf,Visual Studio,Entity Framework 4,我们有一些针对DB2数据库使用实体框架的代码 当我们尝试使用事务作用域时,我们会收到一条消息“隐藏的提供程序在打开时失败” 我们只有在从WPF客户端运行时才会出现此错误 当我们从单元测试运行时,不会出现此错误 DB2提供程序是64位的 我们能够发现的区别是,单元测试配置为任何CPU,而WPF项目配置为x86 问题是可视化研究UI不允许我们为WPF项目选择除x86之外的任何内容 这是WPF项目的限制吗?如果不是,我们如何将WPF项目配置为任何CPU?没有此类限制。您可以在项目属性的构建页面上的

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

当我们尝试使用事务作用域时,我们会收到一条消息“隐藏的提供程序在打开时失败”

  • 我们只有在从WPF客户端运行时才会出现此错误
  • 当我们从单元测试运行时,不会出现此错误
  • DB2提供程序是64位的
我们能够发现的区别是,单元测试配置为任何CPU,而WPF项目配置为x86

问题是可视化研究UI不允许我们为WPF项目选择除x86之外的任何内容


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

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

也许您将Visual Studio C#平台与平台目标混淆了吧

每个VisualStudioC#项目都可以构建到多个平台中的一个。这使您可以使用同一个项目构建多个硬件平台,如32位和64位Intel/AMD CPU,甚至是不同的CPU,如安腾

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

  • 库项目(包括测试项目)将具有任何CPU平台
  • 可执行项目(包括WPF项目)将具有x86平台
稍微令人困惑的是,这些平台只是暗示实际构建内容的名称。您可以在项目设置的Build选项卡中控制编译器发出的内容。在这里,您可以将平台目标设置为任何CPUx86x64等值

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


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

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


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

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

您可能希望取消选中它,否则您的应用程序将作为x32运行,即使在x64机器上也是如此