J'ai une solution avec un projet .NET 4.0 (C#) qui produit une DLL signée retardée, que je dotfuscate et signe.Ignorer le numéro de build lors de la référence dll
EDIT: Voici comment version que je le dll:
[assembly: AssemblyVersion("0.7.0.*")]
[assembly: AssemblyFileVersion("0.7.0.0")]
J'ai une autre solution avec un projet .NET 4.0 (C++/CLI) qui fait référence à la dll signé et produit un dll signé (en fait , retardé signé et signé dans une publication de poste en raison de a flaw in the C++ build system).
Le problème est que la référence à la DLL contient un numéro de version spécifique, qui inclut même le numéro de build (je veux avoir un numéro de build).
Chaque fois que je compile la DLL référencée, je dois modifier le fichier de paramètres du projet (.vcxproj) afin qu'il fasse référence à la nouvelle version dll. Depuis que je travaille avec le contrôle de la source, c'est très gênant (différents ordinateurs peuvent avoir différents numéros de construction puisque chaque ordinateur construit sa propre DLL référencée - la DLL référencée n'est pas dans le contrôle de source).
Si je ne change pas la référence, je reçois un avertissement:
avertissement MSB3245: Impossible de résoudre cette référence. Impossible de localiser l'ensemble ...
Et beaucoup d'erreurs comme ceci:
erreur C3083: 'Foo': le symbole à gauche d'un '::' doit être un type
Ceux-ci sont résolus une fois que je change la référence.
Comment faire en sorte que la référence ignore le numéro de version ou même le numéro de version complet?
+1. Merci. J'ai édité ma question pour inclure la façon dont je versionne les assemblages et pour mentionner que c'est une faille dans la construction et pas un bug dans VS2010. Je veux que chaque build fasse une nouvelle version et ceci ne peut être fait qu'en utilisant [AssemblyVersion] et non avec [AssemblyFileVersion]. Ne devrais-je pas utiliser "*" dans [AssemblyVersion]? – brickner
Oui, l'utilisation de * dans [AssemblyVersion] provoque le problème. –
Merci @Hans Passant. Au fait, c'est vrai que je n'ai pas besoin de retarder. Mais je reçois un avertissement si je ne le fais pas. warning 810100b3: ... est un assembly signé avec un nom fort et l'insertion d'un manifeste invalide la signature. Vous devrez re-signer ce fichier pour en faire un assembly valide. – brickner