簡體   English   中英

使用在Web.Config中注冊的程序集而不是在根文件夾中的文件中

[英]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.

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