Visual Studio 解决方案文件的每个项目条目包含两个 GUID。我认为其中之一来自 AssemblyInfo.cs

有谁确切知道这些来自哪里以及它们的用途吗?

有帮助吗?

解决方案

这两个 GUID 都与 AssemblyInfo.cs 中的 GUID 不同(即程序集本身的 GUID,不与 Visual Studio 绑定,而是与构建的最终产品绑定)。

因此,对于 sln 文件中的典型行(如果您希望看到此内容,请在记事本或选择的编辑器中打开 .sln):

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}"

第二个 GUID 是项目本身的唯一 GUID。解决方案文件使用它来将其他设置映射到该项目:

GlobalSection(ProjectConfigurationPlatforms) = postSolution
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection

第一个 GUID 实际上是解决方案本身的唯一 GUID(我相信)。如果您的解决方案包含多个项目,您实际上会看到类似以下内容的内容:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Composite", "..\CompositeWPF\Source\CAL\Composite\Composite.csproj", "{77138947-1D13-4E22-AEE0-5D0DD046CA34}"
EndProject

其他提示

根据 MSDN:

[这 Project]语句包含唯一的项目GUID和项目类型GUID。环境使用此信息来查找属于解决方案的项目文件或文件,以及每个项目所需的vspackage。项目GUID将传递给IVSprojectFactory,以加载与项目相关的特定vspackage,然后由Vspackage加载项目。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top