2010-10-13 8 views
1

J'ai 2 serveurs. L'un est la production et les serveurs de test.clickonce question d'installation

Maintenant, j'ai une application WPF qui se trouve dans les serveurs de production et de test. Comment puis-je installer l'application WPF sur ma machine locale avec les serveurs de production et de test? Je continue à recevoir une erreur la même signature a été installée.

merci

Répondre

3

Vous avez besoin d'un package ClickOnce distinct pour chaque environnement. Chaque paquet devra avoir un nom assemblyIdentity différent. Recherchez dans le fichier de manifeste de déploiement (* .application) l'élément assemblyIdentity. L'attribut name de cet élément doit être différent pour chaque environnement. Il ressemblera à quelque chose comme:

<assemblyIdentity 
    name="Product_TEST" 
    version="2.5.44.19347" 
    publicKeyToken="82e7b44bd73eeecd" 
    language="neutral" 
    processorArchitecture="msil" 
    xmlns="urn:schemas-microsoft-com:asm.v1" /> 

Nous utilisons des noms tels que: Product_TEST, Product_UAT, Product_PROD de distinguer entre chaque instance ClickOnce. En utilisant cette méthode, nous sommes en mesure d'installer plusieurs instances d'un produit côte à côte sur un PC client. Cela signifie que vous devez créer un package ClickOnce distinct pour chaque environnement. Le manifeste de déploiement sera différent pour chacun et, par conséquent, chaque paquet aura des signatures de signature différentes (si vous utilisez des paquetages signés). Nous utilisions des cibles msbuild ClickOnce pour construire des paquets séparés pour tous nos environnements, mais nous avons récemment modifié la construction d'un paquet générique et avons un outil de configuration personnalisé qui effectue le reconditionnement de ClickOnce selon les besoins. Vous pouvez également utiliser Mage.

+0

Je n'arrive pas à comprendre comment changer l'attribut de nom. J'utilise msbuild avec/t: publish –

+0

Si vous utilisez la cible intégrée/t: Publish, vous devrez modifier le nom via les propriétés du projet dans VisualStudio. Ouvrez les propriétés du projet, cliquez sur l'onglet Publier et cliquez sur Options. J'utilise les cibles msbuild de GenerateApplicationManifest et de GenerateDeploymentManifest directement dans mes scripts de construction, donc je peux définir les propriétés si nécessaire. – Glenn

+0

Peut-être que cela a changé, mais je ne vois pas comment faire. Dans tous mes tests, tout ce que j'ai réussi à faire est d'obtenir le nom d'identité de AssemblyName, mais il produit toujours la mauvaise valeur. –