我有两个示例项目的解决方案。一个是exe窗体最终程序,一个是DLL库。我看到,最终的exe在不同的计算机上运行完美。所以..在与他人共享我的程序时,我是否必须在我的FirstProject.exe中另外添加SecondProject.dll?或者dll文件是否已包含在FirstProject.exe文件中?
我很困惑因为我在几台计算机上测试过FirstProject.exe文件而且效果很好。我错过了什么吗?
[已解决] 我的答案中的详细信息..
答案 0 :(得分:2)
不,DLL程序集必须与exe一起分发。它在没有错误的不同计算机上工作的唯一原因是,你的exe实际上并不使用DLL。首次使用类或从该程序集中调用方法时会加载dll。
另一个原因可能是您捕获了代码中的所有异常,包括DLLNotFoundException
以及您的代码正在运行的SEEMS,而实际上它并没有按照您的预期执行...
在任何情况下,您都无法静态链接到.NET中的库。
答案 1 :(得分:0)
如果有问题的DLL没有延迟加载,并且您的应用程序在没有所述DLL的情况下工作,则不需要它。你可以安全地删除它。
答案 2 :(得分:0)
如果你没有在dll中调用任何函数或者没有在exe中使用dll那么 dll不需要包含。
答案 3 :(得分:0)
解决..我不知道为什么但是清洁/重建解决方案|项目无法正常工作。在手动删除两个项目中的bin和obj子目录以及清理解决方案重建之后,一切都开始工作(或停止)。
现在没有dll就行不通了。因为它不应该。