所以就有了這篇文章啦XD
首先將dll複製到Project內,並將建置動作修改為「內嵌資源」及複製到輸出目錄修改為「不要複製」
將dll加入參考後將該屬性的複製到本機改為「False」,再重新建置專案即可
using System; using System.Reflection; using System.Windows.Forms; namespace TestProject { static class Program { /// <summary> /// 應用程式的主要進入點。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; Application.Run(new Form1()); } private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { Assembly assembly = Assembly.GetExecutingAssembly(); //Project_Namespace.Package_Namespace.dll //Project Namespace = TestProject //Package Namesapce = Newtonsoft.Json using (var stream = assembly.GetManifestResourceStream("TestProject.Newtonsoft.Json.dll")) { byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); stream.Flush(); stream.Close(); return Assembly.Load(buffer); } } } }
參考資料:
How to embed and access resources by using Visual C#
C# WPF, WINDOWS FORM,將DLL包進EXE執行檔,製作單一執行免安裝應用程式