Saya menggunakan tumpukan layanan saya menggunakan proyek EXE (tugas startup untuk aplikasi biru) karena saya telah menyalin DLL tumpukan layanan berikut & beberapa DLL Azure ke dalam proyek EXE.
Ketika saya membangun proyek EXE ini maka Azure DLL akan dibundel dengan EXE saya tetapi DLL tumpukan layanan tidak akan digabungkan dengan EXE, karena untuk menjalankan EXE saya di mesin apa pun, saya perlu menyalin semua DLL tumpukan layanan secara manual.
Saya telah menggunakan dll layanan tumpukan ini untuk digunakan
JsonServiceClient client = new JsonServiceClient(servicepath);
Apa yang harus saya lakukan untuk menggabungkan semua DLL ini ke dalam EXE saya?
c#
assemblies
exe
ilmerge
servicestack
Arun Rana
sumber
sumber
Alat yang Anda cari disebut ILMerge . Ini adalah alat baris perintah dan dapat digunakan seperti ini:
ilmerge /target:winexe /out:MyApp.exe MyExe.exe ServiceStack.dll ServiceStack.Interfaces.dll ServiceStack.ServiceInterface.dll ServiceStack.Text.dll
Ada juga artikel yang menjelaskan cara menyertakan ILMerge ke dalam penyiapan proyek VS Anda di sini
sumber
Alat hebat untuk menyertakan rakitan yang direferensikan sebagai sumber daya yang disematkan adalah Costura ( add-in Fody ). Penulis Simon Kropp menggambarkannya sebagai berikut:
Hasilnya adalah solusi super sederhana yang hanya perlu mengambil Costura.Fody dari NuGet.
Fitur:
sumber
Coba ILMerge-GUI, penggabungan .NET . Ini berbasis GUI
Ilmerge
yang menghindari semua pekerjaan baris perintah.sumber
Jika Anda memiliki ketergantungan WPF, pilihan Anda mungkin lebih terbatas ..... ILMerge tampaknya tidak menangani ini. Costura.Fody (seperti yang disebutkan oleh Codefox di atas) bekerja dengan sempurna untuk kami namun dan membutuhkan waktu sekitar 5 menit untuk memulai ... pengalaman yang sangat bagus.
Instal dengan Nuget (memilih proyek default yang benar di Package Manager Console).
Ini menggabungkan semua DLL yang ditandai "Salin Lokal" = true dan menghasilkan gabungan .EXE (di samping keluaran standar, yang sebagian besar sekarang tidak diperlukan) yang juga dikompresi. Ini kemudian dapat digunakan secara mandiri.
Lisensi MIT sehingga Anda dapat memodifikasi / mendistribusikan sesuai kebutuhan.
https://github.com/Fody/Costura/
sumber
Lihat proyek ServiceStack.Gap yang menunjukkan beberapa contoh cara ILMerge ServiceStack menjadi satu lintas platform .exe .
ServiceStack juga menyertakan sejumlah fitur lain yang sangat cocok untuk membuat aplikasi tersemat ini di mana:
sumber
.net core 3 memperkenalkan dua opsi baru dalam konfigurasi project, yang disebut single file publish dan trimming.
Anda dapat menemukan detail lebih lanjut tentang dokumen di sini , konfigurasi proyek disalin di sini untuk referensi.
<PropertyGroup> <RuntimeIdentifier>win10-x64</RuntimeIdentifier> <PublishSingleFile>true</PublishSingleFile> </PropertyGroup> <PropertyGroup> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup>
dotnet publish -r win10-x64 -p:PublishSingleFile=true dotnet publish -r <rid> -c Release
Ini sepenuhnya didukung untuk menggabungkan dua opsi bersama-sama untuk mendapatkan perakitan tunggal yang dipangkas untuk aplikasi Anda.
sumber