كيف يمكنني تحليل إخراج MSDeploy وفشل في بناء TeamCity إذا كانت هناك أخطاء؟

StackOverflow https://stackoverflow.com/questions/2314132

  •  22-09-2019
  •  | 
  •  

سؤال

أنا أستخدم msdeploy.exe تشغيل من TeamCity لنشر مشاريع ASP.NET إلى خوادم التدريج ولكن إذا كان يعاني بشدة من إعادة حالة 0 دائمًا عند الخروج ، حتى عندما يرفع العديد من الأخطاء. هذا يعني أن النشر السيئ لا يفشل وكل شيء على ما يرام.

لذلك أنا بحاجة إلى تحليل الإخراج ولديه خطأ ، هل هناك طريقة سهلة للقيام بذلك؟ بدلاً من ذلك ، هل هناك طريقة صعبة للقيام بذلك؟

يمكنك أن ترى من سجل إنشاء TeamCity أدناه ما يجري (الأخطاء ، ولكنه يستمر بسبب حالة الخروج 0).

[17:32:31]: Skip copying Global.asax to  obj\Debug\Package\PackageTmp\Global.asax, File  obj\Debug\Package\PackageTmp\Global.asax is up to date
[17:32:31]: C:\Program  Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(1845,5):  error : Copying file Web.Debug.config to  obj\Debug\Package\PackageTmp\Web.Debug.config failed. Could not find  file 'Web.Debug.config'.  [C:\BuildAgent\work\f3548ee02a6397b9\webapp\WebApp.csproj]
[17:32:31]: Done Building Project  "C:\BuildAgent\work\f3548ee02a6397b9\webapp\WebApp.csproj" (Package  target(s)) -- FAILED.
[17:32:31]: Build FAILED.
[17:32:31]: "C:\BuildAgent\work\f3548ee02a6397b9\webapp\WebApp.csproj" (Package  target) (1) ->
[17:32:31]: (ValidateGlobalPackageSetting target)  ->
[17:32:31]: C:\Program  Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(817,5):  error : '..\Package\WebApp.zip' exists as a file. You can't package as  an archive directory to be the same path as an existing file. Please  delete the file before packaging. Alternative,you can call msbuild with  /t:CleanWebsitesPackage target to remove it.  [C:\BuildAgent\work\f3548ee02a6397b9\webapp\WebApp.csproj]
[17:32:31]: "C:\BuildAgent\work\f3548ee02a6397b9\webapp\WebApp.csproj" (Package  target) (1) ->
[17:32:31]: (CopyAllFilesToSingleFolderForPackage  target) ->
[17:32:31]: C:\Program  Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(1845,5):  error : Copying file Web.Debug.config to  obj\Debug\Package\PackageTmp\Web.Debug.config failed. Could not find  file 'Web.Debug.config'.  [C:\BuildAgent\work\f3548ee02a6397b9\webapp\WebApp.csproj]
[17:32:31]: 0 Warning(s)
[17:32:31]: 2 Error(s)
[17:32:31]: Time Elapsed 00:00:00.87
[17:32:31]: C:\BuildAgent\work\f3548ee02a6397b9>"C:\Program Files\IIS\Microsoft  Web Deploy"\msdeploy.exe -verb:sync -source:Package=Package\WebApp.zip  -dest:auto -setParam:"IIS Web Application Name"=MyWebName
[17:32:32]: Info: Updating setAcl (MyWebName).
[17:32:32]: Info: Updating setAcl (MyWebName).
[17:32:32]: Info: Updating setAcl  (MyWebName/App_Data).
[17:32:32]: Total changes: 3 (0 added, 0 deleted,  3 updated, 0 parameters changed, 0 bytes copied)
[17:32:32]: Process exited with code 0
[17:32:32]: Build finished
هل كانت مفيدة؟

المحلول

TeamCity 7 لديه ميزة فشل البناء:

  • تحرير الإعدادات على تكوين البناء الخاص بك
  • انتقل إلى علامة التبويب شروط فشل البناء (رقم 4)
  • انقر فوق "إضافة حالة فشل البناء"
  • حدد نوع "الفشل بناء على نص محدد في سجل البناء"
  • لقد استخدمت السلسلة "exec: عدد الأخطاء:" لالتقاط أخطاء msdeploy ، فهي تعمل بشكل جيد
  • يفتح زر الاختبار مربع حوار مفيد حيث يمكنك اختبار حالة الفشل الخاصة بك على سجل بناء سابق تعرف أنه كان يجب أن يفشل
  • يحفظ

في تكوين بلدي ، أدعو msdeploy.exe مباشرة من MSBuild ، أعتقد أن هذا هو السبب في أن نص الخطأ الخاص بي يختلف عنك.

رائع جدا ، المحبة jetbrains لهذا الغرض.

نصائح أخرى

فيما يلي طريقة اعتدت على الفشل في بناء MSDeploy عندما قمت بتشغيل نص نانت للنشر عن بُعد. إنه ليس مشهدًا متطابقًا ولكن يجب أن يعطيك مفهومًا للذهاب منه. في الأساس ، يمكنك تشغيل هذا من قذيفة ، تحتاج إلى لغة برمجة مثل PowerShell لالتقاط الإخراج ومن خلال عمليات النشر التي يعود إليها النص العادي من MSDeploy. لقد تجنبت هذه المشكلة مع فريق MSDeploy وأعلمهم أن هذا كان ألمًا للتعامل معه.

http://www.lostechies.com/blogs/hex/archive/2009/12/29/update-on-using-msdeploy-for-remote-deployments.aspx

في TeamCity 9 ، انتقل إلى تكوين الإنشاء وانقر على ظروف الفشل. تحقق من مربع الاختيار "يتم تسجيل رسالة خطأ بواسطة Build Runner". سوف يفشل هذا في بنائه في حالة حدوث خطأ أثناء النشر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top