2015年3月24日 星期二

手動打包*.dll及exe

AppDomain.CurrentDomain.AssemblyResolve += (sender, senderArgs) => {
                var executingAssembly = Assembly.GetExecutingAssembly();
                var assemblyName = new AssemblyName(executingAssembly.FullName).Name;
                var dllName = new AssemblyName(senderArgs.Name).Name;
                var dllUri = assemblyName + "." + dllName + ".dll";
                using (var resourceStream = executingAssembly.GetManifestResourceStream(dllUri)) {
                    var assemblyData = new Byte[resourceStream.Length];
                    resourceStream.Read(assemblyData, 0, assemblyData.Length);
                    return Assembly.Load(assemblyData);
                }
            };