将dll转换为csproj ou sln

我在一个现有的ASP.NET MVC项目上工作。 该解决方案使用FluentNHibernate组件(v 1.0.0)。

前团队中的某个人(解决方案是MVC2)在其上工作,修改了组件源(为了改变行为)。 修改和编译的dll包含在MVC解决方案中。

现在,我将解决方案转换为MVC 5,并通过NuGet包更新现有库。 不幸的是,我不能用FluentNHibernate组件做同样的事情,因为如果我更新它,它会丢失修改后的行为,如果我使用更新的版本会产生错误。

修改后的组件的来源不可用。 我能做什么?

我决定从gitHub获取FluentNHibernate 1.0.0版本,比较项目文件,注意差异,并将其包含在实际(v 1.4.0.0)FluentNHibernate代码中。

为了比较差异,我需要从(修改的)dll中获取原始代码。

是否有加载项或可以将dll转换为项目的东西
我知道(并且我使用)RedGate的Reflector ,但是我想从dll获取所有必需的c#文件 ,而不仅仅是查看类定义代码。

如果你的dll是用.NET语言(C#/ Vb.NET)创建的,它可以用一些工具反编译,比如JetBrains dotPeek或Telerik JustDecompile。 这些工具可以从dll(或exe)生成所有C#文件和项目文件。

如果您的dll / exe已被混淆,请小心,结果代码将难以读取(您将不得不使用重命名)。

在dotPeek和JustDecompile中,右键单击加载的dll,然后选择“Create Project”(或“Export to project”)。 您将获得所有C#文件(或vb.net)和项目文件。

在某些情况下,其中一个工具将无法反编译。 你可以测试另一种工具,它可以工作……