答案 0 :(得分:1)
正如GSerg在评论中列出的那样,这似乎是Microsoft知识库文章896292中记录的已知问题:You receive a "The remote procedure call failed" error message when you upgrade a Visual Basic 6.0 project to Visual Studio .NET 2003 or Visual Studio 2005 on Windows Server 2003 SP1 or on Windows XP SP2
要在此处重现解决方案:
原因
出现此现象的原因在于VBU.exe工具与数据执行保护(DEP)选项存在兼容性问题。
注意:使用Microsoft Visual Studio .NET IDE中的Visual Basic升级向导升级Visual Basic 6.0项目时,将启动VBU.exe工具。
解决方法
要解决此问题,请将VBU.exe工具添加到DEP排除列表中。为此,请按照下列步骤操作:
- 单击“开始”,单击“控制面板”,然后双击“系统”。将出现“系统属性”对话框。
- 单击“高级”选项卡,然后单击“性能”下的“设置”。将出现“性能选项”对话框。
单击“数据执行保护”选项卡。验证是否已选中除我选择的那些选项以外的所有程序和服务的开启DEP
注意默认情况下,在Microsoft Windows Server 2003 Service Pack 1(SP1)中选择“为我选择的所有程序和服务启用DEP”选项。
- 单击“添加”。找到并单击以选中VBU.exe。单击“打开”。
- 在警告框中,单击“确定”。 VBU.exe现在出现在DEP程序区域中。
- 单击“应用”,然后单击“确定” 好。将出现一个对话框,指出您必须重新启动计算机才能使设置生效。单击“确定”。
醇>
答案 1 :(得分:0)
尝试将项目划分为小项目(或对项目的大部分内容进行评论),然后在每个小项目中再试一次。 我们的想法是找到生产错误的函数。
我的直觉告诉我可能是DLL或OCX问题。尝试查看所有外部DLL或OCX调用并从原始项目中删除,然后再次尝试升级。
答案 2 :(得分:0)
大多数将VB6项目迁移到.Net的开发人员甚至都没有尝试移植它们。即使使用第三方“转换”软件,这项工作也会非常繁琐。这么多,大多数开发人员只是完全重写应用程序。考虑一下转向另一种语言。事实上,一些开发人员利用这个机会将其移植到C#。我是一个顽固的VB6用户/粉丝,但是我试图移植我的200表格会计应用程序,我只是用C#重写它。我开始移植它,试过第三方转换应用程序,但是不值得。