【发布时间】:2015-05-21 07:43:34
【问题描述】:
我正在尝试创建一个带有嵌入式资源的 exe。一切正常,但如果 DevExpress.Utils.dll 与 .exe 不在同一个文件夹中,应用程序就会崩溃! 尽管所有 dll 文件都作为嵌入式资源包含在内,但我引用了这些。 奇怪的是它只有 DevExpress.Utils.dll。 我正在加载未找到的 Dll:
[STAThread]
static void Main()
{
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainOnAssemblyResolve;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MyForm());
}
private static Assembly CurrentDomainOnAssemblyResolve(object sender, ResolveEventArgs args)
{
// the ddls are in a lib folder.
String resourceName = "MyApplication." + "lib." + new AssemblyName(args.Name).Name + ".dll";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
if (stream != null)
{
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
}
return null;
}
【问题讨论】:
标签: c# dll devexpress assemblies