3

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

  • 一个 .NET Framework 项目(Ananas)
  • 两个 .NET Core 项目(香蕉和樱桃)
  • 一个 Xamarin 项目(Dewberries)

每次我启动 Visual Studio 2017 Community (15.6.2) 并加载解决方案时,它都会在加载第一个项目 (Ananas) 时自行挂起。

截屏

我可以坐下来等待它加载 30 分钟或更长时间,但进度条只会保持动画。我必须完全杀死 Visual Studio 才能阻止这种情况。

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

4

4 回答 4

2

我遇到了同样的问题,删除解决方案目录中隐藏的 .vs 文件夹解决了这个问题。

于 2020-09-16T11:23:36.360 回答
0

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

于 2018-03-20T05:57:14.040 回答
0

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

根据我对@samirg 回答的评论:

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

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

看起来您混合了新旧项目 guid,如 .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# 项目 guid。

9A19103F-16F7-4668-BE54-9A1E7A4F7556的C# 项目 guid。

由于您将两者混合使用,因此我会将所有旧指南更改为新指南,以保持解决方案行为的一致性。

新的 VS2017 项目系统有很多好处

于 2018-04-29T15:21:37.257 回答
-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

于 2018-03-20T00:12:23.697 回答