[英]Using assemblies registered in Web.Config in files not in root folder
我已經在web.config文件中注冊了一個控件,該控件的.dll已放置在應用程序的Bin文件夾中。
<compilation debug="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="RichTextEditor"/>
</assemblies>
</compilation>
<pages>
<controls>
<add assembly="RichTextEditor" namespace="RichTextEditor" tagPrefix="cc1" />
</controls>
</pages>
現在,我可以在應用程序根文件夾的.aspx頁中使用此控件,而不會出現問題。 但是,某些我要使用此控件的.aspx頁面存儲在應用程序的子文件夾中(在這種情況下,子文件夾稱為“ Admin”)。 當我嘗試在這些頁面中使用這些控件並在調試中運行時,出現以下錯誤:
Error 1 Unknown server tag 'cc1:RichTextEditor'. N:\IntranetV2\admin\EditMenuItem.aspx 27
我確定我在這里遺漏了一些簡單的東西,但是我似乎無法弄清楚如何使它正常工作,並且谷歌搜索似乎並沒有太大幫助。
更新:
好的,我沒有運氣就嘗試過亞倫的解決方案,我將他的代碼建議修改為:
<add tagPrefix="cc1" tagName="RichTextEditor" src="~/Bin/RichTextEditor.dll" />
我希望這就是所需要的,但是現在我得到了錯誤:
Error 1 There is no build provider registered for the extension '.dll'. You can register one in the <compilation><buildProviders> section in machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value 'Web' or 'All'.
請有人幫忙! 我知道答案必須非常簡單,但我為自己解決這個問題而發瘋,而Google卻證明無濟於事。
我前段時間也遇到過類似的問題。 我能夠使控件正常工作的唯一方式是這樣的:
<add tagPrefix="cc1" tagName="RichTextEditor" src="~/controls/richtexteditor.ascx">
而不是這樣:
<add assembly="RichTextEditor" namespace="RichTextEditor" tagPrefix="cc1" />
編輯:
由於您使用的是二進制文件,因此請將.dll添加到解決方案中,並在使用它的項目中添加對它的引用。 這樣,.NET會將.dll添加到您的bin文件夾中。 然后,返回至此(並驗證名稱空間和程序集正確):
<add assembly="RichTextEditor" namespace="RichTextEditor" tagPrefix="cc1" />
另外,請參考以下內容: 提示/技巧:如何在Web.config中注冊用戶控件和自定義控件
文件夾是否在IIS中定義為應用程序? 這將導致這樣的問題,因為在這種情況下,IIS將在該子文件夾中查找web.config(以及bin /和其他特殊文件和文件夾)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.