参考.dll

时间:2017-07-12 07:34:36

标签: c# dll reference sevenzipsharp typeinitializeexception

目前使用WinForms和7zip解包器制作一个小程序。为了更容易添加对“SevenZipSharp.dll”的引用,一切正常,直到我想发布(调试)项目。当我在桌面上移动“.exe”文件时出现错误:

  

System.IO.FileNotFoundException:无法加载文件或   程序集“X”或其依赖项之一“。

我在.dll文件中嵌入资源集+复制本地:设置为true

如何在没有当前目录中的.dll的情况下使这个程序工作。

修改

我是通过使用

完成的
  

System.Reflections

Solution here

但我现在遇到了另一个问题

     System.TypeInitializationException: 'The type initializer for 'SevenZip.SevenZipLibraryManager' threw an exception.. ---> System.ArgumentException:  Path has an illegal format
   w System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   w System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   w System.IO.Path.InternalGetDirectoryName(String path)
   w System.IO.Path.GetDirectoryName(String path)
   w SevenZip.SevenZipLibraryManager..cctor()
   --- End of inner exception stack trace ---

   w SevenZip.SevenZipLibraryManager.SetLibraryPath(String libraryPath)
   w SevenZip.SevenZipBase.SetLibraryPath(String libraryPath)

1 个答案:

答案 0 :(得分:0)

您可能希望将引用的库放在同一个文件夹中,否则您也可以在GAC中注册它们。