Visual Studio解决方案文件每个项目条目包含两个GUID。我认为其中一个来自AssemblyInfo.cs
有谁知道这些来自哪里,以及它们用于什么?
答案 0 :(得分:14)
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
答案 1 :(得分:6)
[
Project
]语句包含 唯一项目GUID和项目 键入GUID。此信息用于 找到项目的环境 属于的文件或文件 解决方案,以及所需的VSPackage 对于每个项目。项目GUID是 传递给IVsProjectFactory加载 与之相关的特定VSPackage 项目,然后项目加载 VSPackage。