Question

Je ne suis même pas sûr que le mot de version soit le bon mot, mais il faudra que ce soit le cas. Je souhaite commencer à ajouter une note de "Version x.x.xx" sur nos applications internes à la demande de nos utilisateurs, afin qu'ils aient une idée approximative de la date de mise à jour (et à l'avenir d'un lien indiquant les modifications apportées). Il semble que l’utilisation du fichier AssemblyInfo.cs soit une bonne idée. Elle vous permet de mettre à jour automatiquement la révision + version, ce qui est bien (pour le fichier .DLL de l’application Web).

Est-ce une approche décente? Ensuite, chaque fois que j'atteins les jalons de version majeure / mineure pour mon application. Je peux juste les mettre à jour manuellement, correct? Tout cela suppose que je puisse réellement obtenir les informations de version de mon application. en quelque sorte, que je n'ai pas la moindre idée comment faire non plus.

Était-ce utile?

La solution

Nous faisons la même chose dans notre application. Bien que vous puissiez ajouter le numéro de version manuellement, nos informations de version sont ajoutées à l'assemblage dans le cadre de notre processus de génération automatisée (nous utilisons un service TFS 2008 personnalisé), ce que je recommande vivement. Voici le contrôle que nous utilisons (nous venons de mettre cela au bas de la page maître):

public class BuildVersion : WebControl
{
    /// <summary>
    /// Render override
    /// </summary>
    /// <param name="writer"></param>
    protected override void Render(HtmlTextWriter writer)
    {
        writer.Write("<!--");
        writer.Write("Version: ");
        writer.Write(GetAssemblyVersion());
        writer.Write("-->");
    }

    private string GetAssemblyVersion()
    {
        try
        {
            Object[] atts = Assembly.GetAssembly(this.GetType()).GetCustomAttributes(true);
            foreach (Object o in atts)
            {
                if (o.GetType() == typeof(AssemblyVersionAttribute))
                {
                    return ((AssemblyVersionAttribute)o).Version;
                }
            }
            return String.Empty;
        }
        catch
        {
            return "Failed to load assembly";
        }
    }
}

Autres conseils

Vous pouvez utiliser des numéros de version dans la façon dont vous décrivez, en modifiant simplement les numéros dans le fichier AssemblyInfo lors de la création de nouvelles versions, mais il est préférable de les associer à un système de contrôle de code source. Nous utilisons les projets CrusieControl.NET et Web Deployment pour définir le numéro de version, mais je suis certain que d'autres auront d'autres suggestions.

Vous pouvez également obtenir le numéro de version d'un site Web compilé à l'aide du code suivant:

System.Reflection.Assembly.GetExecutingAssembly.GetName.Version.ToString

Si votre exécution en mode débogage avant la compilation, il affiche 0.0.0.0, mais vous pouvez le vérifier et afficher " Développement " ou de montrer à vous-même que cela fonctionne localement (non pas que vous ne le sachiez pas, mais si vous voyez un jour 0.0.0.0, vous savez que quelque chose ne va pas.

L’espoir que cela aide

Ce n'est pas une mauvaise idée. La solution pour obtenir la version de votre DLL ASP.NET Web App est simple:

VB.NET

My.Application.Info.Version (VB.NET)

C #

Accédez à l’espace de noms Mon comme indiqué ici http: //www.codeproject. com / KB / cs / MyNamespace.aspx

Beaucoup plus facile que d'utiliser des tonnes de code.

Nous automatisons le contrôle de version avec subversion, ccnet et nant.

Notre script analyse le chemin du dossier (/Branches/1.4.5/Source ...) et extrait le numéro de version (1.4.5). Après cela, nous récupérons le numéro de révision actuel de subversion et le plaçons à la dernière position de la version (c'est-à-dire 1.4.5.346). Une fois que nous avons le numéro de version complet, nous l'injectons dans tous les assemblys et l'écrivons dans un fichier version.txt afin de déterminer plus facilement la version actuellement déployée sur les serveurs Web.

Avec un Assembly , utilisez un .GetName (). Version.ToString () pour obtenir la version en code.

GetName renvoie un AssemblyName .

La version renvoie la version spécifiée dans votre fichier AssemblyInfo.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top