/ / Używanie złożeń zarejestrowanych w Web.Config w plikach nie znajdujących się w folderze głównym - c #, asp.net, visual-studio-2008, web-config

Używanie złożeń zarejestrowanych w Web.Config w plikach nie znajdujących się w folderze głównym - c #, asp.net, visual-studio-2008, web-config

Zarejestrowałem kontrolkę w moim pliku web.config, a plik .dll dla kontrolki został umieszczony w folderze Bin aplikacji.

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

Teraz mogę korzystać z tej kontroli w.strony aspx w folderze głównym aplikacji bez problemów. Jednak niektóre strony .aspx, w których chcę użyć tej kontroli, są przechowywane w podfolderze aplikacji (w tym przypadku podfolder o nazwie "Admin"). Kiedy próbuję użyć tych kontrolek na tych stronach i uruchomić w debugowaniu, pojawia się błąd:

Error   1   Unknown server tag "cc1:RichTextEditor".    N:IntranetV2adminEditMenuItem.aspx   27

Jestem pewien, że brakuje mi tu czegoś prostego, ale wydaje mi się, że nie wiem, jak uzyskać tę pracę, a korzystanie z usług Google nie pomogło.

AKTUALIZACJA:

Okej, próbowałem rozwiązania Aarona bez powodzenia, poprawiłem jego sugestię dotyczącą kodu, aby:

<add tagPrefix="cc1" tagName="RichTextEditor" src="~/Bin/RichTextEditor.dll" />

Miałem nadzieję, że to wszystko jest wymagane, ale teraz dostaję błąd:

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

Proszę, pomóż komuś! Wiem, że odpowiedź na to pytanie musi być śmiesznie prosta, ale szaleję próbując to naprawić, a Google nie okazało się pomocne.

Odpowiedzi:

2 dla odpowiedzi № 1

Już jakiś czas temu miałem podobne problemy. Jedyny sposób, w jaki udało mi się sprawić, że działa kontrola, wyglądał następująco:

<add tagPrefix="cc1" tagName="RichTextEditor" src="~/controls/richtexteditor.ascx">

zamiast tego:

<add assembly="RichTextEditor" namespace="RichTextEditor" tagPrefix="cc1" />

EDYTOWAĆ:

Ponieważ używasz pliku binarnego, dodaj.dll do rozwiązania i dodaj odniesienie do niego w projekcie, w którym go używasz. W ten sposób .NET doda plik .dll do folderu bin. Następnie wróć do tego (i sprawdź, czy przestrzeń nazw i zespół są poprawne):

<add assembly="RichTextEditor" namespace="RichTextEditor" tagPrefix="cc1" />

Sprawdź również to jako odniesienie: Tip / Trick: Jak rejestrować formanty użytkownika i formanty niestandardowe w pliku Web.config


1 dla odpowiedzi nr 2

Czy folder jest zdefiniowany jako aplikacja w IIS? To by spowodowało taki problem, ponieważ w takim przypadku IIS będzie szukał pliku web.config (jak również bin / i innych specjalnych plików i folderów) wewnątrz tego podfolderu.