Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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# 在另一个文件夹中获取Application.exe,不启动_C#_Dll_App Config_Launch - Fatal编程技术网

C# 在另一个文件夹中获取Application.exe,不启动

C# 在另一个文件夹中获取Application.exe,不启动,c#,dll,app-config,launch,C#,Dll,App Config,Launch,我是.net应用程序开发新手。我提出了一个小小的申请。如果我只将一个application.exe文件从项目文件移到另一个文件夹并尝试启动,则它不会启动。但如果我带上所有的.dll和配置文件,它就可以启动了。现在我只想用.exe文件启动应用程序。那我该怎么办?我必须把它们都打包在一起吗?如果是,那么怎么做?调查 如果您绝对希望只有一个二进制文件,可以使用它将.NET程序集合并到单个程序集中 但通常情况下,您会将应用程序与其依赖项一起分发,并使用一些安装项目对其进行打包。那么,bin/Debug或

我是.net应用程序开发新手。我提出了一个小小的申请。如果我只将一个application.exe文件从项目文件移到另一个文件夹并尝试启动,则它不会启动。但如果我带上所有的.dll和配置文件,它就可以启动了。现在我只想用.exe文件启动应用程序。那我该怎么办?我必须把它们都打包在一起吗?如果是,那么怎么做?

调查

如果您绝对希望只有一个二进制文件,可以使用它将.NET程序集合并到单个程序集中


但通常情况下,您会将应用程序与其依赖项一起分发,并使用一些安装项目对其进行打包。

那么,bin/Debug或Release文件夹中的所有文件就是运行应用程序/exe所需的文件

有许多关于如何创建安装项目以创建MSI以在任何计算机上安装应用程序的指南。这将处理所有引用、文件和设置


作为一名.NET编程新手,您刚刚开发的小应用程序究竟为什么需要一堆DLL?每个DLL对应于解决方案中的一个单独项目,设置为输出库。对于小型应用程序,不太可能需要以这种方式分离代码。只需将所有内容放在一个项目中并生成一个EXE。当然,请注意,您的用户仍然需要在其计算机上安装.NET Framework。复制EXE文件可能不够。研究使用一个可以自动执行此过程的安装程序。@CodyGray我怀疑他的解决方案中有多个项目,很可能他使用的是项目中包含的一两个NuGet包,因此dll是第三方的。有比现在使用ILMerge更好的方法,使用
AppDomain.CurrentDomain.AssemblyResolve
和,查看链接页面中的名称
Mike Barnett
,他是ILMerge的作者,即使他同意如果他知道使用
AssemblyResolve
,他也不会编写ILMerge。您可以使用库之类的工具来自动化该过程。