別の DLL を使用する必要がある DLL を作成しています。たとえば、私の DLL では、「Ionic.Zip」コンポーネントを使用してファイルを解凍したいと考えています。どうすればできますか?
Resources から DLL を使用するコードを見つけましたが、コードでの使用方法がわかりません: これは関数です:
private System.Reflection.Assembly ResolveAssemblies(object sender, System.ResolveEventArgs e)
{
dynamic desiredAssembly = new System.Reflection.AssemblyName(e.Name);
if (desiredAssembly.Name == "Ionic_Zip")
{
return System.Reflection.Assembly.Load(Properties.Resources.Ionic_Zip);
}
else {return null; }
}
そしてform_loadで:
AppDomain.CurrentDomain.AssemblyResolve += ResolveAssemblies;
しかし、私がそれを使用したいとき、Ionic_Zipでエラーが発生します。たとえば、私の WinForm アプリには、Ionic_Zip コンポーネントを使用するファイルを解凍する次のような関数があります。
private void UnzipUpdtFile()
{
// extract all files in an existing zip that uses encryption
using (var zip = Ionic.Zip.ZipFile.Read(UpdFilePCAdrss + @"\" + spl[spl.Length - 1]))
{
zip.Password = ZipPassword;
zip.ExtractAll(UpdFilePCAdrss);
}
}
この関数でどのように使用できますか?