ลอง Visual Studio ของตัวเองมากpost-build บรรทัดคำสั่งเหตุการณ์
ลองเพิ่มสิ่งนี้ในหลังการสร้าง:
@echo off
sc query "ServiceName" > nul
if errorlevel 1060 goto install
goto stop
:delete
echo delete
sc delete "ServiceName" > nul
echo %errorlevel%
goto install
:install
echo install
sc create "ServiceName" displayname= "Service Display Name" binpath= "$(TargetPath)" start= auto > nul
echo %errorlevel%
goto start
:start
echo start
sc start "ServiceName" > nul
echo %errorlevel%
goto end
:stop
echo stop
sc stop "ServiceName" > nul
echo %errorlevel%
goto delete
:end
หากบิลด์เกิดข้อผิดพลาดพร้อมข้อความเช่นนี้Error 1 The command "@echo off sc query "ServiceName" > nul
ให้Ctrl+ Cแล้วCtrl+Vข้อความแสดงข้อผิดพลาดใน Notepad และดูที่ประโยคสุดท้ายของข้อความ
มันอาจจะพูดexited with code x
ได้ ค้นหารหัสในข้อผิดพลาดทั่วไปที่นี่และดูวิธีแก้ไข
1072 -- Marked for deletion → Close all applications that maybe using the service including services.msc and Windows event log.
1058 -- Can't be started because disabled or has no enabled associated devices → just delete it.
1060 -- Doesn't exist → just delete it.
1062 -- Has not been started → just delete it.
1053 -- Didn't respond to start or control → see event log (if logged to event log). It may be the service itself throwing an exception.
1056 -- Service is already running → stop the service, and then delete.
เพิ่มเติมเกี่ยวกับรหัสข้อผิดพลาดที่นี่ที่นี่
และหากบิลด์เกิดข้อผิดพลาดพร้อมข้อความเช่นนี้
Error 11 Could not copy "obj\x86\Debug\ServiceName.exe" to "bin\Debug\ServiceName.exe". Exceeded retry count of 10. Failed. ServiceName
Error 12 Unable to copy file "obj\x86\Debug\ServiceName.exe" to "bin\Debug\ServiceName.exe". The process cannot access the file 'bin\Debug\ServiceName.exe' because it is being used by another process. ServiceName
เปิด cmd แล้วพยายามฆ่ามันก่อนด้วย taskkill /fi "services eq ServiceName" /f
หากทุกอย่างดีF5ควรจะเพียงพอที่จะแก้ไขข้อบกพร่อง