La lecture du numéro de Version à partir d'un AssemblyInfo.cs fichier
Je suis en train d'extraire le numéro de version à partir d'un AssemblyInfo.cs fichier!
Et je suis en train d'utiliser System.Reflection.Assembly.LoadFile(path);
Mais tout en faisant cela je reçois un BadImageFormatException; "Le module a été prévu pour contenir un manifeste d'assembly. (Exception de HRESULT: 0x80131018)". Alors maintenant, je wounder, n'est-ce pas une façon d'aller à ce sujet? Et dois-je utiliser des RegEx?
J'ai lu de nombreux exemples avec GetExecutingAssembly()
mais je ne veux pas d'obtenir la version à partir d'un autre projet.
Précisions: je veux lire les informations de version de l' AssemblyInfo.cs fichier! Et pas à partir d'un fichier compilé. Je suis en train de faire un outil pour mettre à jour ma version numéros avant de me faire une nouvelle version.
Hehe, compiler d'abord, puis vous pouvez utiliser de l'Assemblée.Load(). Si vous voulez vraiment creuser dehors de AssemblyInfo.cs puis d'écrire un texte de l'analyseur.
OriginalL'auteur Markus | 2012-05-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir la version de l'Assembly sans chargement comme:
Modifier:
Si vous voulez lire un fichier, puis vous pouvez faire comme ceci:
//Sortie
Espérons que cette aide...
[assembly:AssemblyVersion
(c'est à dire l'espace supprimé)OriginalL'auteur Niranjan Singh
Vous pouvez spécifier la cible de l'assemblée chemin dans AssemblyName.GetAssemblyName
OriginalL'auteur ABH
AssemblyInfo.cs
fichier est compilé à l'IL de l'assemblée.Si vous chargez cette assemblée, vous pouvez lire la version avec tous les exemples que vous avez déjà vu. Qui est de la lecture d'une version embarquée de l'information à partir de la compilation d'un fichier d'assemblage, et il peut être remplacé par le processus de compilation pour une valeur différente de ce qui est dans
AssemblyInfo.cs
Cependant, il semble que vous vous souhaitez à la place est de lire un numéro de version à partir
AssemblyInfo.cs
fichier texte, sans le compiler vers le bas.Si c'est le cas vous avez vraiment juste utiliser les regex avec un format adapté à votre projet, ou même venir avec une convention qui va garder les choses simples.
Cela pourrait être aussi simple que de
Vous auriez à envisager la convention autour de ce qui se passe là-bas, depuis
1.0.*
est une version valide de la chaîne, qui se traduit par des valeurs d'horodatage de la forme1.0.nnn.mmm
au moment de la compilation, etnnn
etmmm
partie étroitement deviner, mais pas précisément deviner.OriginalL'auteur aiodintsov
Il semble que vous essayez de charger un assembly compilé pour x86 dans un x64 environnement ou vice-versa.
Assurer le montage de ce code réside dans, est construit pour le même environnement que la cible et vous pouvez l'obtenir avec les exemples, il semble que vous avez lu.
Ensuite, Hans Passant est mort avec son commentaire, vous allez avoir besoin pour analyser le texte brut.
OriginalL'auteur Steve Danner
Vous pouvez procéder à l'Assemblage.GetName().La Version où votre assemblée pourrait être le type de votre classe
Pour l'application de test, j'ai travailler sur, montre-moi les détails ci-dessous à l'aide de code ci-dessus:
OriginalL'auteur VikrantMore
Voici l'article qui explique le code pour lire les valeurs de AssemblyInfo.cs de la classe.
http://lancelarsen.com/reading-values-from-assemblyinfo-cs/
Espère que cela aide.
OriginalL'auteur Mohit Verma - MSFT