当我将现有项目添加到我的解决方案中时,Visual Studio 会更改 sln 文件中与其他项目相关的行。
例如,我将
MyProjectE
添加到我之前已经存在的解决方案中。
之前:
...
MinimumVisualStudioVersion = 10.0.408219.2
Project("{FE45H815-301F-11D3-BF4B-01JG812DI512}") = "MyProjectA", "MyProjectA\MyProjectA.csproj", "{5E1498BF-4BFA-65DB-B7B8-884JK349JK21}"
EndProject
Project("{FE45H815-301F-11D3-BF4B-01JG812DI512}") = "MyProjectB", "MyProjectB\MyProjectB.csproj", "{E1D124F0-AB44-4145-8997-24F2B7C249B8}"
EndProject
Project("{FE45H815-301F-11D3-BF4B-01JG812DI512}") = "MyProjectC", "MyProjectC\MyProjectC.csproj", "{420DJKLA-7D92-4ED2-B18A-7F92123SR920}"
EndProject
Project("{FE45H815-301F-11D3-BF4B-01JG812DI512}") = "MyProjectD", "MyProjectD\MyProjectD.csproj", "{E1D124F0-295C-44BE-8A56-C3050AB49E4E}"
EndProject
Global
...
之后:
...
MinimumVisualStudioVersion = 10.0.408219.2
Project("{89F231D1-16F7-4668-BE54-9A1E7A4F7556}") = "MyProjectA", "MyProjectA\MyProjectA.csproj", "{5E1498BF-4BFA-65DB-B7B8-884JK349JK21}"
EndProject
Project("{89F231D1-16F7-4668-BE54-9A1E7A4F7556}") = "MyProjectB", "MyProjectB\MyProjectB.csproj", "{E1D124F0-AB44-4145-8997-24F2B7C249B8}"
EndProject
Project("{FE45H815-301F-11D3-BF4B-01JG812DI512}") = "MyProjectC", "MyProjectC\MyProjectC.csproj", "{420DJKLA-7D92-4ED2-B18A-7F92123SR920}"
EndProject
Project("{FE45H815-301F-11D3-BF4B-01JG812DI512}") = "MyProjectD", "MyProjectD\MyProjectD.csproj", "{E1D124F0-295C-44BE-8A56-C3050AB49E4E}"
EndProject
Project("{89F231D1-16F7-4668-BE54-9A1E7A4F7556}") = "MyProjectE", "MyProjectE\MyProjectE.csproj", "{28BEA2B4-42DC-4F84-843B-5070AD9AE335}"
EndProject
Global
...
发生的情况是,新项目的引用添加在底部,这完全没问题。但是,正如您在前两行中看到的,
MyProjectA
和MyProjectB
的第一个“ID”更改为:
项目(“{FE45H815-301F-11D3-BF4B-01JG812DI512}”)=“MyProjectA”...
至:
项目(“{89F231D1-16F7-4668-BE54-9A1E7A4F7556}”)=“MyProjectA”...
官方文档每行调用两个ID
唯一的项目 GUID 和项目类型 GUID。
但是我不确定,由于这个堆栈溢出答案,在我的问题中更改的 GUID 是项目 GUID 还是项目类型 GUID。
所以我的问题是,改变的值到底是什么,可能是什么原因,为什么值改变,以及我是否需要采取任何行动,因为我不确定,是否必须在我的提交中添加这些更改。
提前致谢:)
项目文件中更改的值是项目类型 GUID。
紧随项目后面的大括号 {} 中的 GUID 是项目类型 GUID。
Visual Studio 可能检测到新添加的项目 (MyProjectE) 的项目类型或模板不同,从而导致分配不同的项目类型 GUID。
项目结构、配置或设置的更改可能会触发项目类型 GUID 的重新分配。
对 Visual Studio 或其项目管理系统进行的更新或修改可能导致了这一变化。
here
。它可能对你有帮助。
CLI 调用 msbuild 以获取默认项目类型 GUID 使用。 MSBuild 为 C# 和 VB 项目设置 $(DefaultProjectTypeGuid) 到“经典”,以允许 CLI 添加“经典”和 “SDK 式”项目到解决方案。
经典的 GUID (FAE04EC0…) 然后触发一个选择逻辑 查看项目中是否将 TargetFramework 或 TargetFrameworks 设置为 确定是否使用“新”或“经典”项目系统。这 想法是在某个时候只会使用新的项目系统 并且经典的项目系统在某些方面可能不再是 VS 的一部分 未来的更新(这是 GitHub 上很多评论的语气)。