version d'une dll

Le
Sylfelin
Bonjour,

Dans une dll, je voudrais mettre une fonction GetVersion qui me
renverait le numéro de version de la DLL compilé.


Comment récupérer le numéro de version de la DLL défini dans les
informations de l'assemblies ?

Merci

--

--
Merci
Sylfelin
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Crest Teethgel
Le #12169851
> Dans une dll, je voudrais mettre une fonction GetVersion qui me
renverait le numéro de version de la DLL compilé.


Comment récupérer le numéro de version de la DLL défini dans les
informations de l'assemblies ?



Il suffit de définir ta fonction comme exportable dans DLL_PROCESS_ATTACH
elle fera alors appel aux API GetFileVersionInfo et VerQueryValue


Crest
Fred
Le #12169841
Dans : news:,
Sylfelin disait :
Bonjour,



Bonjour,


Dans une dll, je voudrais mettre une fonction GetVersion qui me
renverait le numéro de version de la DLL compilé.



System.Reflection.Assembly.GetExecutingAssembly.GetName.Version

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Sylfelin
Le #12169831
> Il suffit de définir ta fonction comme exportable dans DLL_PROCESS_ATTACH
elle fera alors appel aux API GetFileVersionInfo et VerQueryValue



DLL_PROCESS_ATTACH c'est en code non managé (c++ ou autre), en win32;

Après "Reflection" et recherche j'ai le code suivant qui fonctionne.

public string GetDLLVersion()
{
System.Reflection.Assembly assembly =
System.Reflection.Assembly.GetExecutingAssembly();

System.Diagnostics.FileVersionInfo fileVersionInfo =
FileVersionInfo.GetVersionInfo(assembly.Location);

return fileVersionInfo.FileVersion;
}

--

--------------------------
Merci
Sylfelin
Gilles TOURREAU
Le #12169821
Le Mon, 22 Oct 2007 17:16:56 +0200, Sylfelin

Il suffit de définir ta fonction comme exportable dans
DLL_PROCESS_ATTACH
elle fera alors appel aux API GetFileVersionInfo et VerQueryValue



DLL_PROCESS_ATTACH c'est en code non managé (c++ ou autre), en win32;

Après "Reflection" et recherche j'ai le code suivant qui fonctionne.

public string GetDLLVersion()
{
System.Reflection.Assembly assembly =
System.Reflection.Assembly.GetExecutingAssembly();

System.Diagnostics.FileVersionInfo fileVersionInfo =
FileVersionInfo.GetVersionInfo(assembly.Location);

return fileVersionInfo.FileVersion;
}




ATTENTION : Ceci renvoi la version Win32 de l'Assembly et nom la version
.NET de l'Assembly.

Il est possible en effet de définir des versions Win32 et .NET différentes
pour un même assembly (cf les attributs AssemblyFileVersion vs
AssemblyVersion).

Donc pour la version Win32 utilisez FileVersionInfo.GetVersionInfo()
Pour la version .NET utilisez la méthode posté par Fred (que je corrige au
passage)

System.Reflection.Assembly.GetExecutingAssembly().GetName().Version

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Delf
Le #12169791
Sylfelin a présenté l'énoncé suivant :

Dans une dll, je voudrais mettre une fonction GetVersion qui me renverait le
numéro de version de la DLL compilé.



Version d'une l'assembly sous la form 1.0-2007-10-24 (23:36:21) via
méthodes statiques.

Dans l'assemblyInfo.cs, avoir l'entrée de la forme :

[assembly: AssemblyVersion("0.1.*")]

et pas de AssemblyFileVersion

-----

using System;
using System.Reflection;

namespace System.Reflection.AssemblyVersion
{
public sealed class CAssemblyVersion
{
public static string GetVersion()
{
Version version =
Assembly.GetExecutingAssembly().GetName().Version;

return GetStrVersion(version);
}

public static string GetVersion(Type pAssemblyType)
{
Version version =
Assembly.GetAssembly(pAssemblyType).GetName().Version;

return GetStrVersion(version);
}

public static string GetVersion(string pAssemblyPath)
{
Version version =
Assembly.LoadFile(pAssemblyPath).GetName().Version;

return GetStrVersion(version);
}

private static string GetStrVersion(Version pVersion)
{
DateTime compilationDateTime = new DateTime(pVersion.Build
* TimeSpan.TicksPerDay + pVersion.Revision * TimeSpan.TicksPerSecond *
2).AddYears(1999).AddHours(1);

return pVersion.ToString().Substring(0, 3) + '-' +
GetStrDate(compilationDateTime.Date) + " (" +
compilationDateTime.ToLongTimeString() + ")";
}

private static string GetStrDate(DateTime pDateTime)
{
return pDateTime.ToString("yyyy-MM-dd");
}
}
}

-----

--
Delf
Publicité
Poster une réponse
Anonyme