<Subtype> Designer </Subtype> Ajouté puis supprimé par Visual Studio lors du chargement / déchargement

178

Quelqu'un a vu ça avant? J'ai un grand projet Visual Studio qui continue d'ajouter [Subtype]Designer[/Subtype]à mon .vcprojpuis de le supprimer à la prochaine ouverture et fermeture du projet. Il n'y a qu'une seule classe définie dans StoredImageControl.cs. Tout le monde sait comment arrêter cela car cela perturbe vraiment mon contrôle de révision.

C'est avant:

<EmbeddedResource Include="StoredImageControl.resx">
  <DependentUpon>StoredImageControl.cs</DependentUpon>
</EmbeddedResource>

C'est après

<EmbeddedResource Include="StoredImageControl.resx">
  <DependentUpon>StoredImageControl.cs</DependentUpon>
  <SubType>Designer</SubType>
</EmbeddedResource>
Jeff Lundstrom
la source
Voir la même chose avec <SubType> UserControl </SubType> dans VS 2005. Très étrange.
David Gardiner
1
Je vois aussi ce problème dans VS 2008
schoetbi
1
Ran dedans dans VS 2010. Aussi confus.
Jon Davis
La même chose m'arrive tout le temps dans VS 2008. J'essaie de diminuer son impact sur le contrôle de la source en revenant peu de temps après les vérifications, juste avant de commencer à faire un travail réel ... mais c'est un kludge et j'oublie souvent de le faire. Avez-vous essayé de le signaler via connect.microsoft.com?
Alan le
2
Pourquoi avez-vous un fichier de code source C # dans un projet C / C ++?
Hans Passant

Réponses:

96

Cela peut être lié aux fichiers que vous avez ouverts dans l'état de solution enregistré. J'ai rencontré ce problème dans VS2010 et j'ai constaté que si je ferme la solution alors qu'un fichier .xml était ouvert dans l'éditeur, lors de la réouverture ultérieure de la solution, le projet contenant ce fichier .xml recevrait cette <SubType>Designer</SubType>ligne ajoutée. Si je ferme la solution sans que ce fichier ne soit ouvert, cependant, il n'essaye pas d'ajouter cette ligne à la réouverture suivante.

Nathan Reed
la source
8
Cela semble avoir été le problème pour moi (VS 2010 également). C'est ennuyeux que Visual Studio apporte ses propres modifications à vos fichiers en fonction de ceux qui sont ouverts, d'autant plus qu'ils apparaissent dans votre système de contrôle de source. Je dois aimer les "fonctionnalités" de Microsoft ...
Ben Sutton
10
Il s'agit toujours d'un problème ouvert avec MS: connect.microsoft.com/VisualStudio/feedback/details/757970/…
Pat
4
C'est VS2015, et pourtant cela se produit toujours.
Johnny_D
3
VS2017, toujours un problème. Rend l'utilisation du contrôle de source impossible, car VS ajoute constamment ces <Subtype>Designer</SubType>balises stupides de manière sporadique.
Triynko
1
Ils ont tué connect mais developercommunity.visualstudio.com/content/problem/204355/… dit que c'est résolu au moins pour VS2019 Preview 2
Josh Sutterfield
38

Cela a été un problème dans au moins 3 éditions de Visual Studio, 2008, 2010 et maintenant 2012. Il est enregistré comme un bogue dans Microsoft Connect mais la réponse MS est "Nous avons enregistré votre demande mais ne prévoyons pas de résoudre ce problème à ce stade. temps." Suggérez-vous de voter pour le rapport de bogue car il est toujours actif et pourrait obtenir une meilleure réponse de MS avec suffisamment de votes.

JohnC
la source
25
2013 et maintenant 2015 ont le même problème.
James Skemp
4
Oui, je l'ai vu pour la première fois dans VS2015 tout à l'heure.
JohnC
3
Non JohnC, ce n'est pas un bug, c'est une infraction pénale.
Patrick Fromberg
4
Microsoft Connect est obsolète, j'ai ouvert un nouveau numéro sur developercommunity.visualstudio.com. C'est "à l'étude", alors votez!
enzi le
"Nous avons résolu ce problème et il est disponible dans Visual Studio 2019 Preview 2 Merci pour vos commentaires!" - selon une solution sur le problème devcommunity.
Josh Sutterfield
8

Je rencontre le même problème dans le fichier .csproj de mon application Web ASP.NET:

<ItemGroup>
  <Content Include="site.master" />
  <Content Include="Web.config">
    <SubType>Designer</SubType>
  </Content>
</ItemGroup>

Contre:

<ItemGroup>
  <Content Include="site.master" />
  <Content Include="Web.config" />
</ItemGroup>

Mon ennui avec ce problème est également dû aux changements de contrôle des révisions. Le problème semble être présent dans VS 2005/2008/2010. J'ai trouvé la question suivante sur les forums Microsoft, mais la réponse n'est pas claire.

J'espère qu'un paramètre VS le cause, auquel cas, j'aimerai que vous sachiez quand je découvrirai ce qu'est ce paramètre.

JohnB
la source
1
Le problème est également pressant en 2013.
Johan
Juste un autre exemple de Visual Studio modifiant des fichiers quand il en a envie. Un jour, Microsoft se rendra enfin compte que l'utilisateur devrait être en charge et changer au hasard les fichiers sans que les utilisateurs OK ne devraient JAMAIS arriver
goneskiing
7

Essayez-vous de placer le sous-type comme attribut de l'objet EmbeddedResource?

<EmbeddedResource Include="StoredImageControl.resx" SubType="Designer"> 
  <DependentUpon>StoredImageControl.cs</DependentUpon> 
</EmbeddedResource> 

J'ai vu une question comme la vôtre dans le lien suivant et il a résolu son problème avec ceci:

http://community.sharpdevelop.net/forums/t/9977.aspx

Mauro Gagna
la source
1
L'utilisation de l' SubTypeastuce d'attribut ne fonctionne pas sur les <Content>éléments: VS2010 se plaint que l'attribut n'est pas reconnu.
Pierre Arnaud
3

J'ai trouvé que cela <SubType>Designer</SubType>modifiait le comportement de Web.config.

Nous utilisons WebDeploy pour publier des fichiers de service Web.

Si SubType est défini pour Web.config - il publie ce fichier correctement dans le répertoire principal où tous les fichiers de contenu vont et .svc.

Si SubType n'est pas défini - il le fait ci-dessus mais copie également Web.config sous bin \ sous-répertoire - ce qui est très étrange! Dans le journal MsBuild, cela se produit pendant la cible CollectFilesFrom_SourceItemsToCopyToOutputDirectory.

Ivan
la source
0

Pour moi également, cela pose des problèmes avec le contrôle de version lors de l'ajout de nouveaux fichiers au projet.

En guise de contournement, j'ai fait: annuler les modifications en attente du fichier de projet, puis ajouter manuellement de nouveaux fichiers par un clic droit -> ajouter des fichiers existants au projet.

En faisant cela, le tag < SubType >Designer< /SubType >ne vient pas.

J'espère que cela aidera quelqu'un. D'où publier ceci.

NidhinSPradeep
la source