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 № 1Już 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.