[STAThread]
static void Main()
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);
ApplicationSetConfig();
ApplicationStart();
}
private static Assembly MyResolveEventHandler(object sender, ResolveEventArgs args)
{
Assembly thisAssembly = Assembly.GetExecutingAssembly();
string resourceName = null;
string fileName = args.Name.Substring(0, args.Name.IndexOf(',')) + ".dll";
foreach (string name in thisAssembly.GetManifestResourceNames())
{
if (name.EndsWith(fileName))
{
resourceName = name;
}
}
if (resourceName != null)
{
using (Stream stream = thisAssembly.GetManifestResourceStream(resourceName))
{
if (stream != null)
{
byte[] assembly = new byte[stream.Length];
stream.Read(assembly, 0, assembly.Length);
Console.WriteLine("Dll file load : " + resourceName);
return Assembly.Load(assembly);
}
}
}
return null;
}
Ps: Dll 버전이 변경시 주의해서 변경해야함.
참조 링크 : http://trudy.kr/146
[C#] dll을 포함한 단일 exe배포 방법
일반적으로 프로그램을 배포시 exe파일과 Applica…
trudy.kr
SMALL