当前位置:  开发笔记 > 编程语言 > 正文

SLN文件中的GUID

如何解决《SLN文件中的GUID》经验,为你挑选了2个好方法。

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

有谁知道这些来自哪里,以及它们用于什么?



1> Jason Olson..:

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


第一个GUID标识项目类型,如(简要)在此处提到的 - http://msdn.microsoft.com/en-us/library/bb165951(v=vs.90).aspx.另请参阅http://www.mztools.com/Articles/2008/MZ2008017.aspx以获取项目类型列表.(我仍然想知道解决方案文件夹是否有特殊的guid ......)

2> Shog9..:

根据MSDN:

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

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有