Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

version d'une dll

5 réponses
Avatar
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

5 réponses

Avatar
Crest Teethgel
> 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
Avatar
Fred
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)
Avatar
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;
}

--

--------------------------
Merci
Sylfelin
Avatar
Gilles TOURREAU
Le Mon, 22 Oct 2007 17:16:56 +0200, Sylfelin
a écrit:

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
Avatar
Delf
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