Saya tidak terlalu paham dengan acara pasca-pembangunan, jadi saya agak bingung tentang apa yang salah dengan program saya. Saat menyusun di visual studio 2010, saya mendapatkan yang berikut:
The command "xcopy C:\Users\Me\Path\Foo.bar\Library\dsoframer.ocx C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
xcopy C:\Users\Me\Path\Foo.bar\ApplicationFiles C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
xcopy C:\Users\Me\Path\url\ C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
rmdir /S /Q C:\Users\Me\Path\Foo.bar\bin\Debug\.gwt-tmp" exited with code 4.
Program ini tampaknya berjalan dengan baik, meskipun ada kesalahan ini, tetapi saya tidak ingin mengabaikan masalah ini dan berharap tidak ada hal buruk yang terjadi. Anehnya, baris ini dimulai hanya sebagai satu perintah (xcopy pertama) tetapi ketika saya terus mengkompilasi proyek (memperbaiki masalah lain, sebagian besar referensi), pesan kesalahan meluas semakin besar. Tahu apa yang sedang terjadi?
Sunting: Berikut adalah acara postbuild yang tampaknya gagal -
xcopy $(ProjectDir)Library\dsoframer.ocx $(TargetDir) /Y /E /D
xcopy $(ProjectDir)ApplicationFiles $(TargetDir) /Y /E /D
xcopy $(SolutionDir)com.myUrl.gwt\www $(TargetDir) /Y /E /D
rmdir /S /Q $(TargetDir).gwt-tmp
c#
visual-studio-2010
visual-studio-2012
xcopy
Raven Dreamer
sumber
sumber
Administrator privileges
. Menyalin ke lokasi tertentu membutuhkan hak admin.Jawaban:
Kode keluar Xcopy 4 berarti " Terjadi kesalahan inisialisasi. Memori atau ruang disk tidak cukup, atau Anda memasukkan nama drive yang tidak valid atau sintaks yang tidak valid pada baris perintah. "
Sepertinya Visual Studio memberikan argumen yang tidak valid ke xcopy. Periksa perintah post-build event Anda melalui
Project > Right Click > Properties > Build Events > Post Build Event
.Perhatikan bahwa jika
$(ProjectDir)
istilah makro atau yang serupa memiliki spasi di jalur yang dihasilkan saat diperluas, istilah makro tersebut perlu diapit tanda kutip ganda. Sebagai contoh:sumber
"command args"
).$(ProjectDir)
(dan / atau serupa) memiliki spasi di jalur yang diperluas, maka itu harus diapit tanda kutip. Misalnya:xcopy "$(ProjectDir)Library\dsoframer.ocx" "$(TargetDir)" /Y /E /D1
Alihkan tab arloji ke "ouput" dan cari perintah xcopy. Terkadang di sini Anda menemukan beberapa pesan lagi (keluaran xcopy sebenarnya) yang dapat membantu Anda untuk memecahkan masalah. Jika Anda tidak melihat tab output, gunakan menu View-Output untuk menampilkannya.
sumber
Saya selain jawaban yang diterima, kesalahan juga dapat terjadi ketika folder tujuan hanya-baca (Umum saat menggunakan TFS)
sumber
Jika file sumber tidak ditemukan xcopy mengembalikan kode kesalahan 4 juga.
sumber
$(TargetDir)
yang diakhiri denganRelease\
. Menggunakan$(ProjectDir)\bin\Release
tanpa trailing\\
berhasil untuk sayaSaya menerima pesan kesalahan ' keluar dengan kode 4 ' saat perintah xcopy mencoba menimpa file hanya-baca. Saya berhasil menyelesaikan masalah ini dengan menambahkan / R ke perintah xcopy. The / R menunjukkan file read only harus ditimpa
perintah lama:
perintah baru
sumber
Seperti jawaban lain menjelaskan, kode keluar 4 mungkin memiliki banyak penyebab.
Saya melihat sebuah kasus, di mana nama jalur yang dihasilkan melebihi panjang maksimum yang diizinkan (seperti di sini ).
Saya telah mengganti xcopy dengan robocopy untuk acara pasca pembangunan yang terpengaruh; robocopy tampaknya menangani jalur yang sedikit berbeda dan dapat menyelesaikan tugas penyalinan yang tidak dapat ditangani xcopy.
sumber
Artinya :
Jadi pada dasarnya bisa saja apa saja haha ... coba jalankan perintah satu per satu dari command prompt untuk mencari tahu bagian mana dari perintah yang membuat Anda kesulitan.
sumber
Saya mendapatkan ini bersama dengan pesannya
saat menyalin ke jaringan berbagi tanpa menentukan nama drive, mis
dimana
diharapkan
sumber
Saya mengalami masalah ini, jadi saya menjalankan perintah xcopy dari baris perintah dan dikatakan:
Itu sebenarnya Visual Studio yang memegang sesuatu. Saya baru saja memulai ulang Visual Studio dan berhasil.
sumber
Dalam kasus saya, masalahnya adalah karena urutan build yang salah. Satu proyek memiliki perintah xcopy pada acara pasca-pembangunan untuk menyalin file dari folder bin ke folder lain. Tetapi karena dependensi yang salah, file baru dibuat di folder bin sementara xcopy sedang berlangsung.
Di VS, klik kanan pada proyek tempat Anda memiliki acara pasca-pembangunan. Buka Build Dependencies> Project Dependencies dan pastikan sudah benar. Verifikasi urutan pembangunan proyek (tab di sebelah dependensi) juga.
sumber
Kesalahan ini terjadi jika ada ruang kosong tempat repo Anda disalin. Misalnya proyek saya disalin di lokasi di bawah ini
c://projects/My rest project
maka Anda dapat melihat ruang putih di sana, jika Anda mengubah jalur repo Anda ke bawah, seharusnya berfungsic://projects/myrestproject
sumber
Saya memiliki masalah yang sama. Anda juga dapat memeriksa ke arah mana garis miring mengarah. Bagi saya, ini berhasil menggunakan garis miring terbalik, bukan garis miring ke depan. Contoh
Dari pada:
sumber
Saya memiliki perintah post build yang berfungsi dengan baik sebelum saya melakukan pembaruan pada VS 2017. Ternyata alat SDK diperbarui dan berada di bawah jalur baru sehingga tidak dapat menemukan alat yang saya gunakan untuk menandatangani rakitan saya.
Ini berubah dari ini ....
Untuk ini...
Perubahan yang sangat halus tetapi merusak, jadi periksa jalur Anda setelah pembaruan jika Anda melihat kesalahan ini.
sumber
Hal lain yang harus diperhatikan adalah garis miring terbalik ganda, karena
xcopy
tidak mentolerirnya dalam parameter jalur input (tetapi itu tidak mentolerirnya di jalur keluaran ...).sumber
Jika ada solusi lain dalam mode debug maka pertama-tama hentikan semuanya dan setelah itu mulai ulang studio visual. Itu berhasil untuk saya.
sumber
Ini juga bisa terjadi jika folder target digunakan oleh beberapa proses lain . Tutup semua program yang mungkin menggunakan folder target dan coba.
Anda dapat menggunakan pemantau sumber daya (alat windows) untuk memeriksa proses yang menggunakan folder target Anda.
Ini berhasil untuk saya !.
sumber