C# 在服务器2008 x64上安装VB6运行时

C# 在服务器2008 x64上安装VB6运行时,c#,windows,dll,vb6,C#,Windows,Dll,Vb6,我已将所有用户从windows 7计算机移动到windows Server 2008远程桌面。他们目前使用的所有应用程序都是在vb6中开发的(新的应用程序目前正在c#Net中开发),需要暂时使用 这些应用程序在Windows7中似乎运行良好。我就是不能让他们在2008服务器上玩得很好。我确实尝试运行dependency walker,但发现它缺少“msvbvm60.dll”。跟踪到实际的VB6运行时。试图找到服务器2008 x64的VB6运行时的下载,但没有成功。所以我只是尝试将“msvbvm6

我已将所有用户从windows 7计算机移动到windows Server 2008远程桌面。他们目前使用的所有应用程序都是在vb6中开发的(新的应用程序目前正在c#Net中开发),需要暂时使用

这些应用程序在Windows7中似乎运行良好。我就是不能让他们在2008服务器上玩得很好。我确实尝试运行dependency walker,但发现它缺少“msvbvm60.dll”。跟踪到实际的VB6运行时。试图找到服务器2008 x64的VB6运行时的下载,但没有成功。所以我只是尝试将“msvbvm60.dll”文件放在c:\windows\system32\和c:\windows\SysWOW64中

它说在SysWow64文件夹中已经有一个名为“msvbvm60.dll”的文件。所以我的问题是,为什么它不起作用?windows 2008似乎已经在机器上运行了。但是depends说“msvbvm60.dll”丢失了…:/


想法?

这是一个大胆的猜测,但是你能在兼容模式下运行它们吗?(右键单击>属性>兼容性)

已解决

这个问题与DEP有关

此问题的根本原因是在Windows Server 2008 R2中更改了tsappcmp.dll模块(远程桌面服务应用程序兼容性dll)初始化的时间,从而导致应用程序在建立指向dll中函数的链接之前调用dll函数

我解决这个问题的方法很简单!我只是将我的应用程序排除在数据执行预防过程之外,它允许应用程序及其所有依赖项及时加载而不会出现故障

用法:

rundll32 sysdm.cpl, NoExecuteAddFileOptOutList "FullPathToExecutable"
例如:

rundll32 sysdm.cpl, NoExecuteAddFileOptOutList "C:\Program Files (x86)\MyApplication\MyApplication.exe"

资料来源:


有趣。。。我们在server 2008中有50多个用户运行VB6 ActiveX DLL。。。没有问题,除了,代码是一团糟@retailcoder更喜欢在安装文件中包含依赖项。Server2008不是有win7吗?它一定是你的安装程序中缺少了什么。。。我认为,所有这些说法都非常有效,但就目前情况而言,当我在任何Windows7机器上运行相同的安装程序时,应用程序运行得非常好。此外,我必须再次指出应用程序在Server2008上安装后无法运行的原因。缺少的文件是“msvbvm60.dll”,这是一个标准的vb6运行时。。。这不是我需要包含在应用程序中的特殊文件。这是一个所有vb6应用程序都基于的文件。;)你试过这个下载吗?试过了,所有的OSs都不起作用了…:我试过的第一件事。