2012-10-29 2 views
2

J'essaye d'automatiser une construction de tfs pour un clic une fois l'application .net C#. J'ai modifié le fichier xaml par défaut en fonction du message suivant: http://blog.dontpaniclabs.com/post/2011/04/29/ClickOnce-Publish-and-Deploy-from-Team-Foundation-Server-2010.aspx Cela fonctionne bien pour les projets simples qui n'ont pas de projet référencé, mais pour un projet qui fait référence à un projet de bibliothèque, il ne fonctionne pas correctement. La construction réussit cependant en réalité, je reçois les 2 avertissements suivants:Automatiser clickonce publier avec msbuild pour le projet avec une référence de projet

  1. Impossible d'appliquer publier des propriétés pour l'article « library.dll ».
  2. Deux assemblys ou plus ont la même identité 'clickonceprojectname.Client, Version = 1.0.1.17, Culture = neutre, PublicKeyToken = 4F6F13E2414E9925, ProcessorArchitecture = msil'.

et library.dll n'est pas inclus dans le dossier des fichiers de l'application et, par conséquent, le clic une fois l'installation échoue. Pour moi, il semble que pour une raison quelconque, msbuild essaie de publier le projet dépendant ainsi que le projet click une fois. Est-ce que je peux y remédier?

J'ai lu beaucoup de messages et j'ai déjà essayé de nombreuses solutions, notamment m'assurer que la copie locale = vrai dans le fichier projet, et réinitialiser tous les fichiers d'application dans l'onglet publier dans les propriétés du projet. quelqu'un peut-il m'aider avec cela? Je me bats avec cela pendant plusieurs jours

Répondre

0

Après beaucoup de recherches, nous avons découvert que la cause de ce problème était d'avoir dans les paramètres msbuild pour le clic une fois publier le paramètre assemblyName. Si vous supprimez ce paramètre, la construction fonctionne aussi bien pour les DLLs dépendantes. Puisque pour chaque projet nous avons des versions de qa, bêta et de production et que nous devons pouvoir les exécuter côte à côte sur le même ordinateur, nous devons avoir des noms d'assemblages différents pour les différentes versions. Si vous ne spécifiez pas le nom de l'assemblage dans les paramètres msbuild, il le prend dans le fichier de projet. La solution de contournement que j'ai créée pour cela a été créée une activité personnalisée qui met à jour le fichier projet avec assemblyName en fonction du type de publication. Si quelqu'un veut je peux partager le code de l'activité personnalisée. Donc je change le nom de l'assemblage dans le fichier projet avant le publier et ça marche bien !!!

Questions connexes