【问题标题】:How can I debug projects that extend Umbraco 7?如何调试扩展 Umbraco 7 的项目?
【发布时间】:2023-04-06 01:09:01
【问题描述】:

我正在编写一些与 Umbraco v7 集成的代码,目前特别是与 Umbraco Forms 扩展,但在不久的将来会与 CMS 本身集成。我已将 Umbraco 程序集添加到我的 VS 项目中,并按照this article 中描述的步骤,拥有一个包含所有相关包和自定义项的工作实例。

我有第二个项目,我们在解决方案中将其称为 Project2,它将生成我将放入 Umbraco 的 bin 文件夹中的 DLL 在生产中 允许 CMS 自动连接到附加功能。

到目前为止一切都很好,但我遇到了一个问题 - 调试。如果我将 Project2 dll 放到 Umbraco 中,我可以使用 Umbraco 记录器来生成输出消息,但这对于调试更复杂的代码来说是非常不足的,更不用说令人沮丧的耗时了。但我看不到如何在运行时将 Visual Studio 调试器连接到 Project2。谁能建议我可以使用的技术?

【问题讨论】:

  • 你是在本地运行吗?您是否尝试过附加调试器?
  • 我在 IIS Express 中运行 Umbraco 实例,并在构建后手动将 Project2 dll 放入 bin 文件夹中。这不适用于调试器。

标签: visual-studio visual-studio-debugging umbraco7


【解决方案1】:

this post 的帮助下,我已经想通了,这至少让我可以使用我自己的代码(可以在 VS 中调试的 Published 等事件)挂钩。

技术是这样的:

  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.
           } 
            ...
        }
    

呸!希望这对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    相关资源
    最近更新 更多