Saya memiliki proyek dengan acara pasca pembangunan:
copy $(ProjectDir)DbVerse\Lunaverse.DbVerse.*.exe $(TargetDir)
Ini berfungsi dengan baik setiap kali di mesin saya. Saya memiliki pengembang baru yang selalu mendapatkan kesalahan "keluar dengan kode 1". Saya menyuruhnya menjalankan perintah yang sama dalam prompt DOS, dan itu berfungsi dengan baik. Apa yang menyebabkan ini? Apakah ada cara untuk mendapatkan kesalahan yang sebenarnya?
Kami berdua menggunakan Visual Studio 2008.
visual-studio-2008
post-build
Tim Scott
sumber
sumber
Jawaban:
Dia memiliki spasi di salah satu nama folder di jalurnya, dan tidak ada tanda kutip di sekitarnya.
sumber
Yang dengan "Ping" membantu saya ... tetapi mungkin dijelaskan sedikit lebih baik ...
Bagi saya, solusinya adalah mengubah:
untuk ini:
Semoga berhasil untuk Anda. :-)
sumber
Saya telah menambahkan ini untuk pengunjung mendatang karena ini adalah pertanyaan yang cukup aktif.
ROBOCOPY keluar dengan "kode sukses" di bawah 8. Lihat: http://support.microsoft.com/kb/954404
Artinya:
Jadi saya menyelesaikan ini dengan mudah dengan menambahkan ini ke bagian bawah file batch
Sarankan agar menangani kesalahan ROBOCOPY dengan cara ini
Kebingungan akan muncul ketika tidak ada file yang disalin = tidak ada kesalahan pada VS. Kemudian ketika ada perubahan, file disalin, kesalahan VS tetapi semua yang diinginkan pengembang telah selesai.
Tip Tambahan: Jangan gunakan jeda dalam skrip karena ini akan menjadi jeda tak terbatas pada build VS. saat mengembangkan skrip, gunakan sesuatu seperti
timeout 10
. Anda akan melihat ini dan mengomentarinya daripada memiliki bangunan gantung.sumber
Alasan saya untuk Kode 1 adalah karena folder target hanya bisa dibaca. Semoga ini bisa membantu seseorang! Saya memiliki acara post build untuk melakukan penyalinan dari satu direktori ke direktori lain dan tujuannya hanya untuk dibaca. Jadi saya pergi dan menghapus centang pada atribut read-only pada direktori dan semua subdirektorinya! Pastikan saja bahwa itu adalah direktori yang aman untuk melakukannya!
sumber
Dapatkan monitor proses dari SysInternals mengaturnya untuk mengawasi Lunaverse.DbVerse (di bidang Path) melihat hasil operasi. Harus jelas dari sana apa yang salah
sumber
Saya harus menjalankan VS sebagai Administrator untuk mendapatkan salinan pasca-pembuatan saya ke OS yang dilindungi ".. \ Common7 \ IDE \ PrivateAssemblies" agar berfungsi
sumber
Bagi mereka, yang menggunakan ' copy ' perintah dalam Build Acara ( baris perintah Pra-build acara atau / dan baris perintah Post-build event ) dari Project -> Properties : Anda ' copy ' parameter perintah akan terlihat seperti di sini:
copy "source of files" "destination for files"
. Ingatlah untuk menggunakan tanda kutip (untuk menghindari masalah dengan spasi dalam string alamat).sumber
Saya memiliki masalah serupa tetapi secara khusus dalam lingkungan pembuatan Jenkins. Untuk memperbaiki masalah ini, saya beralih dari menggunakan perintah salin di acara post build menjadi menggunakan target salin.
Saya mengubah ini:
untuk ini:
dan berfungsi dengan baik sekarang.
Kesalahan spesifik yang saya dapatkan adalah:
sumber
Saya dapat memperbaiki Kode 1 saya dengan menjalankan Visual Studio sebagai Admin. Rupanya itu tidak memiliki akses untuk menjalankan perintah shell tanpa Admin.
sumber
Sebagai praktik yang baik, saya sarankan Anda mengganti acara post build dengan tugas MS Build File Copy .
sumber
Bagi saya, saya harus memastikan program yang saya gunakan untuk menangani file tidak berjalan pada saat itu. Tidak ada kesalahan dalam sintaks. Semoga ini bisa membantu seseorang.
sumber
Saya baru saja menerima kesalahan yang sama. Saya memiliki% di jalur tujuan yang perlu diloloskan
dibutuhkan
sumber
Oke, ini adalah masalah dengan banyak solusi, jadi saya hanya memposting milik saya untuk memberi lebih banyak petunjuk kepada orang-orang. Situasi saya adalah memeriksa ulang folder di jalur Anda dan memastikan semuanya ada di mesin Anda. Misalnya: "$ (SolutionDir) \ partBin \ Bin \ $ (ProjectName) .pdb", tetapi "Bin" tidak ada di folder partBin.
sumber
$(SolutionDir)
itu mubazir.Bagi mereka, yang menggunakan perintah 'salin' di Build Events (baris perintah peristiwa pra-bangun atau / dan baris perintah peristiwa pasca-bangun) dari Proyek -> Properti: folder target harus ada
sumber
Begitu banyak solusi ...
Dalam kasus saya, saya harus menyimpan file bat dengan pengkodean non-unicode (Western, Windows). Secara default ketika saya menambahkan file ke studio visual (dan mungkin saya harus melakukannya di luar VS), itu ditambahkan dengan pengkodean UTF-8.
sumber
Saya mengalami masalah yang sama dan ternyata itu karena saya telah mengganti nama proyek. Saya masuk ke properti proyek dan mengubah Nama Majelis dan Root Namespace menjadi nama proyek dan itu berfungsi dengan baik setelah itu!
sumber
Namun jawaban lain ...
Dalam kasus saya, saya memiliki proyek Visual Studio 2017 yang menargetkan .Net Standard 1.3 dan .Net Framework 2.0. Ini ditentukan dalam file .csproj seperti ini:
Saya juga memiliki baris perintah acara pasca-pembangunan seperti ini:
Dengan kata lain, saya mencoba menyalin .Net Framework .dll yang dihasilkan oleh build ke lokasi alternatif.
Ini gagal dengan kesalahan ini ketika saya melakukan Rebuild:
Setelah banyak frustasi akhirnya saya memutuskan bahwa apa yang terjadi adalah bahwa Rebuild menghapus semua file output, kemudian melakukan build untuk .Net Standard 1.3, kemudian mencoba menjalankan baris perintah event post-build, yang gagal karena file tersebut akan disalin belum dibangun.
Jadi solusinya adalah mengubah urutan bangunan, yaitu build untuk .Net Framework 2.0 terlebih dahulu, kemudian untuk .Net Standard 1.3.
Ini sekarang berfungsi, dengan kesalahan kecil bahwa baris perintah peristiwa pasca-build dijalankan dua kali, sehingga file disalin dua kali.
sumber
Dalam kasus saya, saya harus
cd
(mengubah direktori) sebelum memanggil file bat, karena di dalam file bat adalah operasi penyalinan yang menentukan jalur relatif.sumber