Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在64位计算机上运行32位.NET应用程序_.net_32bit 64bit - Fatal编程技术网

在64位计算机上运行32位.NET应用程序

在64位计算机上运行32位.NET应用程序,.net,32bit-64bit,.net,32bit 64bit,我有一个应用程序,其项目的平台与任何CPU相同。当在VS2008的64位机器(win7)上运行应用程序时,我可以看到任务管理器进程中的*32,这意味着它在32位模式下运行。但我已经读到,任何CPU都是根据机器运行的(在我的例子中是64位的),使用平台的应用程序。我都糊涂了。请解释。由于VS2008是32位的,我希望它也能启动32位进程。另一个原因可能是您引用的是仅32位DLL 您是否尝试过在VS2008之外运行应用程序?它是否仍处于32位模式?由于VS2008是32位的,我希望它也能启动32位进

我有一个应用程序,其项目的平台与任何CPU相同。当在VS2008的64位机器(win7)上运行应用程序时,我可以看到任务管理器进程中的*32,这意味着它在32位模式下运行。但我已经读到,任何CPU都是根据机器运行的(在我的例子中是64位的),使用平台的应用程序。我都糊涂了。请解释。

由于VS2008是32位的,我希望它也能启动32位进程。另一个原因可能是您引用的是仅32位DLL


您是否尝试过在VS2008之外运行应用程序?它是否仍处于32位模式?

由于VS2008是32位的,我希望它也能启动32位进程。另一个原因可能是您引用的是仅32位DLL

您是否尝试过在VS2008之外运行应用程序-它是否仍处于32位模式

  • 转到Build=>configurationmanager
  • 单击活动解决方案平台下拉列表并选择
  • 在键入或选择新平台下拉列表中,选择“x64”
  • 点击OK
  • 转到Build=>configurationmanager
  • 单击活动解决方案平台下拉列表并选择
  • 在键入或选择新平台下拉列表中,选择“x64”
  • 点击OK

  • 是否确实创建实际可执行文件的项目设置为
    AnyCPU
    ,而不是
    x86
    ?此项目以及所有引用的项目应设置为
    AnyCPU
    。如果这样做,该进程将在64位Windows上作为64位进程运行(在32位Windows上作为32位进程运行)

    .EXE项目的平台目标决定了应用程序的“位”。如果任何引用的.DLL项目的“位”与正在运行的应用程序的“位”不兼容,则会出现运行时错误。例如,如果
    AnyCPU
    .EXE项目引用了
    x86
    .DLL项目,它将在32位窗口上成功运行,但在64位窗口上失败,并出现运行时错误


    问题是关于Visual Studio 2008,但Visual Studio 2012和.NET 4.5引入了:

    anycpu32bitpreferred编译程序集以在任何平台上运行。您的应用程序在支持64位和32位应用程序的系统上以32位模式运行。您只能为以.NET Framework 4.5为目标的项目指定此选项


    启用此设置(Visual Studio中的默认设置)意味着即使在64位操作系统上,
    AnyCPU
    应用程序也将以32位的方式执行。

    是否确实将创建实际可执行文件的项目设置为
    AnyCPU
    ,而不是
    x86
    ?此项目以及所有引用的项目应设置为
    AnyCPU
    。如果这样做,该进程将在64位Windows上作为64位进程运行(在32位Windows上作为32位进程运行)

    .EXE项目的平台目标决定了应用程序的“位”。如果任何引用的.DLL项目的“位”与正在运行的应用程序的“位”不兼容,则会出现运行时错误。例如,如果
    AnyCPU
    .EXE项目引用了
    x86
    .DLL项目,它将在32位窗口上成功运行,但在64位窗口上失败,并出现运行时错误


    问题是关于Visual Studio 2008,但Visual Studio 2012和.NET 4.5引入了:

    anycpu32bitpreferred编译程序集以在任何平台上运行。您的应用程序在支持64位和32位应用程序的系统上以32位模式运行。您只能为以.NET Framework 4.5为目标的项目指定此选项


    启用此设置(Visual Studio中的默认设置)意味着即使在64位操作系统上,
    AnyCPU
    应用程序也将以32位的方式执行。

    yes所有DLL也是32位的。我也在访问IBM Data Server客户端v9.5.3,但我得到的信息是“无法找到或加载已注册的.Net Framework数据提供程序”。我正在努力解决这个问题,我认为这是由于32位-64位冲突造成的。你对此有什么想法吗?如果你引用的DLL是32位的(不是任何CPU或X64),那么应用程序将以32位模式运行,因为你不能在64位应用程序中使用32位DLL,反之亦然。是的,所有DLL也是32位的。我也在访问IBM Data Server客户端v9.5.3,但我得到的信息是“无法找到或加载已注册的.Net Framework数据提供程序”。我正在努力解决这个问题,我认为这是由于32位-64位冲突造成的。你对此有什么想法吗?如果你引用32位DLL(不是任何CPU或X64),那么应用程序将以32位模式运行,因为你不能在64位应用程序中使用32位DLL,反之亦然。任何CPU都一样好——它应该在64位系统上以64位模式运行应用程序,在32位系统上以32位模式运行应用程序。除非引用的内容强制应用程序进入32位模式。将其设为64位只能防止其在32位系统上运行。@Mayur我按您所说的做了,但选择了x86。我的应用程序现在正在使用vs2008访问32位dsn的64位计算机上成功运行。我的问题是,我是否必须手动为所有应用程序执行此操作才能正常工作?一般解决方案是什么?专门为X86编译的应用程序不能在64位模式下运行-这里一定有一些混乱…任何CPU都一样好-它应该在64位系统上以64位模式运行应用程序,在32位系统上以32位模式运行应用程序。除非引用的内容强制应用程序进入32位模式。将其设为64位只能防止其在32位系统上运行。@Mayur我按您所说的做了,但选择了x86。我的应用程序现在正在使用vs2008访问32位dsn的64位计算机上成功运行。我的问题是,我是否必须手动为所有应用程序执行此操作才能正常工作?是什么