UserControl non reconnu comme tel dans visual studio

Sep 20, 2010

Certaines fois il arrive que le l’explorateur de solution de visual studio ne reconnaisse plus certains éléments tels que les UserControl ce qui est génant pour accéder à l’éditeur graphique. (voir screenshot)

vs01.jpg

Ceci arrive sur des projets conséquents, plusieurs fois remaniés, et souvent synchronisés sur TFS. C’est dû au fait que le fichier csproj (ou bien tout autre fichier de projet selon quelle partie du .Net FrameWork vous utilisez en ce moment) est mal formé.

Pour corriger cela il y a plusieurs méthodes, la plus simple décharger et recharge le projet pour relancer une interprétation du fichier de projet et une corrélation avec les éléments présents.

Pour cela effectuez un clic droit sur le projet et cliquez sur “décharger le projet”, cliquez à nouveau sur le projet et cliquez sur “recharger le projet”, si durant l’une de ces étapes vous obtnez un prompt vous invitant à enregistrer le fichier de projet, acceptez.

Malheureusement cette astuce simple peut ne pas suffire, il va donc nous falloir éditer le fichier de projet. Commencez par décharger le projet puis rendez vous à son répertoire de stockage (clic droit sur le projet “open in windows explorer”). Là éditez le fichier csproj avec un éditeur de texte classique (une coloration syntaxique du xml pourra aider) ou bien directement via Visual Studio en faisant clic droit sur le projet “edit …” une fois le projet déchargé.

Localisez cette ligne : <Compile Include="InstallationProgress.cs" /> (où InstallationProgress est en fait le nom de l’élément qui vous pose problème) et remplacez là par ces lignes.

<Compile Include="InstallationProgress.cs">
      <SubType>UserControl</SubType>
</Compile>

De même si des fichiers de ressources sont liés au contrôle leur référence peut être erronée localisez les lignes de ce type pour chaque ressource liée:

<Compile Include="InstallationProgress.Designer.cs" />

Et remplacez les par des lignes de ce type.

<Compile Include="InstallationProgress.Designer.cs">
      <DependentUpon>InstallationProgress.cs</DependentUpon>
</Compile>

Voila enregistrez et rechargez le projet et l’élément est reconnu normalement.

Vous êtes développeur aussi je vous laisse adapter la transformation du xml à votre cas de figure ;-)


Edité la dernière fois le 6 Sep 2021 par Vincent


Tags: