C# Windows Server 2003 32位计算机应用程序能否适用于Windows Server 2008 64位计算机?

C# Windows Server 2003 32位计算机应用程序能否适用于Windows Server 2008 64位计算机?,c#,windows,debugging,com,windows-server-2008,C#,Windows,Debugging,Com,Windows Server 2008,我使用的是Windows Server 2003 32位计算机。使用这台机器,我创建了一个COM组件,并在另一个应用程序中使用它,还有一个EXE文件 现在,我将该EXE复制到另一台安装了Windows Server 2008的64位计算机上 当我尝试运行那个EXE时,它会显示类似于“调试错误:这个应用程序需要运行时并以一种不寻常的方式终止” 位(32位vs 64位)兼容性是原因吗?在Windows Server 2008计算机上运行此应用程序需要什么?编译应用程序时,需要确保编译为32位。默认情

我使用的是Windows Server 2003 32位计算机。使用这台机器,我创建了一个COM组件,并在另一个应用程序中使用它,还有一个EXE文件

现在,我将该EXE复制到另一台安装了Windows Server 2008的64位计算机上

当我尝试运行那个EXE时,它会显示类似于“调试错误:这个应用程序需要运行时并以一种不寻常的方式终止”


位(32位vs 64位)兼容性是原因吗?在Windows Server 2008计算机上运行此应用程序需要什么?

编译应用程序时,需要确保编译为32位。默认情况下,VisualStudio为“Any”编译。这导致应用程序的某些部分为32位,并使用64位DLL。

编译应用程序时,需要确保编译为32位。默认情况下,VisualStudio为“Any”编译。这导致应用程序的某些部分为32位,并使用64位DLL。

多亏了。 您编译为调试版本还是发布版本?
它能找到你使用的所有参考资料吗?

多亏了。 您编译为调试版本还是发布版本?
它能找到您使用的所有引用吗?

Server 2008中内置的.NET framework是v3.0。您的应用程序是否需要.NET v3.5?如果是这样,您需要在Server2008中安装.NET3.5可再发行软件包


Server 2008内置的.NET framework是v3.0。您的应用程序是否需要.NET v3.5?如果是这样,您需要在Server2008中安装.NET3.5可再发行软件包


您使用的是什么开发环境?听起来好像您的项目被配置为使用C++运行时DLL,而不是在目标框上安装的版本。 在您的开发环境中应该有一个
VC_Redist.exe
,您可以在目标框上复制并执行它,以安装必要的运行时程序集


或者,转到每个项目、EXE和DLL,并确保项目属性->C/C++->代码生成页面下的“运行时库”设置设置设置为非DLL选项之一(/MTd或/MT)。这将不需要在目标PC上安装单独的运行时,但会使您的EXE和DLL稍大一些。

您使用的是什么开发环境?听起来好像您的项目被配置为使用C++运行时DLL,而不是在目标框上安装的版本。 在您的开发环境中应该有一个
VC_Redist.exe
,您可以在目标框上复制并执行它,以安装必要的运行时程序集


或者,转到每个项目、EXE和DLL,并确保项目属性->C/C++->代码生成页面下的“运行时库”设置设置设置为非DLL选项之一(/MTd或/MT)。这将绕过在目标PC上安装单独运行时的需要,但是会使你的exe和DLL变大。

但是我的应用程序不会运行,即使我在w2k8 64位机器上使用regasm.exe注册com…但是我的应用程序不会运行,即使我在w2k8 64位机器上使用regasm.exe注册com…我的test.exe不会在w2k8机器上运行做什么???/我的test.exe不会在w2k8机器上运行做什么???/请添加真正的错误消息。这是一个非常不寻常的问题,这个问题有什么不同?不,两者都是相似的坚果我的问题没有得到纠正…这是我在尝试所有可能的方式,…Dupe本身就有几个Dupe发布了这个user@Cute:仅添加更多重复并不能解决您的问题。请添加真正的错误消息。这是一个非常不寻常的问题,这个问题有什么不同?不,两者都是相似的坚果我的问题没有得到纠正…这是我在尝试所有可能的方式,…Dupe本身就有几个Dupe发布了这个user@Cute:仅仅添加更多的重复并不能解决您的问题。