web-dev-qa-db-fra.com

Projet GUID continue à changer

Nous avons une solution VS2008 et j'ai remarqué quelque chose de bizarre:

certains projets font référence à d'autres projets définis dans la même solution (ajoutés en tant que références de projet). Cela a été fait il y a quelque temps.

Construire directement à partir de VS fonctionne bien.

La construction à partir de MSBUILD échoue.

J'ai supprimé la référence du projet et je l'ai ajoutée, et j'ai remarqué que le GUID du projet était modifié. Construire à partir de MSBUILD fonctionne maintenant.

Le problème est que je dois maintenant passer en revue tous les projets et vérifier cela.

De plus, je ne sais pas pourquoi cela s’est produit (pourquoi le projet GUID est-il différent de ce qu’il était auparavant, et je ne suis pas sûr que cela puisse se reproduire).

Quelle pourrait en être la cause?

29
lysergic-acid

Je vois également ce problème dans Visual Studio 2013 et il ne nécessite pas l'intégration du contrôle de code source. 

Cela m'arrive parfois lorsque j'ai le même projet dans plusieurs solutions, chaque solution utilise un GUID différent pour ce projet et met à jour le projet en conséquence. La solution consiste à modifier manuellement les fichiers .sln pour les synchroniser. Le mérite de cette réponse revient à Chunsheng Tang.

Commencez par ouvrir le fichier de solution (.sln) avec le bloc-notes et consultez les références du projet. Le format est comme ça:

     # Visual Studio 2005
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsApplication1", "WindowsApplication1\WindowsApplication1.csproj", "{9378D255-CE38-45CD-82FA-A1EBFB86FD6C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1", "ClassLibrary1\ClassLibrary1.csproj", "{DE374096-FF44-4FDF-B248-C767039B4175}"
EndProject

Le second GUID de chaque projet est la référence au projet partagé.

Pour résoudre le problème, sélectionnez un seul GUID pour votre projet partagé. Assurez-vous que toutes les solutions qui l'ouvrent ont ce même single et donc le même GUID dans leurs fichiers de solution. (S'il vous plaît sauvegarder vos fichiers avant d'apporter ces modifications)

https://social.msdn.Microsoft.com/Forums/fr-US/1d632940-cc1d-49d5-a64c-d3e999216cbd/cant-avoid-the-projectguid-de-being-being-changed-in-csproj-file? forum = csharpide

32
Ty H.

Le ProjectGuid change en raison de l'intégration avec un système de contrôle de source, tel que TFS. Cela se produit si d'autres personnes ouvrent les fichiers, par exemple. 

Il existe une solution de contournement décrite ici: 

http://social.msdn.Microsoft.com/Forums/en-US/csharpide/thread/1d632940-cc1d-49d5-a64c-d3e999216cbd

13
Bogdan Gavril MSFT

Le problème pour moi s’est révélé être un doublon GUID dans l’un des fichiers de solution. Dans le fichier .sln de mon programme d’installation, j’ai constaté que le projet de configuration GUID (utilisé dans tous les locaux) et le projet d’installateur GUID (spécifique à la solution) étaient identiques. En ouvrant la solution, VS a modifié le GUID pour l’un d’eux dans le fichier de projet, mais apparemment pas dans le fichier de solution. En l'occurrence, il choisit toujours celui qui est partagé, causant un chagrin maximal. Le correctif consistait à créer un nouveau GUID pour le projet d'installation et à éditer manuellement tous les autres fichiers de solution sur le GUID correct pour le projet de configuration.

Je ne sais pas du tout comment cela est arrivé puisque je n'ai jamais copié de projets pour les créer.

3
Richard Petheram

Le fichier de solution obtient le guide de projet à partir du fichier de projet. Avez-vous mis à niveau la solution/projet à partir d'une version antérieure de VS? Si le fichier guid de la solution ne cesse de changer, il se peut que le fichier de projet ne comporte aucun fichier guid. VS en crée un nouveau à chaque ouverture de la solution. J'appellerais cela un bug dans le mécanisme de mise à niveau du VS, mais personne ne me l'a demandé. Corrigez le problème en ajoutant un GUID dans votre fichier de projet comme ceci:

  <PropertyGroup>
    <ProjectGuid>{FB0F4A2A-1F78-42BF-8E31-E4FEFDC5565F}</ProjectGuid>
  </PropertyGroup>

Ouvrez la solution une fois de plus et laissez le guide de projet changer une dernière fois pour adopter ce nouveau guide. Le guid ne changera plus jamais.

2
user6621167

Concernant la solution de contournement: le GUID peut être référencé à plusieurs endroits dans le fichier de solution (.sln). N'oubliez pas de remplacer toutes les références à ce GUID, pas seulement celle mentionnée dans la solution de contournement (la solution de contournement est verrouillée - impossible de laisser un commentaire là-bas, j'ai donc dû répondre à ce message à la place).

0
Turbo

Cela se produit si vous avez deux projets avec le même guide dans la même solution, VS attribuera un nouveau guide à l'un d'entre eux. Et cela peut se produire lorsqu'une nouvelle solution avec un nouveau projet est construite et si vous le souhaitez. insérer des projets partagés ils peuvent avoir un guid qui est le même que le nouveau projet. Le problème est que toutes les autres solutions qui ont également le projet partagé déjà inséré doivent changer le guid de nouveau et cela ennuie.

Une solution simple au lieu d’éditer manuellement les fichiers solution/projet: Supprimez simplement les projets, puis insérez les projets partagés EN PREMIER et APRÈS l’insertion du nouveau projet. Donc, VS donne un nouveau guide - pas de duplication - au nouveau projet et n’est pas obligé de changer le guide des projets partagés.

... beaucoup pour le sujet "Identifiant unique mondial" ;-)

0
LoneSR