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,它是解决方案本身的唯一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加载项目.