2010-03-08 5 views
1

J'ai ajouté une clé de registre comme HKLM\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders\MyFolder avec un dossier dans lequel se trouvent mes assemblys, et je peux voir ces assemblys à partir de Visual Studio lorsque vous affichez la boîte de dialogue «Ajouter une référence».Comment définir les métadonnées SpecificVersion pour Visual Studio 2008 AssemblyFolders

Ma question est comment puis-je dire à Visual Studio qu'il devrait ajouter une référence vague au lieu d'une référence spécifique? Par exemple, dans mon fichier .csproj, je vois <Reference Include="System.Xml" /> sans jeton de version, de culture ou de clé publique. Mais quand j'ajoute ma propre référence, elle spécifie toutes ces choses, ce qui signifie que ma construction va se casser si je mets à jour un assemblage.

Alternativement, y a-t-il un moyen de faire en sorte que Visual Studio mette à False les métadonnées SpecificVersion? Cela permettrait d'atteindre le même objectif.

Répondre

0

Je crois que c'est par conception. L'EDI n'autorise pas l'ajout de vos assemblys sans numéro de version. Cela est logique dans le cas où vous pourriez développer une version particulière de composants.

Si votre code vérifie le numéro de version, vous devez choisir explicitement la nouvelle version en tant qu'auteur d'un assembly client. Sinon, vous pourriez être surpris en cassant les changements introduits dans l'assembly référencé.

Modifier Cet article sur l'Assemblée partielle Références à MSDN link text est probablement la façon dont vous voulez contourner ce problème. J'ai trouvé cela dans un autre post SO link text. Remarque: Dans ce cas, vous utiliserez Assembly.Load, qui apparaîtra dans le répertoire de l'application.

+0

Les références partielles dans le fichier csproj sont résolues au moment de la construction, donc si je spécifie la version, la culture, etc., mon assembly aura une référence qui inclut toutes ces choses tant que la construction trouve un assembly correspondant. –