c# - Référence d'assembly non trouvée dans XAML, mais le code compile lorsqu'il est référencé dans la classe xaml.cs




.net wpf (2)

J'ai finalement résolu le problème moi-même - en laissant cette réponse ici, au cas où quelqu'un aurait le même problème un certain temps. L'ajout de la solution elle-même au chemin de référence de l'assemblage résout le problème! C'est dommage que ce ne soit pas documenté ...

EDIT: Pour clarifier, ce que j'ai fait était d'ajouter la solution, plutôt que la DLL. En d'autres termes, j'ai ajouté la solution MDI avec toutes ses classes. Cela s'applique naturellement aux DLL où le code source est également disponible.

J'ai un problème étrange en ajoutant une référence dll. J'ai une application WPF et j'essaie d'utiliser la bibliothèque WPF MDI: http://wpfmdi.codeplex.com/

Comme indiqué dans les instructions (qui sont très vagues), j'ai cliqué droit sur les références dans VS2012, cliqué sur Add reference.. , cliqué sur Browse.. et ajouté ma DLL que j'ai téléchargé.

Ensuite, j'ai ajouté la ligne suivante dans le XAML de ma fenêtre: xmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI" comme indiqué dans les instructions.

Cependant, lorsque vous essayez d'ajouter un <mdi:MdiContainer> dans le <mdi:MdiContainer> XAML, les messages d'erreur suivants s'affichent:

The type 'mdi:MdiContainer' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

The name "MdiContainer" does not exist in the namespace "clr-namespace:WPF.MDI;assembly=WPF.MDI".

C'est mon XAML:

<Window x:Class="QueryBuilder.Table"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mdi="clr-namespace:WPF.MDI;assembly=WPF.MDI"
        Height="300" Width="300" WindowStyle="ToolWindow" ResizeMode="NoResize" ShowInTaskbar="False">
</Window>

Ce problème m'a frustré toute la journée. J'ai essayé presque tout ce qui est imaginable. Une chose à noter est que j'ai téléchargé l'exemple d'application depuis le site de la bibliothèque, et je peux l'exécuter sans problème. De plus, j'ai ajouté ceci à la classe xaml.cs de mon projet: WPF.MDI.MdiContainer d = new WPF.MDI.MdiContainer(); et il compile sans problèmes du tout.

S'il vous plaît noter également que mon problème initial a été demandé ici , et aucune des suggestions a fonctionné. Le problème a maintenant changé cependant, en raison du paragraphe ci-dessus qui semble indiquer que le code est compilé avec succès dans le code derrière, mais pas dans le fichier XAML.

EDIT: Je voudrais également ajouter que je suis capable de parcourir le code de la référence d'assemblage comme indiqué ci-dessous.


Si Visual Studio continue à se plaindre et à souligner même après avoir tout essayé, il suffit de terminer le processus XDesProc.exe à l'aide du Gestionnaire des tâches, puis de reconstruire la solution. La prise en charge de WPF et XAML dans Visual Studio est un morceau de merde terriblement sous-estimé.





mdi