Visual Studio 2017在加载解决方案时挂起

时间:2018-03-20 00:12:24

标签: visual-studio visual-studio-2017 sln-file

我有一个包含4个项目的解决方案。

  • 一个.NET Framework项目(Ananas)
  • 两个.NET Core项目(Bananas& Cherries)
  • 一个Xamarin项目(Dewberries)

每次启动Visual Studio 2017社区(15.6.2)并加载解决方案时,它会在第一个项目(Ananas)中加载时挂起。

screenshot

我可以坐下来等待加载30分钟或更长时间,但进度条会保持动画效果。我必须彻底杀死Visual Studio才能阻止它。

如果我然后删除解决方案文件夹,并从我已经存放的备份存档中重新解压缩并重新加载它,它会在第一次加载而不会挂起。但是当我关闭解决方案时,关闭Visual Studio,重新启动并再次加载它,它会再次开始挂起。

4 个答案:

答案 0 :(得分:0)

尝试在管理员模式下打开Visual Studio。

答案 1 :(得分:0)

Visual Studio解决方案文件中有许多不同的guid。

根据我对@ samirg的回答:

第一个Guid Project("{ <GUID> }")是.net项目类型,第二个Guid ".csproj", "{ <GUID> }"是唯一的项目标识符。您不应该更改第一个,但可以将第二个设置为唯一ID。

Visual Studio生成两者,第一个是您在创建新项目时选择的项目类型,第二个唯一标识该项目。

在.net项目系统repo README.md中可以看到你有新旧项目指南的混合

https://github.com/dotnet/project-system/blob/master/docs/opening-with-new-project-system.md

项目类型guid(此时现在每种语言有2个)告诉Visual Studio将项目视为旧的或新的项目类型。

FAE04EC0-301F-11D3-BF4B-00C04F79EFBC C#项目指南。

9A19103F-16F7-4668-BE54-9A1E7A4F7556 C#项目指南。

既然你有两者兼而有之,我会把所有旧的guid改为新的guid,以保持解决方案行为的一致性。

新的VS2017项目系统有一个bunch of benefits

答案 2 :(得分:0)

我遇到了同样的问题,并且从解决方案目录中删除了隐藏的.vs文件夹,从而解决了该问题。

答案 3 :(得分:-1)

如果您检查解决方案(SLN)文件,您可能会发现两个或多个项目的重复GUID。请参阅下面的示例。

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ananas", "Ananas\Ananas.csproj", "{F16C0F09-8509-4370-B4FF-C6E1C1C27C31}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bananas", "Bananas\Bananas.csproj", "{9D7771AE-8A04-438E-858A-7DBD42025BF4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cherries", "Cherries\Cherries.csproj", "{91FB0CB7-5DC1-4B86-B33C-F22BE6A11CF2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dewberries", "Dewberries\Dewberries.csproj", "{424ABA82-B745-4376-8A52-632B9016608E}"
EndProject

正如您所看到的,第一个和最后一个项目具有相同的GUID,并且中间的两个项目也具有相同的GUID。您需要做的是生成有效的GUID以区分冲突的项目。这样,你得到类似下面的内容。

Project("{2CD1389C-9B3D-41E9-9AC4-FB6402671C81}") = "Ananas", "Ananas\Ananas.csproj", "{F16C0F09-8509-4370-B4FF-C6E1C1C27C31}"
EndProject
Project("{73ED998E-CD14-48E9-8193-A60F496F9CD7}") = "Bananas", "Bananas\Bananas.csproj", "{9D7771AE-8A04-438E-858A-7DBD42025BF4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cherries", "Cherries\Cherries.csproj", "{91FB0CB7-5DC1-4B86-B33C-F22BE6A11CF2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dewberries", "Dewberries\Dewberries.csproj", "{424ABA82-B745-4376-8A52-632B9016608E}"
EndProject

要生成有效的GUID,我建议您使用在线工具,例如Online GUID Generator