Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-在exe中嵌入dll-FileNotFoundException_C#_Dll_Embed_Exe_Filenotfoundexception - Fatal编程技术网

C#-在exe中嵌入dll-FileNotFoundException

C#-在exe中嵌入dll-FileNotFoundException,c#,dll,embed,exe,filenotfoundexception,C#,Dll,Embed,Exe,Filenotfoundexception,我只需要一个文件来启动我的程序,这就是为什么我想在我的exe中嵌入我的dll 我需要2个dll的一个它的工作 这是我的程序: using System; using System.Linq; using System.Reflection; using System.Windows.Forms; namespace _4_Gewinnt___Client { static class Program { /// <summary> /// D

我只需要一个文件来启动我的程序,这就是为什么我想在我的exe中嵌入我的dll

我需要2个dll的一个它的工作

这是我的程序:

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);
            }
        }
    }
}
使用系统;
使用System.Linq;
运用系统反思;
使用System.Windows.Forms;
名称空间\u 4\u Gewinnt\u\u客户端{
静态类程序{
/// 
///这是一个很好的例子。
/// 
[状态线程]
静态void Main(){
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppDomain.CurrentDomain.AssemblyResolve+=新的ResolveEventHandler(CurrentDomain_AssemblyResolve);
运行(新客户端());
}
静态程序集CurrentDomain_AssemblyResolve(对象发送方,ResolveEventArgs args args){
string assemblyName=args.Name.Split(',').First();
使用(var stream=Assembly.getExecutionGassembly().GetManifestResourceStream(“\u 4\u Gewinnt\u\u Client.+assemblyName+”.dll”)){
byte[]assemblyData=新字节[stream.Length];
读取(assemblyData,0,assemblyData.Length);
返回Assembly.Load(assemblyData);
}
}
}
}
但是如果我运行我的应用程序,我会得到一个FileNotFoundException

顺便说一句,构建操作设置为“嵌入资源”。并设置了引用,“本地副本”为false。 如果我将“Local Copy”设置为“true”,则一切正常,但我不需要任何其他文件(除了.exe)


我希望你能理解一切,我的英语不是最好的:)

是汇编文件名是
\u 4\u Gewinnt\u\u\u客户机。“+assemblyName+”.dll
?dll的名称是:SharpUpdate.dll我的名称空间被称为“\u 4\u Gewinnt\u\u客户机”和项目路径的汇编文件相对路径是什么?路径是正确的,因为一个dll可以工作,但另一个不是!