C# 将dll转换为csproj ou sln
我从事一个现有的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转换为项目?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
我知道(并且我使用)红门的反射器,但我想从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->新代码。你可以有更少的差异,也可以只是没用。。。