从常见问题解答:
dllnotfound 异常
如果你得到 dllnotfound 异常,那么这意味着你没有在步骤 6 和 7 中复制新创建的 dll。
这是一个一般错误,这意味着尚未找到可执行文件使用的 dll。这并不一定意味着直接引用的dll就是问题所在。通常,如果您没有复制 gdcm.dll 和相关库,而是将 gdcmsharpglie.dll 设置为您的程序引用之一,您将收到此错误。这并不意味着缺少 gdcmsharpglie,而是意味着缺少底层库。
要找出缺少哪个 dll,请尝试使用 Dependency Walker。这个程序会找到丢失的库,然后你可以把它放在可执行文件的路径中。
解决此问题的一种方法是在您的应用程序树中设置一个“包含”目录(假设您在 Windows 中,而不是 Mono——Mono 可能不同),其中包含 gdcm 库。从那里,您可以为您的项目创建一个构建后事件,以便在您进行构建时复制文件。每次进行构建时,这种方法都需要一些时间,但在您试图找出库在哪里以及为什么会出现 dll not found 异常时可以节省时间。
- 打开您的解决方案
- 右键单击您的项目
- 选择“构建事件”(从顶部向下的第三个选项卡)
- 将一些dos命令放在'post-build event command line'框中。我有
mkdir Debug
mkdir Release
copy ..\..\..\Includes\gdcm\*.dll ..\Debug\*.dll
copy ..\..\..\Includes\gdcm\*.dll ..\Release\*.dll
那里有两个 mkdir,因此如果您从头开始重建,则不会在构建时出现错误。也就是说,如果您正在构建调试并且没有发布目录,则复制行会给您一个错误。如果您不复制到这两个目录,那么当您一直在调试之后去构建您的发布版本时,您的发布版本将无法正常工作,当您发现忘记复制 dll 时,您会非常沮丧发布和调试。