Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将dll转换为csproj ou sln_C#_.net_Dll_Reflector - Fatal编程技术网

C# 将dll转换为csproj ou sln

C# 将dll转换为csproj ou sln,c#,.net,dll,reflector,C#,.net,Dll,Reflector,我从事一个现有的ASP.NET MVC项目。该解决方案使用FluentNHibernate成分(V1.0.0) 前一个团队中的某个人(解决方案是MVC2)修改了组件源(为了改变行为)。该修改和编译的dll包含在MVC解决方案中 现在,我将解决方案转换为MVC5,并通过NuGet软件包更新现有库。不幸的是,我不能对FluentNHibernate组件做同样的操作,因为如果我更新它,它会失去修改的行为,如果我使用更新的版本,它会产生错误 已修改组件的源不可用。我能做什么 我决定从gitHub获得Fl

我从事一个现有的ASP.NET MVC项目。该解决方案使用FluentNHibernate成分(V1.0.0)

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

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

已修改组件的源不可用。我能做什么

我决定从gitHub获得FluentNHibernate版本1.0.0,比较项目文件,注意差异,并将其包含在实际的(v1.4.0.0)FluentNHibernate代码中

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

是否有外接程序或其他东西可以将dll转换为项目

我知道(并且我使用)红门的反射器,但我想从dll中获取所有必要的c#文件,而不仅仅是查看类定义代码。

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

小心如果你的dll/exe被混淆了,结果代码将很难被读取(你将不得不大量使用rename)

在dotPeek和JustDecompile中,右键单击加载的dll,然后选择“创建项目”(或“导出到项目”)。您将获得所有C#文件(或vb.net)和项目文件


在某些情况下,这些工具之一将无法反编译。您可以测试其他工具,它可以工作…

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

小心如果你的dll/exe被混淆了,结果代码将很难被读取(你将不得不大量使用rename)

在dotPeek和JustDecompile中,右键单击加载的dll,然后选择“创建项目”(或“导出到项目”)。您将获得所有C#文件(或vb.net)和项目文件


在某些情况下,这些工具之一将无法反编译。您可以测试其他工具,它可以工作…

JetBrains dotPeek或Telerik JustDecompile可以从dll中生成所有C#文件和项目文件(如果可以反编译),不要期望使用dotPeek获得可读代码:b@LucasAbilidebob为什么?我刚刚测试了它,代码是完全可读的。如果它没有被明显地驱散;)JustDecompile稍微好一点,但有时它无法在dotPeek可以的情况下反编译。只需使用这两种方法进行测试,并选择更好的结果;)@Xaruth,你能回答一下这个问题吗?我安装了JustDecompile,似乎work@LucasAbilidebob当前位置我刚刚测试了dotPeek。结果与JustDecompile类似。代码是可读的。但它为…添加了代码。。。匿名类型:)JetBrains dotPeek或Telerik JustDecompile可以从dll中生成所有C#文件和项目文件(如果可以反编译的话),不要期望使用dotPeek生成可读的代码:b@LucasAbilidebob为什么?我刚刚测试了它,代码是完全可读的。如果它没有被明显地驱散;)JustDecompile稍微好一点,但有时它无法在dotPeek可以的情况下反编译。只需使用这两种方法进行测试,并选择更好的结果;)@Xaruth,你能回答一下这个问题吗?我安装了JustDecompile,似乎work@LucasAbilidebob当前位置我刚刚测试了dotPeek。结果与JustDecompile类似。代码是可读的。但它为…添加了代码。。。匿名类型:)一些模糊的工具可以避免反编译,比如EAZFOUSCATOR。试试看它是否有效;)我使用JustDecompile,它可以将dll转换为解决方案。。。不幸的是,这几乎帮不上我的忙,因为未修改的文件(来自github)和已修改的文件(来自dll)几乎没有可比性。函数的位置不同,所以像WinMerge这样的比较工具不是很有用…转换代码->IL->代码会产生一些差异。您可以尝试编译新版本并使用相同的工具进行反编译(JustDecompile),这样就不用比较IL->旧代码和新代码,而是比较IL->旧代码和IL->新代码。您可以有更少的差异,也可以是无用的…一些模糊的工具可以避免反编译,比如eazfouscator。试试看它是否有效;)我使用JustDecompile,它可以将dll转换为解决方案。。。不幸的是,这几乎帮不上我的忙,因为未修改的文件(来自github)和已修改的文件(来自dll)几乎没有可比性。函数的位置不同,所以像WinMerge这样的比较工具不是很有用…转换代码->IL->代码会产生一些差异。您可以尝试编译新版本并使用相同的工具进行反编译(JustDecompile),这样就不用比较IL->旧代码和新代码,而是比较IL->旧代码和IL->新代码。你可以有更少的差异,也可以只是没用。。。