恢复丢失的VB.net应用程序的方法

恢复丢失的VB.net应用程序的方法,vb.net,visual-studio,compilation,decompiling,Vb.net,Visual Studio,Compilation,Decompiling,我正在尝试从继承的VB.net 2.0应用程序中恢复丢失的代码。我有当前的工作版本,所以我尝试使用RedGate Reflector和Telerik JustDecompile来恢复代码。两者都将成功返回可读的代码文件和VisualStudio项目文件,但当我尝试运行反编译程序时,会收到102条错误消息(使用两个反编译器) 我有一些旧版本的Visual Studio项目,它们运行良好,但解决方案和代码文件的结构完全不同,我担心自那以后程序的更改太多,无法信任这些旧版本 唯一包含的奇数程序集是Sm

我正在尝试从继承的VB.net 2.0应用程序中恢复丢失的代码。我有当前的工作版本,所以我尝试使用RedGate Reflector和Telerik JustDecompile来恢复代码。两者都将成功返回可读的代码文件和VisualStudio项目文件,但当我尝试运行反编译程序时,会收到102条错误消息(使用两个反编译器)

我有一些旧版本的Visual Studio项目,它们运行良好,但解决方案和代码文件的结构完全不同,我担心自那以后程序的更改太多,无法信任这些旧版本

唯一包含的奇数程序集是
SmartCodeDeveloper 1.0.2986.26049
。我怀疑代码最初是在VisualStudio2005中编写的,因为2008和2012都希望在解决方案打开时升级

我还可以做些什么来恢复此程序?我有代码,但有别的东西阻止它运行,我已经走到了死胡同

编辑:

我收到的一些错误消息是:
-“预期语句结束”或“语句不能出现在事件正文中。假定事件结束。”
-对象缺少“RemoveHandler”定义的许多变体。
-对象未声明“由于其保护级别,可能无法访问”

编辑2:

尝试反编译成C有什么好处吗?有没有可能Reflector在转换到这个方面做得更好?不同的.NET framework版本如何?我一直在做2.0,我相信它是在上面开发的。

Reflector将创建非VB代码的代码,即var++。你必须找到它们并修复它们。它还将创建许多不起作用的事件定义。查找类似公共自定义事件定义的代码。删除自定义关键字和事件结束前的所有行。此外,您还需要弄清楚需要哪些导入语句

下面是反射器的一个例子

 Public Custom Event ColumnChanging As DataColumnChangeEventHandler
    AddHandler(ByVal value As DataColumnChangeEventHandler)
        Bid.Trace("<ds.DataTable.add_ColumnChanging|API> %d#" & ChrW(10), Me.ObjectID)
        Me.onColumnChangingDelegate = DirectCast(Delegate.Combine(Me.onColumnChangingDelegate, value), DataColumnChangeEventHandler)
    End AddHandler
    RemoveHandler(ByVal value As DataColumnChangeEventHandler)
        Bid.Trace("<ds.DataTable.remove_ColumnChanging|API> %d#" & ChrW(10), Me.ObjectID)
        Me.onColumnChangingDelegate = DirectCast(Delegate.Remove(Me.onColumnChangingDelegate, value), DataColumnChangeEventHandler)
    End RemoveHandler
End Event

缺少引用也会导致许多错误。

我以前也见过同样的问题。由另一位成员描述。 纠正起来真的很简单。 你有100多个错误的原因通常是因为一些琐碎的事情。。。 例如,像一条没有终点的大路。 然而,由于第一个错误(问题的原因)所产生的阶梯效应,一个简单的错误会使所有其他错误都不同步,因此显示的错误比实际错误的数量要多

最好的解决办法如下

1 - Open your solution
2 - Close all document windows - so no solution documents are displayed
3 - Compile your solution
4 - At this point your errors should be minimised to a much lower amount of errors like maybe 1 to 10 for example.

尝试一下,让我知道在您完成上述操作后,列出了多少错误。

是否有102条不同的错误消息,或者它们似乎有关联?你能在这里说几句话,让我们更好地了解你可能缺少的东西吗?你有没有尝试将生成的代码文件添加到你拥有的visual studio版本中的新项目中?102是它将显示的最大值,可能还有更多。但也有一些更改可以修复多个错误,比如替换丢失的对某个内容的引用。此外,从选项“严格关闭”开始,以消除这些错误,并从反面查看损坏情况engineering@Plutonix,我的一些项目最多出现350个错误。不过,这可能是一个环境设置。@MAW74656,我认为默认情况下,在每个类中都是关闭的。不过,您始终可以在文件的最顶端抛出
选项Strict(当然)。另外,我很确定它是基于一个类一个类(我不知道它是否作为项目级设置可用)删除公共自定义事件?我不需要更改它们,否则我会失去功能吗?我编辑了以前的答案,以更清楚地显示我的意思。因此,如果行相同,我可能需要简单地删除
自定义
,否则?
ReadOnly
是否会出现类似的问题?我没有看到只读问题,但它似乎是可能的。很抱歉听到这个消息,我想这意味着你的错误都是真实的,而不是阶梯效应。
1 - Open your solution
2 - Close all document windows - so no solution documents are displayed
3 - Compile your solution
4 - At this point your errors should be minimised to a much lower amount of errors like maybe 1 to 10 for example.