97 votes

Impossible d'appliquer les propriétés de publication pour l'élément X

Chaque fois que nous faisons une construction dans notre solution principale, nous recevons l'avertissement suivant :

Impossible d'appliquer les propriétés de publication pour l'élément "microsoft.visualstudio.qualitytools.unittestframework".

Quelqu'un a-t-il déjà vu quelque chose comme ça ? Avez-vous des idées sur la façon de le résoudre ? Cela se produit sur toutes nos machines de développement et également sur notre serveur de construction TFS. Cependant, il n'apparaît qu'en mode débogage.

177voto

Guthwulf Points 2168

Il semble que le problème soit lié à ClickOnce. Naviguez jusqu'au projet, faites un clic droit dessus et cliquez sur Propriétés. Allez dans l'onglet Publier et cliquez sur Fichiers d'application. Cochez la case " Afficher tous les fichiers " et faites défiler la liste des fichiers. Vous finirez par tomber sur le fichier marqué d'un point d'exclamation jaune. Ce fichier est orphelin et doit être supprimé. Cliquez avec le bouton droit de la souris sur le fichier et il devrait y avoir une option de suppression.

Maintenant, construisez la solution et l'avertissement devrait disparaître.

16 votes

Cela fait deux fois que je cherche ce problème sur Google et que je trouve cette réponse. Je finirai bien par apprendre :p

5 votes

Show all files est la clé de la réussite.

5 votes

@NickSpreitzer Troisième fois pour moi. Cette fois-ci, j'ai même été surpris par mon propre commentaire.

4voto

Jirka Hanika Points 8266

La réponse la plus votée est parfaite en l'état, mais ceux d'entre nous qui sont confrontés à des crises plus importantes peuvent bénéficier de cette réponse alternative. Elle décrit une solution analogue au niveau du fichier.

L'avertissement est causé par un élément comme celui-ci :

<PublishFile Include="THIS IS USUALLY SOME IMAGINARY DLL">
  <Visible>False</Visible>
  <Group>
  </Group>
  <TargetPath>
  </TargetPath>
  <PublishState>Exclude</PublishState>
  <IncludeHash>True</IncludeHash>
  <FileType>Assembly</FileType>
</PublishFile>

...dans le fichier de projet (.csproj) émettant l'avertissement. Remarquez le PublishState "Exclude" ; cet élément dit "veuillez ne pas publier la DLL imaginaire" ; c'est évidemment une instruction inutile si une telle DLL n'existe pas au moment de la publication, mais elle est également à l'origine de l'avertissement car le processus de publication ne peut pas évaluer l'identité du fichier.

Vous pouvez retirer l'ensemble du PublishFile pour chaque élément de déploiement mentionné dans les avertissements, tant qu'il possède PublishState "Exclude". Ne supprimez pas mécaniquement chaque élément avec PublishState "Exclude", car s'il n'y avait pas d'avertissement à ce sujet, le fichier est probablement disponible au moment de la publication et il pourrait finir par être publié - ce qui serait une modification indésirable du produit tant que vous voulez seulement vous débarrasser de l'avertissement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X