IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[ClickOnce] connaitre l'editeur et le nom du produit déployé


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Par défaut [ClickOnce] connaitre l'editeur et le nom du produit déployé
    Comment connaitre le PublisherName et ProductName du déployment de l'application en cours?
    il peut-être different du .exe je pense...?
    merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Par défaut personne n'a essayé de récupérer par programmation le nom de l'éditeur
    personne n'a essayé de récupérer par programmation le nom de l'éditeur du déployement Clickonce?

    Je fais une classe que je souhaite réutiliser dans plusieurs projets, qui notament copie le racourci de StartMenu->programme->PublisherName->ProductName vers programme->demarrage.

    Pour cela j'ai besoin de connaitre par programme les champs:
    asmv2:publisher="MaSociete" asmv2:product="MonProduct"

    J'ai essayé en explorant l'objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.Deployment.Application.ApplicationDeployment ad;
    ad=System.Deployment.Application.ApplicationDeployment.CurrentDeployment;
    Mais j'ai rien trouvé qui puisse ressembler à publisher ou product...

  3. #3
    Membre confirmé
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Par défaut
    est-ce que quelq'un a pu aumoins récupérer des informations relatives au déployement autre que IsNetWorkDeployed, checkUpdate, update, IsFirstRun....

  4. #4
    Membre confirmé
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Par défaut aucun n'a une idée?
    aucun n'a une idée?

  5. #5
    Membre confirmé
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Par défaut J'ai la réponse
    j'ai ma réponse qui ne me convient pas du tout !
    en englais, de la part d'un admin MS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unfortunately there are no reflection APIs available to obtain this  information at runtime. You will need to hardcode this into your application.
    Ce n'est pas possible.
    source:
    http://forums.microsoft.com/MSDN/Sho...76701&SiteID=1

  6. #6
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Quel est le but de la manoeuvre ?
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  7. #7
    Membre confirmé
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Par défaut
    Citation Envoyé par trois_1
    Je fais une classe que je souhaite réutiliser dans plusieurs projets, qui permet de copier le racourci de StartMenu->programme->PublisherName->ProductName vers programme->demarrage.

    Pour cela j'ai besoin de connaitre par programme les champs:
    asmv2:publisher="MaSociete" asmv2:product="MonProduct"
    sinon, je suis obligé de recopier manuelement le publisherName et le ProductName.
    c'est tout.
    Pourquoi, tu ne trouve pas ma méthode correcte?

  8. #8
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Pourquoi tu n'utilises pas cette méthode: http://www.developpez.net/forums/sho...d.php?t=594197
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  9. #9
    Membre confirmé
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Par défaut
    Cette solution que tu m'avais donné était dèjà un progrès. OK

    Mais, elle nécessite de connaitre le PublisherName et le ProductName, que l'on ne connaît pas par programmation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void AddShortcutToStartupGroup(string publisherName, string productName)    {

  10. #10
    Membre confirmé
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Par défaut
    La solution de contournement est de prendre les attributs du manifest de l'assembly courente, avec l'assemblyName et le compagnyName:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
                if (!System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
                    return;
                if (!System.Deployment.Application.ApplicationDeployment.CurrentDeployment.IsFirstRun)
                    return;
     
                System.Reflection.Assembly callingAssembly=System.Reflection.Assembly.GetCallingAssembly();
                string publisherName;
                if (System.Attribute.IsDefined(callingAssembly, typeof(System.Reflection.AssemblyCompanyAttribute)))
                {
                    System.Reflection.AssemblyCompanyAttribute ascompany;
                    ascompany=(System.Reflection.AssemblyCompanyAttribute)System.Attribute.GetCustomAttribute(callingAssembly, typeof(System.Reflection.AssemblyCompanyAttribute));
                    publisherName=ascompany.Company; // Il est impossible de récuprer le publisherName par programmation(cf. post form msdn).
                }
                else
                {
                    publisherName="";
                }
                string productName=callingAssembly.GetName().Name;
                string startupPath=System.Environment.GetFolderPath(System.Environment.SpecialFolder.Startup);
                startupPath=System.IO.Path.Combine(startupPath, productName)+".appref-ms";
                if (!System.IO.File.Exists(startupPath))
                {
                    string allProgramsPath=System.Environment.GetFolderPath(System.Environment.SpecialFolder.Programs);
                    string shortcutPath=System.IO.Path.Combine(allProgramsPath, publisherName);
                    shortcutPath=System.IO.Path.Combine(shortcutPath, productName)+".appref-ms";
                    System.IO.File.Copy(shortcutPath, startupPath);
                }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connaitre le type et le nom de la fenetre windows active
    Par novice_prime dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/03/2013, 15h59
  2. récupérer nom de produits de ma base avec url rewriting
    Par Stéph utilisateur d'acces dans le forum Apache
    Réponses: 4
    Dernier message: 27/02/2009, 18h41
  3. Nom de produits
    Par stevevail dans le forum Dreamshield
    Réponses: 2
    Dernier message: 12/11/2008, 03h46
  4. Réponses: 10
    Dernier message: 15/04/2008, 17h15
  5. supprimer toutes les feuilles dont le nom contient "produit"
    Par Amiral19 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/07/2007, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo