📜  c# 只编译一个 exe - C# (1)

📅  最后修改于: 2023-12-03 15:13:50.790000             🧑  作者: Mango

C# 只编译一个 exe

在C#中,只编译一个exe文件是比较常见的需求。关于如何实现这一点,我们有以下几种方法:

1. 创建控制台应用程序项目

首先,我们可以创建一个控制台应用程序项目,将所有需要的代码都写在Main函数中,然后将项目设置为控制台应用程序类型,这样就能只生成一个exe文件了。

using System;

namespace SingleExeApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

注意,在Visual Studio中创建项目时,需要选择“控制台应用程序”类型,并设置“输出类型”为“控制台应用程序”:

创建控制台应用程序

2. 使用ILMerge工具

ILMerge是一个开源的工具,可以将多个.NET程序集合并成一个程序集,包括exe、dll等。

使用方法:

  1. 将需要合并的程序集和ILMerge.exe放在同一目录下;
  2. 打开CMD命令行工具,进入到这个目录下;
  3. 执行以下命令:ILMerge /out:SingleExeApp.exe SingleExeApp.exe FirstAssembly.dll SecondAssembly.dll

其中,SingleExeApp.exe是最终生成的单个exe文件的名称,FirstAssembly.dllSecondAssembly.dll是需要合并的程序集的名称,可以写多个。

3. 使用.NET Core自带的Publish工具

在.NET Core中,我们可以使用自带的Publish工具,将整个应用程序一起打包成一个exe文件。

使用方法:

  1. 打开控制台,进入项目的根目录;
  2. 执行以下命令:dotnet publish -c Release -r win10-x64 --self-contained true /p:PublishSingleFile=true

其中,-c Release表示使用Release配置构建应用程序;-r win10-x64表示构建为Windows 10 64位操作系统;--self-contained true表示将.NET Core运行时和依赖项都打包到应用程序中;/p:PublishSingleFile=true表示只生成一个exe文件。

总的来说,以上三种方法都可以实现只生成一个exe文件的效果,具体使用哪种方法,根据个人需求和工程实际情况而定。