C# 編譯成一個exe檔案
阿新 • • 發佈:2018-11-10
去掉生成的 XXX.vshost.exe XXX.vshost.exe.config XXX.vshost.exe.manifest檔案
選中工程右鍵屬性->除錯
去掉啟用偵錯程式下的 啟用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檔案最好不要刪除