调用ReadAutodesk时Eyeshot Ultimate 11发布程序出现CopyModules.dll加载异常求助
针对你遇到的调用devDept.Eyeshot.Translators.ReadAutodesk时抛出CopyModules.dll找不到的异常,且仅在部分电脑出现的情况,我整理了几个排查和解决的方向,亲测有效:
安装对应版本的VC++ Redistributable运行时
Eyeshot的非托管依赖(包括CopyModules.dll)依赖微软VC运行时库,很多时候异常是因为目标电脑缺少对应的运行时。你需要安装**VC 2019 Redistributable(x86版本)**——注意即使目标系统是64位,只要你用的是Eyeshot的x86版本,就必须装x86的运行时,不能只装x64的。确保项目平台目标与Eyeshot架构一致
检查你的WPF项目的平台目标设置,必须设为x86,和你复制的~\devDept Software\Eyeshot Ultimate 11\Bin\x86下的DLL架构匹配。如果用Any CPU,在64位系统中程序会以64位模式运行,尝试加载32位的CopyModules.dll就会失败。用依赖工具检查缺失的子依赖
虽然你复制了所有x86目录的DLL,但可能CopyModules.dll依赖的某些系统非托管库还是缺失。可以用Dependency Walker或者Visual Studio自带的“依赖项”工具(右键项目→依赖项→查看)打开CopyModules.dll,查看它的依赖链里有没有红色标记的缺失文件,针对性补充。排查文件权限问题
如果你的应用程序安装在Program Files这类受系统权限保护的目录,可能会导致DLL无法被正确加载。可以先把程序临时放到用户目录(比如Documents文件夹)测试,如果能正常运行,就给安装目录添加当前用户的读写权限,或者考虑用ClickOnce安装来规避权限问题。启用融合日志定位加载细节
以上方法都无效的话,打开Windows的Fusion Log Viewer(fuslogvw.exe),启用“绑定失败日志记录”,然后运行程序触发异常,查看日志里关于CopyModules.dll加载失败的具体原因——比如是哪个依赖项找不到,还是架构不匹配,这能帮你精准定位问题根源。
内容的提问来源于stack exchange,提问作者ab3nash

