1. 程式人生 > >C# 編譯成一個exe檔案

C# 編譯成一個exe檔案

去掉生成的 XXX.vshost.exe XXX.vshost.exe.config XXX.vshost.exe.manifest檔案

  1. 選中工程右鍵屬性->除錯

  2. 去掉啟用偵錯程式下的 啟用Visual Studio承載程序勾選
    這裡寫圖片描述

去掉生成的XXX.pdb檔案

1.選中工程右鍵屬性->生成->高階
這裡寫圖片描述
2.設定高階生成設定中的輸出->除錯資訊為none
這裡寫圖片描述

將dll嵌入到程式中
1.將dll包括在專案中在屬性裡設定“生成操”為“嵌入的資源”,“複製到輸出目錄”為“不復制”
2.新增引用,在引用那裡右鍵屬性選擇複製到本地為False
3.在Main函式中訂閱AppDomain.CurrentDomain.AssemblyResolve
新增程式碼如下

 private System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
            String resourceName = "應用程式名.dll所在目錄." + new AssemblyName(args.Name).Name + ".dll";
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
            {
                if
(stream == null) return null; Byte[] assemblyData = new Byte[stream.Length]; stream.Read(assemblyData, 0, assemblyData.Length); return Assembly.Load(assemblyData); } }

已經做了上面設定後編譯會生成兩個檔案XXX.exe 和XXX.exe.config檔案 XXX.exe.config檔案最好不要刪除