【问题标题】:Inject a C# file in a DLL在 DLL 中注入 C# 文件
【发布时间】:2016-07-25 22:57:48
【问题描述】:

我有一个用 C# 编写的 DLL,但我没有源代码。我尝试过不同的 C# 反编译器来修改 DLL,但我想是由于 IL 反编译限制,在我尝试重新编译修改时它们都给了我错误。是否可以按顺序将.cs 文件添加到DLL 的根目录或注入方法来添加功能? PS:这不是要破解软件,而是要创建需要修改DLL的游戏模组。

【问题讨论】:

  • 你试过不加修改地编译吗?如果可行,则错误可能在于您的添加。您是否检查了所有参考资料?
  • 未经修改编译也会给我错误。参考文献太多,不知道错误是否来自它们。
  • 为了能够编译,您必须设置一个有效的构建配置,其中还包括设置正确的引用。如果你不这样做,你将无法编译。你遇到了什么错误?

标签: c# dll


【解决方案1】:

您最好的方法可能是围绕 dll 创建一个包装器项目以添加您想要的功能。您的代码可以引用项目而不是 dll。只要类不是密封的,您就应该能够从它们继承。

修改您无权访问的代码可能不是一个好主意。特别是如果将来可以更新 dll。

【讨论】:

    【解决方案2】:

    您还可以创建具有相同命名空间的新 DLL。这可能会让事情看起来好像它们在同一个位置,但这不是最佳做法,而且可能会造成混淆,因为命名空间应该与项目/dll 名称匹配。

    Benjamin 使用包装器的解决方案似乎是合理的。

    【讨论】:

      【解决方案3】:

      .NET Reflector 的 Reflexil 插件可以在 DLL 中注入方法或类,如其创建者在 video 中说明的那样。 它可以防止反编译错误,因为它只是在程序集中注入 IL 代码。

      要安装此插件,请关注these steps

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多