2011-07-06 67 views
2

我有一个Windows Servicea发布内部版本),我用Debug模式替换了一个DLL并试图启动该服务。它引发了一个错误无法加载文件或程序集“名称”或其依赖项之一。试图加载程序的格式不正确,但是当我替换发布模式中构建的DLL时,服务已成功启动。我的问题是why is there a difference between a DLL built in Debug mode & in Release mode. What is the differenceDLL包含什么?调试DLL和发布DLL有什么区别?

+0

从来没有见过“没有建立反对适当的模式等”的错误信息。您当然可以更好地记录该消息? –

回答

6

这两者之间最大的不同在于: 在调试版本中,完整的符号调试信息被发出以帮助调试应用程序,并且不考虑代码优化。 在发布版本中,不会发出符号调试信息,并且代码执行已经过优化。 另外,因为符号信息不是在发布版本中发布的,所以最终可执行文件的大小比调试可执行文件的大小要小。

DLL通常位于bin目录中的文件是已编译的源代码,除非您将它解散,否则您将无法修改它。

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

3

不同之处在于调试版本包含调试所需的额外数据(符号名称等)被链接到使用DLL的调试版本(通常是运行时DLL)。

后者是你造成问题的原因之一。

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