2016-06-09 39 views
0

我正在編寫一些與Umbraco v7集成的代碼,目前特別與Umbraco Forms擴展一起使用,但在不久的將來與CMS本身一起使用。我已經將Umbraco程序集編入我的VS項目中,並通過遵循this article中描述的步驟來創建一個包含所有相關程序包和定製的工作實例。如何調試擴展Umbraco 7的項目?

我有第二個項目,姑且稱之爲Project2的中會產生,我會在生產下探到一把umbraco的文件夾的DLL,讓CMS自動掛機行動解決方案附加功能。

到目前爲止一切順利,但我遇到了一個問題 - 調試。如果我將Project2 dll放入Umbraco中,我可以使用Umbraco記錄器來生成輸出消息,但這對於調試更復雜的代碼來說是極其不足的,而不是令人沮喪地耗費時間。但我看不到我如何在運行時將Visual Studio調試器連接到Project2。任何人都可以提出我可以利用的技術嗎?

+0

你在本地運行嗎?你有沒有試圖附加你的調試器? – Mario

+0

我正在IIS Express中運行Umbraco實例,並在構建完成後手動將Project2 dll放入bin文件夾。這不與調試器一起玩。 – 5arx

回答

0

我有點想通了this post的幫助,它至少讓我能夠像事件發佈一樣,用我自己的代碼發佈,其中可以在VS中被調試。

的技術是這樣的:

  1. 編輯在主一把umbraco項目Global.ascx文件,以便它使用Project2中的自定義Global.cs文件。當然,您必須在主Umbraco項目中添加對Project2的引用才能執行此操作。這是你的鉤子。

    <%@ Application Inherits="Project2.Global" Language="C#" %> 
    
  2. 而在這個文件(這是Project2中),您將自定義的處理程序不同一把umbraco事件。從這個角度來看,所有的鉤子都可以讓你調試你的自定義代碼。拍一些斷點在那裏親吻LogHelper再見;-)

    public class Global : UmbracoApplication 
        { 
         public override void Init() 
         { 
          var application = this as HttpApplication; 
          //Hook up your event handlers as required. 
          application.PreRequestHandlerExecute += PreRequestHandlerExecute; 
         ContentService.Published += ContentService_Published; 
          base.Init(); 
         } 
         //Custom logic which you can step-through in VS. 
         private void ContentService_Published(IPublishingStrategy sender, 
        PublishEventArgs<Umbraco.Core.Models.IContent> e) 
         { 
          LogHelper.Info(this.GetType(), "Caught Publish event " + e.PublishedEntities.FirstOrDefault().Name); //very droll. 
         } 
         ... 
        } 
    

唷!希望這可以幫助某人。