【发布时间】:2008-09-09 22:23:36
【问题描述】:
Visual Studio 解决方案文件包含每个项目条目的两个 GUID。我认为其中之一来自 AssemblyInfo.cs
有谁知道这些来自哪里,它们的用途是什么?
【问题讨论】:
-
任何带有完整源代码示例的最终解决方案?
标签: .net visual-studio solution
Visual Studio 解决方案文件包含每个项目条目的两个 GUID。我认为其中之一来自 AssemblyInfo.cs
有谁知道这些来自哪里,它们的用途是什么?
【问题讨论】:
标签: .net visual-studio solution
这两个 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
【讨论】:
[
Project] 语句包含 唯一的项目 GUID 和项目 键入 GUID。此信息由 寻找项目的环境 文件或属于 解决方案,以及所需的 VSPackage 对于每个项目。项目 GUID 是 传递给 IVsProjectFactory 以加载 与 项目,然后项目被加载 VSPackage。
【讨论】: