我在C#4.0中开发了一个winforms应用程序,它使用.dll与USB设备通信。从Visual Studio 2010,此应用程序工作没有问题。引用的.dll将复制到bin文件夹。
当我尝试直接在目标计算机上运行应用程序时,它没有做任何事情。我已经向记录消息的应用程序添加了一个未处理的异常处理程序。在目标计算机上本地运行时,它不会记录任何内容。
当我将应用程序放在网络文件夹上并从我的开发p.c中运行它(通过网络)时。它仍然工作正常,但从我的目标p.c.它现在记录“无法加载文件或程序集'sub20dnc.dll'或其依赖项之一。无法找到指定的模块。”
但正如我所说,.dll被复制到bin文件夹:sub20dnc.dll与可执行文件位于同一目录中。 sub20dnc.dll是已在p.c上完成的安装的一部分。所以应该满足它的依赖性。我正试图在解决为什么在本地目标机器上什么都没发生之前解决这个错误。
有关如何解决此问题的任何想法?
谢谢!
答案 0 :(得分:3)
听起来他们错过了对机器的依赖,而不是你的.dll不在那里。也就是说,有问题的.dll依赖于“无法找到”。这是我总是看到的错误,当其他东西不是更晚的年份。
尝试在他们的计算机上运行Depends.exe,检查您的计算机具有的.dll。此外,我是否可以建议将软件插入到具有您尝试工作的最基本目标计算机配置的测试计算机中。也就是说,不是最新和最好的更新。
答案 1 :(得分:1)
答案 2 :(得分:0)
这是一个老问题,但我有这个特定DLL的解决方案。
sub20dnc.dll(或sub20dnc_v4.dll,.NET 4版本)是一个围绕sub20.dll的.NET包装器,SUB-20 driver安装到Windows \ System32和Windows \ SysWOW64。当您在开发计算机上运行该程序时,sub20dnc.dll从这两个目录之一加载sub20.dll。
您可以在目标计算机上安装SUB-20驱动程序,或者在sub20dnc.dll之外将sub20.dll与您的应用程序捆绑在一起。如果您选择捆绑sub20.dll,请确保您从开发计算机中为您的应用程序的目标平台获取正确的sub20.dll版本。 (这些位置是正确的only if using a 64-bit program to copy the file!)