10

Otrzymuję błąd podczas próby zbudowania Aplikacja Silverlight na nowej maszynie. (Silverlight 4, Visual Studio 2010) Ta aplikacja kompiluje bez błędów na czterech innych komputerach."Znacznik" MenuItem "nie istnieje w przestrzeni nazw XML 'clr-namespace: System.Windows.Controls; assembly = System.Windows.Controls.Input.Toolkit'" error

Błąd jest:

the tag 'MenuItem' does not exist in XML namespace 'clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit'. 

Wnioski wydają się być wskaźnik do odpowiednich zespołów. Czy ktoś jeszcze miał ten problem?

+0

zainstalować Silverlight Toolkit na nowy maszyna. – Gabe

+0

To się dzieje z programem Silverlight 5 i najnowszym zestawem narzędzi Silverlight. Wszystkie trzy zespoły (SYstem.Windows.Controls, System.Windows.Controls.Input.Toolkit i System.Windows.Controls.Toolkit) są przywoływane. MenuItem pojawia się również w IntelliSense. – Jedidja

+0

Zobacz również tutaj http://forums.silverlight.net/forums/p/221036/560937.aspx – Jedidja

Odpowiedz

0

Wygląda na to, że brakuje Ci Silverlight Toolkit na tym komputerze, ale jest zainstalowany na czterech innych.

+2

Wygląda na to, że zestaw narzędzi Silverlight jest zainstalowany. Uruchamiając pliki .DLL programu Silverlight, pojawiają się odwołania do MenuItem. Również inna część aplikacji używa MenuItem, ale tworzy ją w kodzie C#. Ten błąd kompilacji występuje tylko wtedy, gdy odwołuje się do MenuItem w XAML. – Ron

3

Innym powodem, dla którego ten problem może wystąpić, jest brak odniesienia do wszystkich "trzech" zespołów wymaganych do korzystania z części kontrolek Toolkit.

Upewnij się, że posiadasz odwołanie do następujących złożeń, jeśli próbujesz użyć danych wejściowych Toolkit (i zakładając, że motywy również mogą).

System.Windows.Controls 
System.Windows.Controls.Toolkit 
System.Windows.Controls.Input.Toolkit 

To rozwiązało problem, który miałem w związku z błędem.

+0

Potrzebujesz: System.Windows.Controls z biblioteki klienta Silverlight SDK, System.Windows.Controls.Input.Toolkit z zestawu narzędzi Silverlight, i System.Windows.Controls.Toolkit z zestawu narzędzi Silverlight. –

+0

Dzięki, to naprawiło problem dla mnie. Nie odwoływałem się do biblioteki DLL 'System.Windows.Controls'; kiedy dodałem to odwołanie, naprawił błąd tajemnicy. – McGarnagle

1

zawsze można polegać na tworzeniu menu kontekstowego w kodzie.

public LedgerEntryControl() 
{ 
    InitializeComponent(); 

    ContextMenu contextMenu = new ContextMenu(); 
    MenuItem voidMenuItem = new MenuItem() { Header = "Void" }; 
    voidMenuItem.SetBinding(MenuItem.CommandProperty, new Binding("Void")); 
    contextMenu.Items.Add(voidMenuItem); 
    ContextMenuService.SetContextMenu(this, contextMenu); 
} 
0

Z jakiegoś powodu, z SilverLight Toolkit Menedżer Nuget pakiet jest dla SL4, nawet gdy projekt jest ustawiony na SL5. Możesz download the SL5 version bezpośrednio z CodePlex. Zauważ, że data jest grudzień 2011, zamiast lutego 2011 jak wersja SL4.

Jeśli z jakiegoś powodu MSI nie instaluje (co mi się przydarzyło), można wyodrębnić pliki zawarte w MSI przy użyciu 7-zip. Jedyne, co musiałem zrobić, to ręcznie dodać odniesienie do System.Windows.Controls.Input.Toolkit.dll z wyodrębnionych plików, a mój projekt SL5 teraz kompiluje się pomyślnie z kontrolką NumericUpDown. Na szczęście mój program kompiluje teraz zarówno w trybie Release, jak i Debugowania.

Należy również dodać, że dla tych, którzy jeszcze tego nie zrobili, może być konieczne odwołanie się w XAML do odpowiedniego zestawu narzędzi. Użyłem następujący:

<sdk:Page xmlns:input="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" ... > 

Zauważ, że pierwsza część, gdzie jest napisane input, to co musi być wpisany w XAML używać sterowania:

<input:NumericUpDown x:Name="myControl" ... /> 
Powiązane problemy