簡體   English   中英

調試安裝到空Web應用程序中的整個Web的細節

[英]Debugging a nuget of an entire web installed into an empty web app

我們正在開發一個核心ASP.NET MVC Web項目和一個以MvcContrib插件Web項目形式出現的客戶插件-一個作為區域注入到核心Web中的Web項目。 該插件是核心項目中的一個軟參考,因此可以完全單獨開發並插入。

我正在嘗試生成一種調試/編碼插件的方法,以便可以獨立於核心Web開發多個自定義插件。

開發人員只需要擔心編碼和測試插件代碼。 另外,我不希望他們在此自定義插件項目中更改核心代碼-無論如何都應該在核心中完成。

我以NuGet軟件包的形式創建了核心網站,並包含了所有必需的文件,以便可以將其包含在網站中。

我的想法是,我可以創建一個空網站,安裝我的核心網站,並且開發人員可以擁有一個由F5驅動的調試環境。

我通過創建一個空白的Mvc項目進行了測試,安裝了我的核心軟件包並包括了我的一個插件。 我將這個空的Web應用程序的命名空間更改為核心Web的命名空間,以為Visual Studio調試可以正確地附加到我的核心程序集。

在空應用程序中進行簡單的VS調試無法正常工作-我收到HTTP異常,很可能是由於未注冊我的路由。 我也看到我的log4net沒有創建它的日志文件夾,所以我知道程序集的應用程序啟動沒有被調用。

因此,我看到VS並未附加並調用我的核心程序集。

我可以將此空網站用作nuget安裝的網站的主機項目並進行調試嗎? 如果是這樣,我缺少什么配置?

如果沒有,如何將核心站點包含在每個客戶插件項目中,以便可以將DLL放到bin中並對其進行調試?

使用:Visual Studio 2010

ASP.NET MVC2

我們運作良好的方式是結合使用Web Activator和Razor Generator (作為Visual Studio擴展提供 )。 為了訪問核心Web應用程序中的視圖,使用客戶端的應用程序需要了解它們,這是因為它們都作為文件引用包含在Nuget包(messy)中,或者因為它們已編譯到核心Web dll中。 您可以使用Razor Generator來實現。 通過Nuget安裝后,您需要將每個.cshtml文件的“ Custom Tool屬性更改為RazorGenerator ,這將為每個視圖創建一個.generated.cs文件。 這將使您的示例客戶端可以使用核心Web應用程序中的布局和視圖。

David Ebbo 在Razor Generator上有一些有用的博客文章

結合使用Web Activator來創建一個PostActivationStartMethod來運行您的初始化代碼(例如,初始化Log4Net ),那么您應該一切順利。 我們已經在兩種情況下運行了此操作-通過Nuget使用框架包並直接添加項目參考。 調試不適用於使用Nuget軟件包的路由,但是我們沒有在Nuget軟件包中包含pdb文件。 我們可以在直接添加項目引用時進行調試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM