2010-11-12 2 views
7

Nous avons changé de VS2008 en VS2010 pour le développement. Mais l'exigence pour l'installation de l'application est toujours le cadre 3.5. Par conséquent, nous ciblons la construction de ce cadre. Tout fonctionne bien sauf un comportement étrange que je voudrais vérifier ne pas être un problème:VS2010 modifie les références de fichiers de ressources à la version 4.0 tout en ciblant la cible 3.5 Framework

Si quelqu'un édite des ressources entrées existantes dans les ressources.resx et resources.designer.cs modifier l'entrée system.windows.forms de 2.0 0.0 à 4.0.0.0. Exemple:

Avant le montage:

<assembly alias="System.windows.forms" 
      name="system.windows.forms, Version=2.0.0.0, ...[signature] /> 

Après:

<assembly alias="System.windows.forms" 
      name="system.windows.forms, Version=4.0.0.0, ...[signature] /> 

Cela semble être une référence pour les types ResXFileRef pour les photos. Une ligne plus tard, il dit:

<data name="mypic" type="System.Resources.ResXFileRef, System.Windows.Forms"> 
    <value>[pictureinfomation - referencing System.Drawing version 2.0]</value> 
</data> 

Exécution de l'application ne semble pas chercher la version 4. Mais je voudrais savoir à coup sûr, que ce n'est pas un problème.

Quelqu'un a des idées? J'ai googlé assez longtemps pour une réponse et je n'ai pas compris que le ResXFileRef est utilisé dans le mécanisme des ressources.

Merci pour tous les conseils si mon application n'utilise toujours que 3.5 versions.

Cordialement

+0

J'ai remarqué quelque chose de similaire; à savoir, la conversion d'une solution de VS2008 à VS2010 peut changer silencieusement les versions cible .NET Framework des projets. – stakx

+0

Il y a certainement du mapping transparent en cours. Voir ce fil pour référence: http://stackoverflow.com/questions/4065577/are-dependencies-promoted-in-net-assembly-manifests/4065799#4065799 –

+0

Où dans les fichiers de ressources voyez-vous ? Essayer de recréer ceci, et je ne peux pas trouver cette étiquette n'importe où dans le projet ... –

Répondre

0

Il n'a pas d'impact sur votre application, que les binaires compilés sont toujours contre .NET 3.5.

S'il s'agit d'un bug, vous ne devriez pas être le premier à le remarquer.

1

Je ne pense pas que ce soit un bug. Essayez de compiler l'application et déployez-la et testez-la.

Obtenez également les propriétés de dll en utilisant 'ildasm'et vérifiez

+0

Je l'ai fait. Mais je craignais qu'il ne s'agisse d'une référence chargée au moment de l'exécution et qu'elle pose donc un risque d'exécution. Donc, je pensais que quelqu'un de nouveau à coup sûr à quoi sert cette entrée et si/quand elle est chargée (peut-être seulement VS concepteur?). – Uwe

+0

Je ne pense pas que cela arrivera. Vous pouvez donner un test et le vérifier –

Questions connexes