2012-02-04 44 views
1

我在VS2010中有一個標準的網站項目和一個web部署項目。我一直在使用這個項目和部署包已經有4年了,現在沒有問題。ASP.NET用戶控件編譯爲DLL

部署包已被設置爲'合併所有頁面和控制輸出到單個程序集'。

直到現在,這種設置還沒有出現問題,爲期3 - 4年! 在最新版本的網站中,我添加了一個文件夾,其中包含一些頁面和另外一個包含3個用戶控件的文件夾。現在,當我構建3個用戶控件的部署包2編譯爲它們自己的dll時,其餘部分編譯爲預期。我已經在所有三個控件的頁面後面的代碼中檢查了命名空間,它們都是相同的,並且無法找到任何地方它會告訴編譯器編譯這兩個控件而不是其他的控件。

我的控件位於命名空間G2F.Forms.Controls.FormDefintitionListItemControl(它反映了文件夾結構和控件名稱)。

我有一個需要得到一個參照這些控件之一,並使用頁面:

.FindControl(「IdName」)作爲MyControl

代碼中所有使用該網站時能正常工作或運行該項目,但是當您編譯該網站時,上面的代碼返回null,因爲該控件現在是ASP.forms_controls_formdefinitionlistitemcontrol_ascx類型。

這個和其他控件是唯一以這種方式編譯的控件,解決方案中還有40-50個其他控件。

+0

檢查程序集名稱,而不是命名空間名稱。 – TheGeekYouNeed 2012-02-05 19:46:02

+0

我應該檢查哪些組件名稱?這是一個網站(而不是應用程序),控件只是坐在網站內的一個文件夾中,它是將這兩個控件編譯成這些App_Web_formdefinitionlistitemcontrol.ascx.32390934&App_Web_sectiondetailcontrol.ascx.32390934 dll的web部署項目。非常奇怪的行爲,所有其他控件內置到G2F.Collective.WebUI dll中,如web部署設置所述? – Reuben 2012-02-07 11:58:28

+0

是否「取消選中」允許此預編譯的網站可更新? – TheGeekYouNeed 2012-02-07 21:23:25

回答

2

根據我最近的評論,我找到了一個解決方案,將網站轉換爲一個web應用程序,當做這件事時有很多gotcha的東西,但最終經過大量的排序命名空間和一些編譯正確的部署設置設置「允許這個預先制定的網站更新」檢查!)我得到它的工作。

它似乎有點極端,但失去了4天追逐錯誤,並重建它很高興能夠得到它再次工作!