【问题标题】:References added in VS aren't being recognizedVS 中添加的引用未被识别
【发布时间】:2013-03-18 21:46:09
【问题描述】:

我正在使用 .NET Framework 3.0 和 Visual Studio 2012 制作 VB.NET 安装程序。要解压缩安装程序获得的文件,我正在使用 ICSharpCode.SharpZipLib.Zip

当 .ZIP 文件下载并尝试解压缩时,我收到一条错误消息,指出找不到 SharpZipLib 的 DLL 文件:

C:\Users\Bailey\Documents\Visual Studio 2012\net-20\ICSharpCode.SharpZipLib.dll

但是,在 VS2012 上以调试模式运行时,它工作得非常好。 怎么了?

【问题讨论】:

  • DLL 应该在您的Bin\Release 文件夹中。尝试将其复制到那里并运行程序。
  • 好吧,我就是这么做的。但是如果我想分发我的 .exe 怎么办?我需要随它一起提供 DLL 吗?
  • 是的,如果您的最终用户需要使用该 DLL(听起来他们会这样做),那么您需要将 DLL 与您的程序一起提供。不要忘记检查SharpZipLib 的许可证。

标签: vb.net reference file-not-found dllnotfoundexception


【解决方案1】:

DLL 应该在您的Bin\Release 文件夹中,因此您必须将其复制到那里。如果最终用户需要使用这个程序集,那么您还必须将 DLL 与您的程序一起分发(检查 SharpZipLib 的许可证以了解有哪些条件)。

【讨论】:

  • 只是为了验证一下,如果我分发没有DLL的.exe,然后在运行时将DLL下载并移动到可执行文件的目录中,它仍然可以工作吗?
  • 不确定如果程序实际运行它会起作用。如果您想为此计划,那么您的程序应该动态加载程序集(例如stackoverflow.com/questions/1137781/…)以确保安全。否则,您的程序很有可能会抛出错误,因为它希望程序集在首次加载时就存在。但是,如果您的最终用户要在启动程序之前手动添加程序集,那么它应该可以工作。当然,您还想在分发之前对其进行测试:)
  • 下载到工作目录成功。非常感谢。
  • 没问题,很高兴我能帮上忙!
猜你喜欢
  • 2021-11-22
  • 2022-01-03
  • 1970-01-01
  • 2016-07-20
  • 2012-02-28
  • 2013-04-10
  • 2016-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多