Untuk proyek aplikasi konsol yang menargetkan .NET Core 1.0, saya tidak tahu cara mendapatkan .exe ke output saat membangun. Proyek ini berjalan dengan baik dalam debug.
Saya sudah mencoba menerbitkan proyek, tetapi itu tidak berhasil. Masuk akal karena file EXE akan spesifik platform, tetapi harus ada caranya. Pencarian saya hanya menghasilkan referensi ke .NET Core versi lama yang menggunakan project.json.
Setiap kali saya membangun atau menerbitkan, ini yang saya dapatkan:
dotnet <path>.dll
(Saya tidak berpikir dan mengetikdotnet run <path>.dll
tanpa berhasil karena alasan yang jelas)! (Kalau dipikir-pikir akan lebih baik jika ini ditutup untuk pertanyaan lain yang memiliki jawaban yang serupa)Jawaban:
Untuk keperluan debugging, Anda dapat menggunakan file DLL. Anda dapat menjalankannya menggunakan
dotnet ConsoleApp2.dll
. Jika Anda ingin membuat file EXE, Anda harus membuat aplikasi mandiri.Untuk menghasilkan aplikasi mandiri (EXE di Windows), Anda harus menentukan runtime target (yang khusus untuk sistem operasi yang Anda targetkan).
Khusus Pre-.NET Core 2.0 : Pertama, tambahkan pengidentifikasi runtime dari target runtimes di file .csproj ( daftar RID yang didukung ):
Langkah di atas tidak lagi diperlukan dimulai dengan .NET Core 2.0 .
Kemudian, atur runtime yang diinginkan ketika Anda menerbitkan aplikasi Anda:
sumber
RuntimeIdentifier
csproj.UPDATE (31-OCT-2019)
Bagi siapa pun yang ingin melakukan ini melalui GUI dan:
Catatan
Perhatikan ukuran file besar untuk aplikasi sekecil itu
Anda dapat menambahkan properti "PublishTrimmed". Aplikasi hanya akan menyertakan komponen yang digunakan oleh aplikasi. Perhatian : jangan lakukan ini jika Anda menggunakan refleksi
Publikasikan lagi
Posting Sebelumnya
Bagi siapa pun yang menggunakan Visual Studio dan ingin melakukan ini melalui GUI, lihat langkah-langkah di bawah ini:
sumber
Berikut ini akan menghasilkan, di direktori output,
Tapi itu tidak mengandung semua .NET Core runtime assemblies.
Saya membungkusnya dalam sampel di sini: https://github.com/SimonCropp/NetCoreConsole
sumber
Jika file .bat dapat diterima, Anda dapat membuat file bat dengan nama yang sama dengan file DLL (dan menempatkannya di folder yang sama), lalu menempelkan konten berikut:
Jelas, ini mengasumsikan bahwa mesin telah. NET Core diinstal dan tersedia secara global.
(Jawaban ini berasal dari komentar Chet .)
sumber
Inilah solusi untuk saya - buat aplikasi konsol (.NET Framework) yang bertuliskan nama dan argumennya sendiri, lalu panggil
dotnet [nameOfExe].dll [args]
.Tentu saja ini mengasumsikan bahwa .NET diinstal pada mesin target.
Ini kodenya. Silakan menyalin!
sumber
dotnet [nameOfExe].dll %*