我有一个Windows Service
(一个版本构建),我替换了一个在Debug模式下构建的DLL并试图启动该服务。它抛出了错误无法加载文件或程序集“名称”或其依赖项之一。尝试加载具有不正确格式的程序,但是当我替换内置于发布模式的DLL时,服务已成功启动。我的问题是why is there a difference between a DLL built in Debug mode & in Release mode. What is the difference
。
答案 0 :(得分:7)
这些之间的最大区别是: 在调试版本中,发出完整的符号调试信息以帮助调试应用程序,并且不考虑代码优化。 在发布版本中,不会发出符号调试信息,并且优化了代码执行。 此外,由于在发布版本中未发出符号信息,因此最终可执行文件的大小小于调试可执行文件的大小。
和通常位于bin目录中的DLL文件是已编译的源代码,除非你对它进行解析,否则你将无法对其进行修改。
您需要源代码,然后对源代码进行更改,然后将其编译为新的DLL。
答案 1 :(得分:4)
不同之处在于调试版本包含调试所需的额外数据(符号名称等)和链接使用dll的调试版本(通常是运行时dll)。
后者是给你带来麻烦的那个。
如果您需要调试信息,请尝试使用发布版本的日志文件,而不是在站点上运行调试版本。