[C#] 把DLL內崁在主程式中(DLL or EXE)
將要內崁的DLL加入至Visual Studio裡,並將建置動作改成 Embedded Resource
並且加入參考,Copy Local(複製到本機) = false
在 Program.cs 的 Main() 中,讓程式一開始就訂閱解析方式
並加入訂閱的function
並且加入參考,Copy Local(複製到本機) = false
在 Program.cs 的 Main() 中,讓程式一開始就訂閱解析方式
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
並加入訂閱的function
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string resourceName = "YourNameSpace." + new AssemblyName(args.Name).Name + ".dll";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
byte[] assemblyData = new byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
}
當應用程式執行時找不到相依組件時,就會依上述程式碼載入組件
相關系列文章:
留言
張貼留言