DLL包含什么?调试DLL和发布DLL之间有什么区别?

DLL包含什么?调试DLL和发布DLL之间有什么区别?,dll,Dll,我有一个Windows服务(发布版本),我替换了一个在调试模式下构建的DLL,并尝试启动该服务。它引发了一个错误,无法加载文件或程序集“名称”或其依赖项之一。试图加载格式不正确的程序,但当我替换在发布模式中构建的DLL时,服务成功启动。我的问题是为什么在调试模式和发布模式下构建的DLL有区别。区别是什么区别在于调试构建包含调试所需的额外数据(符号名称等),并链接到使用dll的调试版本(通常是运行时dll) 后者会给你带来麻烦 如果需要调试信息,请尝试在发布版本中使用日志文件,而不是在站点上运行调

我有一个
Windows服务
(发布版本),我替换了一个在调试模式下构建的DLL,并尝试启动该服务。它引发了一个错误,无法加载文件或程序集“名称”或其依赖项之一。试图加载格式不正确的程序,但当我替换在发布模式中构建的DLL时,服务成功启动。我的问题是
为什么在调试模式和发布模式下构建的DLL有区别。区别是什么

区别在于调试构建包含调试所需的额外数据(符号名称等),并链接到使用dll的调试版本(通常是运行时dll)

后者会给你带来麻烦


如果需要调试信息,请尝试在发布版本中使用日志文件,而不是在站点上运行调试版本。

这两者之间的最大区别在于: 在调试构建中,在调试应用程序时会发出完整的符号调试信息以提供帮助,同时也不会考虑代码优化。 在发布版本中,不会发出符号调试信息,代码执行也会得到优化。 此外,由于符号信息不会在发布版本中发出,因此最终可执行文件的大小小于调试可执行文件

通常位于bin目录中的文件是已编译的源代码,除非您对其进行分解,否则将无法对其进行修改

您需要源代码,然后对源代码进行更改,然后将其编译为新的DLL。

从未看到“未根据正确模式生成等”错误消息。你能更好地记录这条信息吗?