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
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
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:
Mais j'ai rien trouvé qui puisse ressembler à publisher ou product...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 System.Deployment.Application.ApplicationDeployment ad; ad=System.Deployment.Application.ApplicationDeployment.CurrentDeployment;![]()
est-ce que quelq'un a pu aumoins récupérer des informations relatives au déployement autre que IsNetWorkDeployed, checkUpdate, update, IsFirstRun....
aucun n'a une idée?
j'ai ma réponse qui ne me convient pas du tout !
en englais, de la part d'un admin MS:
Ce n'est pas possible.
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.
source:
http://forums.microsoft.com/MSDN/Sho...76701&SiteID=1
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.
sinon, je suis obligé de recopier manuelement le publisherName et le ProductName.Envoyé par trois_1
c'est tout.
Pourquoi, tu ne trouve pas ma méthode correcte?
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.
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) {
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); }
Partager