Plusieurs installations ClickOnce avec une identité de déploiement différente, mais une même identité D'Application

nous avons plusieurs déploiements des mêmes assemblages avec des fichiers de configuration différents pour des environnements différents. Nous les empaquetons pour séparer les déploiements ClickOnce avec différentes identités de déploiement (Program_ENV1, Program_ENV2, etc.).

L'identité de L'Application est le programme.exe pour tous, parce que nous avons un tiers composant qui nécessite l'exécutable de l'utiliser pour avoir le même nom qu'il a été compilé.

quand nous voulons avoir plusieurs installez le même numéro de version sur la même machine (pour les tests), nous obtenons une erreur d'installation que quelque chose avec la même identité d'application existe déjà.

nous ne voulons pas faire de compilations séparées avec de nouveaux numéros de version pour chaque déploiement (QA a autorisé les assemblages de version X. X. 45, pas la version X. X. x. 46).

Est-il une autre façon de contourner ce problème?

26
demandé sur Peter Mortensen 2009-07-30 08:55:03

5 réponses

pour exécuter des versions concurrentes D'une application ClickOnce, vous devez changer le nom D'assemblage, et il est recommandé que vous changiez aussi le nom de produit dans les propriétés D'édition, de sorte que vous pouvez dire dans un menu de départ qui est lequel.

Cliquez ici pour voir comment installer plusieurs Versions simultanément

16
répondu RobinDotNet 2009-08-22 07:15:37

j'ai fini par utiliser -u -mise à Jour option pour créer un nouveau déploiement pour QA basé sur la Production.

Voici les étapes que j'ai fait pour tester un vérifier

  1. créer une simple application WPF
  2. copié mage.exe pour le projet depuis Visual Studio ne peut pas le résoudre au moment de la construction
  3. a ajouté le texte ci-dessous à la compilation post du projet

cd " $(TargetDir)"

"$(ProjectDir)mage.exe " - Nouveau Application-Name $(ProjectName) -psil-TrustLevel FullTrust-Version 1.0.0.0-FromDirectory . - ToFile ".\$(TargetFileName).manifeste"

"$(ProjectDir)mage.exe",- Déploiement -Installation de faux -Nom $(ProjectName) -p msil -Version 1.0.0.0 -AppManifest ".\$(TargetFileName).manifeste "- ToFile".\$(TargetName).l'application"

"$(ProjectDir)mage.exe" mise à Jour ".\$(TargetName).application " - Installer false-Name $(ProjectName).AQ-P msil-Version 1.0.0.0 - AppManifest".\$(TargetFileName).manifeste" -ToFile ".\$(TargetName).Assurance de la qualité.l'application"

j'avais besoin de changement à l' " $(TargetDir)" par cd " $(TargetDir)" parce que mage ne traiterait pas les répertoires et les chemins de fichiers correctement quand je lui donnais des chemins avec des espaces qui sont enfermés dans des guillemets doubles. Pour contourner cela, je mets le répertoire courant à l'endroit où les fichiers sont construits.

la 2ème ligne crée le fichier manifest

la troisième ligne crée le Production fichier de déploiement.

la quatrième ligne crée le QA fichier de déploiement à partir du Production fichier de déploiement. ( NOTE: je suis en ajoutant QA pour le fichier de déploiement et l' Nom De La Demande.)

la quatrième ligne provoque la création d'un deuxième fichier de demande. Lorsque les deux applications sont lancées, elles auront les mêmes binaires mais Applicationdéploiement.UpdateLocation seront différents pour chacun. On aura le nom de fichier $(TargetName).application et l'autre aura le nom de fichier $(TargetName).QA.application. Dans mon code, je peux utiliser ceci pour déterminer quelle 'Version' de L'Application a été exécutée ( QA ou Production)

3
répondu Hasani Blackwell 2012-04-27 06:33:37

Essayez d'utiliser MageUI. Ouvrez votre manifeste de déploiement (celui avec le .extension de l'application). Sélectionnez " Nom "dans la liste à gauche et modifiez la zone de texte" Nom". Sélectionnez ensuite " Description "dans la liste et modifiez le champ" produit". De cette façon, vous serez en mesure de distinguer vos différentes installations sur le menu Démarrer et dans add/remove programs.

Enregistrez vos modifications, signez de nouveau le manifeste, et vous devriez être prêt à partir.

1
répondu codeConcussion 2009-07-31 13:52:12

Karg, si vous utilisez MageUI vous pouvez modifier L'identité D'application et exécuter plusieurs versions publiées de la même application à la fois.

1
répondu TabbyCool 2009-12-07 14:40:14

pour chaque environnement, conservez des noms d'assemblage et des noms de produits séparés avec un postfix du nom de l'environnement. En outre, créer un GUID pour chaque environnement, et ajoutez-le à AssemblyInfo.cs, par exemple:

[assembly: GuidAttribute("FA380FBE-11B0-406E-88D3-AF40BE93F7D6")]

cela permet alors d'exécuter la même application à partir de sites ClickOnce séparés, chacun ayant un raccourci correspondant au nom du produit.

-1
répondu Nigel Findlater 2016-05-23 20:03:17