是否可以将调试程序集转换为发布程序集?

Is it possible to convert a debug assembly into a release assembly?

给定一个处于调试模式的源程序集 (dll),是否有生成发布模式程序集的方法?

注意:这个问题源于需要在发布模式下将 dll 部署到生产环境中,因为我们不再拥有源代码,只有调试模式下的 dll。

对您的直接问题的简短回答是 "no." 这是因为原始 C# 代码中可能有 #if DEBUG 不再存在于已编译的 MSIL 中。

长答案部分 A) 在大多数情况下,它应该无关紧要,当然不至于 C 或 C++ 有不同的 运行-time 库用于调试与调试的程度。 发布。也许最大的缺点是您将缺少发布优化(and/or 额外的仅调试代码的开销)。

较长的答案 B 部分)如果您确实 需要在发布模式下进行某些操作(例如,为了优化),您可以尝试 使用反编译器以获取一些 C# 代码并在发布模式下重新编译它。