我需要让我的应用程序在64位环境下运行。
要如何解决这个问题呢?
如果您想避免重新编译,这里有一个看起来不错的解决方案。但请注意,它需要对每台目标机器进行更改。
如果您有一台64位机器,并且想运行仅适用于32位CLR的.NET应用程序,则必须更改计算机上的.NET框架
通过以下命令设置.NET框架以WOW模式加载CLR
打开命令提示符并输入此命令
C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Ldr64.exe SetWow
现在,您应该能够运行仅使用.NET 32位CLR的应用程序。
要恢复默认的64位框架,请运行
C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Ldr64.exe Set64
(来源)
对于Fredrik Leijon上面的回答,我想这就是你要的。
它将告诉64位和32位的Windows在32位环境下运行您的应用程序。
记得对'Release'配置执行相同的操作。
这将更新您的*.csproj文件供MSBuild检索,如下所示(检查<PlatformTarget/>
元素):
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
我遇到了同样的问题。在我的情况下,只需为我的应用程序的主要程序集(.exe)编译“x86”即可。其他程序集(.dll)使用“任何 CPU”编译。
我们的应用程序现在可以在32位和64位系统上正常工作。
这是Windows/ASP.NET应用程序吗?
如果是ASP.NET应用程序,您只能同时运行32位/64位模式。 为此,
情况1。您需要在IIS中的应用程序池上启用Enable32bitApplication
。然后重置IIS。
情况2。在regedit中检查相应的DLL。
如果是基于Windows的,则从Visual Studio提示符中运行此命令,
CorFlags.exe TheApp.exe /32BIT+ //Enables 32 bit application.
除非您引用的库仅适用于32位(Jet DB驱动程序就是一个例子),或者您已经告诉编译器只将应用程序编译为32位,否则它应该可以运行。
崩溃信息显示什么?