我只想要一个文件启动我的程序,为什么我想在我的exe中嵌入我的dll。
我需要2个dll才能正常工作。
这是我的programm.cs:
using System;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;
namespace _4_Gewinnt___Client {
static class Program {
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
Application.Run(new Client());
}
static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) {
string assemblyName = args.Name.Split(',').First();
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("_4_Gewinnt___Client." + assemblyName + ".dll")) {
byte[] assemblyData = new byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
}
}
}
但是如果我运行我的应用程序,我会得到一个FileNotFoundException。
BTW,构建操作设置为“嵌入资源”。并且设置了引用并且“Local Copy”为false。 如果我将“Local Copy”设置为“true”,一切正常,但我不想要任何其他文件(.exe除外)。
我希望你能理解一切,我的英语不是最好的:)。